lbmpy merge requestshttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests2022-02-12T16:53:13+01:00https://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/99Shan-Chen tutorial fixes2022-02-12T16:53:13+01:00Alexander ReinauerShan-Chen tutorial fixesI included the changes i made to the tutorial during the espresso summer school to make it momentum conserving.
The comparison with the reference data is now done after 1000 timesteps for the two-component version and also only done up t...I included the changes i made to the tutorial during the espresso summer school to make it momentum conserving.
The comparison with the reference data is now done after 1000 timesteps for the two-component version and also only done up to an error of 1e-4. The reason is that there is a difference in the velocity-calculation using the Guo-force correction, the reference implementation always uses the current force whereas this notebook uses the old force value. I might be wrong here but the version from this notebook seems more physical to me.Michael Kuronmkuron@icp.uni-stuttgart.deMichael Kuronmkuron@icp.uni-stuttgart.dehttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/8Shan-Chen tutorial2019-10-18T12:32:11+02:00Michael Kuronmkuron@icp.uni-stuttgart.deShan-Chen tutorialThere are two different ways to use Shan-Chen, which is why we have two separate tutorials. One can either simulate a two-component fluid (e.g. oil-water) or a two-phase single-component fluid (e.g. water-steam).There are two different ways to use Shan-Chen, which is why we have two separate tutorials. One can either simulate a two-component fluid (e.g. oil-water) or a two-phase single-component fluid (e.g. water-steam).Martin BauerMartin Bauerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/9Shan Chen Issue2019-10-21T16:19:43+02:00Martin BauerShan Chen IssueI cleaned up a TODO that was left in the new Shan Chen Tutorials.
However, I found a new problem: the multi-phase version did not consistently take the force-dependent velocity shift into account during initialization.
Is this intended?...I cleaned up a TODO that was left in the new Shan Chen Tutorials.
However, I found a new problem: the multi-phase version did not consistently take the force-dependent velocity shift into account during initialization.
Is this intended?
When I switch to the seemingly 'correct' initialization the test fails.Martin BauerMartin Bauerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/108Set maximal version of lbmpy to maximal version of pystencils2021-11-09T18:41:15+01:00Markus HolzerSet maximal version of lbmpy to maximal version of pystencilsIt does not make sense to have a version of pystencils which is newer than the lbmpy version.It does not make sense to have a version of pystencils which is newer than the lbmpy version.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/34Schiller force model to be used instead of Guo on non-SRT2020-09-16T22:34:24+02:00Michael Kuronmkuron@icp.uni-stuttgart.deSchiller force model to be used instead of Guo on non-SRTThis is supposed to be equivalent to Guo, but confirmed to be working for non-SRT. Also includes two test cases:
- one that confirms momentum conservation for all available force models
- one that checks that the moments of the force loo...This is supposed to be equivalent to Guo, but confirmed to be working for non-SRT. Also includes two test cases:
- one that confirms momentum conservation for all available force models
- one that checks that the moments of the force look right, but only for Schiller and Simple force models
Fixes #11Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/137Sanity checks for normal directions2022-11-16T14:29:45+01:00Markus HolzerSanity checks for normal directionsAs suggested in https://i10git.cs.fau.de/pycodegen/pystencils/-/issues/63 some minor sanity checks for the normal direction of BC are introducedAs suggested in https://i10git.cs.fau.de/pycodegen/pystencils/-/issues/63 some minor sanity checks for the normal direction of BC are introducedMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/165Rework SGS models2024-01-26T15:10:19+01:00Helen SchottenhammlRework SGS modelsThis merge request generalises the definition of subgrid-scale (SGS) models.
Until now, only the Smagorinsky model could be defined in the LBMConfig (by setting `True` or the model constant).
Now, a SGS model can be provided by an en...This merge request generalises the definition of subgrid-scale (SGS) models.
Until now, only the Smagorinsky model could be defined in the LBMConfig (by setting `True` or the model constant).
Now, a SGS model can be provided by an enumeration or as a tuple of the SGS enum and its model constant.
In the same time, this MR adds an implementation for the QR model, an isotropic minimum-dissipation model.
Furthermore, the possibility to output the eddy-viscosity directly from the SGS model calculation is added. This facilitates the post-processing and validation of turbulent flows.Helen SchottenhammlHelen Schottenhammlhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/127Rework of the Cumulant-Based Method2022-09-15T17:24:23+02:00Frederik HennigRework of the Cumulant-Based MethodThis MR updates the cumulant-based LB method to better fit into our updated modelling framework.
Several components are changed:
### Central Moment to Cumulant Transform
- Now derives equations for polynomial cumulants, with monomials...This MR updates the cumulant-based LB method to better fit into our updated modelling framework.
Several components are changed:
### Central Moment to Cumulant Transform
- Now derives equations for polynomial cumulants, with monomials as intermediary values
- No longer ignores cumulants of zeroth and first order
- No longer simplifies according to a-priori assumptions about zeroth and first order cumulants, but emits equations containing logarithms and exponentials that need to be simplified later
### Cumulant-Based Method
- Renamed to `CumulantBasedLbMethod`
- Forces are now applied symmetrically in central moment space according to the given force model, no more 'implicit forcing'
- Zeroth and first order cumulants are now treated regularily
- The Galilean correction was extracted as an a-posteriori-modification
### Force Models
- Introduced interface method `symmetric_central_moment_forcing` for use with the cumulant method and implemented it for `Simple`, `Luo`, `Guo` and `He`
### Central Moment Transform
- Introduced `BinomialChimeraTransform` as a new central moment transform class.
### Method Creation
- Cumulant-based methods are now created like all other methods using `create_with_equilibrium`, and are thus open for use with arbitrary custom equilibria
### Simplification
The changes to the derivation did increase the FLOP count of the cumulant method slightly.
- Added `insert_logs` to eliminate exponentials and logarithms in the cumulant-based method
- Added `expand_post_collision_central_moments` to simplify post-collision equations
- Added `insert_conserved_quantity_products` and `insert_half_force` to simplify expressions in central moment and cumulant based methods that depend only on conserved quantitites or the body forceFrederik HennigFrederik Hennighttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/92Rework force models and central moments transform2021-10-28T13:19:18+02:00Markus HolzerRework force models and central moments transformThis MR provides a complete rework of the force model, so they are functioning in the moment space and the central moment space.
Furthermore, a new implementation for the shift matrix is provided and a rework of the central moment based...This MR provides a complete rework of the force model, so they are functioning in the moment space and the central moment space.
Furthermore, a new implementation for the shift matrix is provided and a rework of the central moment based method.
The central moment transform classes are adapted to be able to work with the changes.
TODOs:
- [x] Test Fixed Density BC when method has a force model
- [x] Forward/Backward Transform for D3Q15
- [x] make cumulants aware of polynomials
- [x] rework cumulants with forceMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/145Replace PyCuda with CuPy2023-06-24T10:10:53+02:00Markus HolzerReplace PyCuda with CuPyReplaces [PyCuda](https://documen.tician.de/pycuda/) with [CuPy](https://cupy.dev/)
Advantages of [CuPy](https://cupy.dev/):
- AMD support
- probably higher maintained due to NVIDIA support
- SciPy compatible.Replaces [PyCuda](https://documen.tician.de/pycuda/) with [CuPy](https://cupy.dev/)
Advantages of [CuPy](https://cupy.dev/):
- AMD support
- probably higher maintained due to NVIDIA support
- SciPy compatible.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/36Removed OpenCL parallel Datahandling test case2020-07-10T11:13:06+02:00Markus HolzerRemoved OpenCL parallel Datahandling test caseThere is no OpenCL Backend in waLBerla. Therefore, the parallel Datahandling can not be used with OpenCL at the momentThere is no OpenCL Backend in waLBerla. Therefore, the parallel Datahandling can not be used with OpenCL at the momentStephan SeitzStephan Seitzhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/148Remove windows from CI2023-07-13T13:19:16+02:00Markus HolzerRemove windows from CIMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/146Remove pystencils.GPU_DEVICE2023-07-13T12:00:15+02:00Michael Kuronmkuron@icp.uni-stuttgart.deRemove pystencils.GPU_DEVICEThis function reports the sizes of L1/L2/L3 caches and free and total RAM, so why not also have it report the memory size of each GPU instead of just the selected GPU. It is not used anywhere, so the slight API change has no consequences...This function reports the sizes of L1/L2/L3 caches and free and total RAM, so why not also have it report the memory size of each GPU instead of just the selected GPU. It is not used anywhere, so the slight API change has no consequences.
Related to https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/336
test_gpu_block_size_limiting.py::test_gpu_block_size_limiting actually failed on master since https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/335, but that is due to an error in the test (it was expecting the input argument to be modified and ignoring the return value of `limit_block_size_by_register_restriction`).Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/110Remove OpenCL support2021-11-22T23:30:24+01:00Markus HolzerRemove OpenCL supportDue to pystencils!278 the OpenCL support of lbmpy needs to be removedDue to pystencils!278 the OpenCL support of lbmpy needs to be removedMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/5Remove obsolete fluctuatinglb.method_with_rescaled_equilibrium_values2019-08-14T14:50:57+02:00Michael Kuronmkuron@icp.uni-stuttgart.deRemove obsolete fluctuatinglb.method_with_rescaled_equilibrium_values@winterhalter said it's not needed anymore, see https://i10chat.cs.fau.de/lssall/pl/m1kheksrgfruinu8dffkq1znwa. In fact, it is wrong since a fluctuating MRT with temperature zero should be identical to a regular LB.@winterhalter said it's not needed anymore, see https://i10chat.cs.fau.de/lssall/pl/m1kheksrgfruinu8dffkq1znwa. In fact, it is wrong since a fluctuating MRT with temperature zero should be identical to a regular LB.Martin BauerMartin Bauerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/31Remove mrt32020-06-10T18:59:16+02:00Markus HolzerRemove mrt3https://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/102Remove Mathjax path2021-10-29T14:36:31+02:00Markus HolzerRemove Mathjax pathAt the moment the LaTeX rendering in the HMTL output of the docu is broken.
Apparently, the mathjax hack introduced with !92 breaks the LaTeX rendering in the doc.At the moment the LaTeX rendering in the HMTL output of the docu is broken.
Apparently, the mathjax hack introduced with !92 breaks the LaTeX rendering in the doc.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/87Remove gmpy workaround2021-06-26T15:43:58+02:00Markus HolzerRemove gmpy workaroundRemove pystencils gmpy import because it does not exist anymoreRemove pystencils gmpy import because it does not exist anymoreMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/121Remove entropic srt2022-05-24T12:19:34+02:00Markus HolzerRemove entropic srtRemove Entropic SRT and minor changesRemove Entropic SRT and minor changesMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/105Relaxation rates should be floats2021-11-10T20:37:52+01:00Markus HolzerRelaxation rates should be floatsdefault rrs should be floats. Otherwise, this gives problems in the vectorisation.default rrs should be floats. Otherwise, this gives problems in the vectorisation.Markus HolzerMarkus Holzer