lbmpy merge requestshttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests2021-02-12T22:40:35+01:00https://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/54Display pytest results in Gitlab2021-02-12T22:40:35+01:00Michael Kuronmkuron@icp.uni-stuttgart.deDisplay pytest results in GitlabAs per https://docs.gitlab.com/ee/ci/unit_test_reports.html#python-example and https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html#python-example. Same as https://i10git.cs.fau.de/pycodegen/pystencils/...As per https://docs.gitlab.com/ee/ci/unit_test_reports.html#python-example and https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html#python-example. Same as https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/205.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/37Add html test-report2021-02-12T22:40:36+01:00Stephan SeitzAdd html test-reportAdd html report to lbmpy test runs (like pystencils). So human don't need to read terminal gibberish but can directly browse the html (e.g.: http://seitz.pages.walberla.net/-/lbmpy/-/jobs/416980/artifacts/test-report/index.html)
Might b...Add html report to lbmpy test runs (like pystencils). So human don't need to read terminal gibberish but can directly browse the html (e.g.: http://seitz.pages.walberla.net/-/lbmpy/-/jobs/416980/artifacts/test-report/index.html)
Might be a good idea to add this also to the god jobs in pystencils/lbmpy.
For some, reason the apt-get installed pytest does not like pytest-htmlMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/64Enable all test cases in windows pipeline2021-02-19T15:24:35+01:00Markus HolzerEnable all test cases in windows pipelineSame as pystencils!209Same as pystencils!209Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/65fix some constant types for vectorization2021-02-20T11:46:25+01:00Michael Kuronmkuron@icp.uni-stuttgart.defix some constant types for vectorizationNeeded for https://i10git.cs.fau.de/walberla/walberla/-/merge_requests/414. Depends on https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/216.Needed for https://i10git.cs.fau.de/walberla/walberla/-/merge_requests/414. Depends on https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/216.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/66Fix package requires2021-02-22T10:44:37+01:00Markus HolzerFix package requiresThe phasefield model requires the generation of a module by Cython. However, this file was not shipped with pypi and cython is not required by lbmpy.The phasefield model requires the generation of a module by Cython. However, this file was not shipped with pypi and cython is not required by lbmpy.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/67fix some test problems found on Apple ARM642021-02-22T16:43:14+01:00Michael Kuronmkuron@icp.uni-stuttgart.defix some test problems found on Apple ARM64Problems related to unhashable lists, hard-coded vector instruction sets, and undeclared dependenciesProblems related to unhashable lists, hard-coded vector instruction sets, and undeclared dependenciesMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/68correct importorskip in notebook tests2021-02-22T22:57:41+01:00Michael Kuronmkuron@icp.uni-stuttgart.decorrect importorskip in notebook testsMissed these in !67.Missed these in !67.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/42Fix: momentum density calculation2021-03-29T16:31:12+02:00Helen SchottenhammlFix: momentum density calculationFixes the momentum density calculation for compressible methods with force model.
Before the macroscopic velocity shift was used, now we introduce the macroscopic momentum density shift to avoid dividing by the density twice in the force...Fixes the momentum density calculation for compressible methods with force model.
Before the macroscopic velocity shift was used, now we introduce the macroscopic momentum density shift to avoid dividing by the density twice in the force correction step.
Solves issue #14.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/69Custom floating point precision for boundary conditions.2021-03-29T22:41:49+02:00Helen SchottenhammlCustom floating point precision for boundary conditions.Optionally choose floating point precision for UBB and ExtrapoationOutflow boundary conditions.Optionally choose floating point precision for UBB and ExtrapoationOutflow boundary conditions.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/70Fix minor issues and remove depricated usage of cumulant LB method2021-03-31T16:10:27+02:00Markus HolzerFix minor issues and remove depricated usage of cumulant LB methodFixes some minor issues in the documentation and Assignment creation. Furthermore, the deprecated usage of the cumulant method is removed.Fixes some minor issues in the documentation and Assignment creation. Furthermore, the deprecated usage of the cumulant method is removed.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/72Fix setup2021-04-15T17:27:38+02:00Markus HolzerFix setupThis MR fixes installation problems for lbmpy when installed from the master branch. This is done similarly to pystencils.This MR fixes installation problems for lbmpy when installed from the master branch. This is done similarly to pystencils.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/73Test Poiseuille channel against analytical solution for several stencils2021-04-20T14:05:10+02:00RudolfWeeberTest Poiseuille channel against analytical solution for several stencilsI removed the code that compares solutions from different targets against each other, since they are now all compared to the analytical solution. The execution time can be adjusted by changing the channel width. With the current setting,...I removed the code that compares solutions from different targets against each other, since they are now all compared to the analytical solution. The execution time can be adjusted by changing the channel width. With the current setting, the solutions match up to 0.5%.https://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/75Add Versioneer2021-05-06T19:40:28+02:00Markus HolzerAdd VersioneerSimilar to pythons version string routineSimilar to pythons version string routineMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/77consistent manifest2021-05-11T09:31:22+02:00Markus Holzerconsistent manifestProvides a manifest consistent to pystencilsProvides a manifest consistent to pystencilsMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/78Delete createindexlistcython.pyx2021-05-11T10:18:53+02:00Michael Kuronmkuron@icp.uni-stuttgart.deDelete createindexlistcython.pyxNot referenced anywhereNot referenced anywhereMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/79Extend and fix documentation2021-05-12T17:51:22+02:00Markus HolzerExtend and fix documentationSome parts of the documentation were not referenced properly. Since we ran `sphinx` twice and one time without warnings as error treatment these warnings got unnoticed. This hack was necessary due to a new sphinx version. However, it see...Some parts of the documentation were not referenced properly. Since we ran `sphinx` twice and one time without warnings as error treatment these warnings got unnoticed. This hack was necessary due to a new sphinx version. However, it seems like we don`t need it anymore.
Furthermore, the documentation is extended a little bit and corrected in some parts.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/74Generalize stream only kernel2021-05-17T10:48:32+02:00Markus HolzerGeneralize stream only kernelThere exists a `create_stream_pull_only_kernel`. This could be generalized for all Access patternsThere exists a `create_stream_pull_only_kernel`. This could be generalized for all Access patternsMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/82Check if fluctuating LB compiles when vectorized2021-05-27T18:22:35+02:00Michael Kuronmkuron@icp.uni-stuttgart.deCheck if fluctuating LB compiles when vectorized7 of the 8 tests fail until https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/248 is merged.7 of the 8 tests fail until https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/248 is merged.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/84Use int64 for indexing2021-06-07T15:30:42+02:00Markus HolzerUse int64 for indexingFixes #18
The code is changed in the following way. As an example, a generated UBB boundary is shown. Before the adaption:
```cpp
const int32_t f_in_inv_dir_idx [] = { 0,2,1,4,3,6,5,10,9,8,7,16,15,18,17,12,11,14,13,26,25,24,23,22,2...Fixes #18
The code is changed in the following way. As an example, a generated UBB boundary is shown. Before the adaption:
```cpp
const int32_t f_in_inv_dir_idx [] = { 0,2,1,4,3,6,5,10,9,8,7,16,15,18,17,12,11,14,13,26,25,24,23,22,21,20,19 };
const int32_t f_in_inv_offsets_x [] = { 0,0,0,-1,1,0,0,-1,1,-1,1,0,0,-1,1,0,0,-1,1,1,-1,1,-1,1,-1,1,-1 };
const int32_t f_in_inv_offsets_y [] = { 0,1,-1,0,0,0,0,1,1,-1,-1,1,-1,0,0,1,-1,0,0,1,1,-1,-1,1,1,-1,-1 };
const int32_t f_in_inv_offsets_z [] = { 0,0,0,0,0,1,-1,0,0,0,0,1,1,1,1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1 };
const double weights [] = { 0.296296296296296,0.0740740740740741,0.0740740740740741,0.0740740740740741,0.0740740740740741,0.0740740740740741,0.0740740740740741,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963 };
const int32_t neighbour_offset_x [] = { 0,0,0,-1,1,0,0,-1,1,-1,1,0,0,-1,1,0,0,-1,1,1,-1,1,-1,1,-1,1,-1 };
const int32_t neighbour_offset_y [] = { 0,1,-1,0,0,0,0,1,1,-1,-1,1,-1,0,0,1,-1,0,0,1,1,-1,-1,1,1,-1,-1 };
const int32_t neighbour_offset_z [] = { 0,0,0,0,0,1,-1,0,0,0,0,1,1,1,1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1 };
for (int64_t ctr_0 = 0; ctr_0 < _size_indexField_0; ctr_0 += 1)
{
const int32_t x = *((int32_t *)(& _data_indexField[16*_stride_indexField_0*ctr_0]));
const int32_t y = *((int32_t *)(& _data_indexField[16*_stride_indexField_0*ctr_0 + 4]));
const int32_t z = *((int32_t *)(& _data_indexField[16*_stride_indexField_0*ctr_0 + 8]));
const int32_t dir = *((int32_t *)(& _data_indexField[16*_stride_indexField_0*ctr_0 + 12]));
_data_ldc_pdfSrc[x + 452*y + 204304*z + 92345408*f_in_inv_dir_idx[dir] + f_in_inv_offsets_x[dir] + 452*f_in_inv_offsets_y[dir] + 204304*f_in_inv_offsets_z[dir]] = -0.029999999999999999*neighbour_offset_x[dir]*weights[dir] + _data_ldc_pdfSrc[92345408*dir + x + 452*y + 204304*z];
```
After the adaption:
```cpp
const int64_t f_in_inv_dir_idx [] = { 0,2,1,4,3,6,5,10,9,8,7,16,15,18,17,12,11,14,13,26,25,24,23,22,21,20,19 };
const int64_t f_in_inv_offsets_x [] = { 0,0,0,-1,1,0,0,-1,1,-1,1,0,0,-1,1,0,0,-1,1,1,-1,1,-1,1,-1,1,-1 };
const int64_t f_in_inv_offsets_y [] = { 0,1,-1,0,0,0,0,1,1,-1,-1,1,-1,0,0,1,-1,0,0,1,1,-1,-1,1,1,-1,-1 };
const int64_t f_in_inv_offsets_z [] = { 0,0,0,0,0,1,-1,0,0,0,0,1,1,1,1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1 };
const double weights [] = { 0.296296296296296,0.0740740740740741,0.0740740740740741,0.0740740740740741,0.0740740740740741,0.0740740740740741,0.0740740740740741,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.0185185185185185,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963 };
const int64_t neighbour_offset_x [] = { 0,0,0,-1,1,0,0,-1,1,-1,1,0,0,-1,1,0,0,-1,1,1,-1,1,-1,1,-1,1,-1 };
const int64_t neighbour_offset_y [] = { 0,1,-1,0,0,0,0,1,1,-1,-1,1,-1,0,0,1,-1,0,0,1,1,-1,-1,1,1,-1,-1 };
const int64_t neighbour_offset_z [] = { 0,0,0,0,0,1,-1,0,0,0,0,1,1,1,1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1 };
for (int64_t ctr_0 = 0; ctr_0 < _size_indexField_0; ctr_0 += 1)
{
const int64_t x = *((int32_t *)(& _data_indexField[16*_stride_indexField_0*ctr_0]));
const int64_t y = *((int32_t *)(& _data_indexField[16*_stride_indexField_0*ctr_0 + 4]));
const int64_t z = *((int32_t *)(& _data_indexField[16*_stride_indexField_0*ctr_0 + 8]));
const int64_t dir = *((int32_t *)(& _data_indexField[16*_stride_indexField_0*ctr_0 + 12]));
_data_ldc_pdfSrc[x + 452*y + 204304*z + 92345408*f_in_inv_dir_idx[dir] + f_in_inv_offsets_x[dir] + 452*f_in_inv_offsets_y[dir] + 204304*f_in_inv_offsets_z[dir]] = -0.029999999999999999*neighbour_offset_x[dir]*weights[dir] + _data_ldc_pdfSrc[92345408*dir + x + 452*y + 204304*z];
```Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/80Stream-Only Kernel Fixes2021-06-09T08:00:22+02:00Frederik HennigStream-Only Kernel FixesAmendment to !74. Changed API of `create_stream_only_kernel` to expect fields, instead of field names and/or numpy arrays, to be coherent with `create_lbm_kernel`. Also, stored pre-streaming values in temporary subexpressions - otherwise...Amendment to !74. Changed API of `create_stream_only_kernel` to expect fields, instead of field names and/or numpy arrays, to be coherent with `create_lbm_kernel`. Also, stored pre-streaming values in temporary subexpressions - otherwise values would be overwritten in in-place streaming. Adapted test case to catch this.Markus HolzerMarkus Holzer