lbmpy merge requestshttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests2021-10-28T13:19:18+02:00https://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/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/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/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/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/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/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/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/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/123Short Straming pattern demo2022-06-17T13:44:48+02:00Markus HolzerShort Straming pattern demoThis MR provides a short tutorial on streaming patterns and implements the EsoPull and EsoPush streaming patternThis MR provides a short tutorial on streaming patterns and implements the EsoPull and EsoPush streaming patternMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/151Shorten shear wave scenario.2023-08-03T12:51:42+02:00Helen SchottenhammlShorten shear wave scenario.The shear wave scenario had too long a runtime for the nightly tests.
This merge request reduces the number of time steps per run and restricts the scenario to one resolution and viscosity. The variation in LBM models is maintained.
...The shear wave scenario had too long a runtime for the nightly tests.
This merge request reduces the number of time steps per run and restricts the scenario to one resolution and viscosity. The variation in LBM models is maintained.
These measures reduce the runtime of the entire study to approx. 4 minutes.Helen SchottenhammlHelen Schottenhammlhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/107shorten test cases2021-11-16T09:11:04+01:00Markus Holzershorten test casesFixes #27Fixes #27Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/134Simplify equilibrium terms2022-11-08T09:04:23+01:00Markus HolzerSimplify equilibrium termsFor some constellations, the equilibrium terms have grown rather large. This MR simplifies the terms to obtain a more reasonable representation of the EQ again
Fixes #37For some constellations, the equilibrium terms have grown rather large. This MR simplifies the terms to obtain a more reasonable representation of the EQ again
Fixes #37Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/18Skip some tests if waLBerla is not installed2020-01-09T20:22:42+01:00Stephan SeitzSkip some tests if waLBerla is not installedhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/114SquaredChannel2022-03-10T09:05:32+01:00Markus HolzerSquaredChannelFixes the failing square channel test in the windows pipeline. The test does not fail in other pipelines and it is hard to tell where this is coming from. The assumption for now is numerical issues that might be solved with !113Fixes the failing square channel test in the windows pipeline. The test does not fail in other pipelines and it is hard to tell where this is coming from. The assumption for now is numerical issues that might be solved with !113Markus 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 Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/16Test for fluctuating LB, avg temperature and velocity distribution2019-11-21T19:50:12+01:00RudolfWeeberTest for fluctuating LB, avg temperature and velocity distributionTest the MRT method with 15 equal relaxation times
Closes #4Test the MRT method with 15 equal relaxation times
Closes #4Martin BauerMartin Bauerhttps://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/39Thermalized LB: test 4 rel time model velocity and pressure fluctuations2020-10-20T10:29:49+02:00RudolfWeeberThermalized LB: test 4 rel time model velocity and pressure fluctuationsThis changes the fluctuating LB test to match as closely as possible what we are going to use.
Model with 4 relaxation times for shear/bulk/odd/even modes.
Tests:
* mass conservation
* momentum conservation
* <m v^2> = k_B T
* Maxwell ve...This changes the fluctuating LB test to match as closely as possible what we are going to use.
Model with 4 relaxation times for shear/bulk/odd/even modes.
Tests:
* mass conservation
* momentum conservation
* <m v^2> = k_B T
* Maxwell velocity distribution
* average stress tensor
* stress tensor fluctuations accodring to Duenweg, Schiller, LaddMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/lbmpy/-/merge_requests/142Thermocapillary2023-12-27T21:28:49+01:00Markus HolzerThermocapillaryIntroduces Thermocapillary flows to lbmpyIntroduces Thermocapillary flows to lbmpyMarkus HolzerMarkus Holzer