Interface Walberla LB#2701
Conversation
Codecov Report
@@ Coverage Diff @@
## python #2701 +/- ##
========================================
- Coverage 89% 81% -8%
========================================
Files 557 559 +2
Lines 24326 25963 +1637
========================================
- Hits 21698 21100 -598
- Misses 2628 4863 +2235
Continue to review full report at Codecov.
|
|
Implementation status of Espresso's lb interface is here: |
|
@fweik, this could be a starting point for integrating boundary support. The LbWalberla class has get_node_velocity_at_boundary(const Utils::Vector3i &node) const; |
|
@mkuron, there still seems to be an issue with the ghost communication. |
|
The communication looks fine. Are you sure it's not the domain decomposition where the error is coming from? If PBCs work, then the communication is also working. |
|
@mkuron, I investigated the Nan-proliferation from Walberla's UBB() further. I extracted the channel test to |
You need to consistently mark cells on both sides of the PBC yourself. Communication cannot take care of that for you. So when you flag a boundary at x=0, you need to do the same at x=L. |
|
On Thu, Aug 15, 2019 at 04:21:07AM -0700, Michael Kuron wrote:
> when nodes are marked as boundary at one of the domain boundaires
You need to consistently mark cells on both sides of the PBC yourself. Communication cannot take care of that for you. So when you flag a boundary at x=0, you need to do the same at x=L.
Where L is the grid dimension and the index runs from 0 to L-1?
|
|
Exactly. So your ghost cells would be at x=-1 and X=L. |
|
OK, so it's not pretty, but works. In the steady state case, the shear profiles now match (testsuite/python/lb_shear.py with 500 integration steps). |
|
With the viscosity converted to lattice units, the time-dependent shear profile is now reproduced |
|
So, the boundary force from Walberla for the couette flow along the shear direction matches the expected result. (lb_shear.py) @mkuron, the UBB also reports a force perpendicular to the wall. The Walberla test for BoundaryForcecouette does not check this. Equilibrium pressure is: agrid, density, and viscosity are all !=1, but setting them to 1 doesn't help, so not unit conversions, I think. |
|
@RudolfWeeber you seem to have forgotten to commit |
|
Added it. |
|
Current state (to my understanding) Working:
|
| lb.set_node_velocity(Vector3i{1, 1, 1}, v); | ||
| lb.set_node_velocity(Vector3i{3, 5, 7}, v); | ||
| auto mom = lb.get_momentum(); | ||
| auto mom_exp = 2 * density * v; |
There was a problem hiding this comment.
why is this the expected momentum?
|
This is the current state as per the test suite. Walberla is currently limited to 2 mpi ranks. Working:
Woprking on 1 core:
Partial:
Broken:
Waiting for thermalziation:
Other:
|
Fix regression in VTK checkpointing. Make VTK members of EK/LB. Use a LatticeModel base class to reduce code duplication.
The walberla::vtk objects depend on the walberla MPI communicator to close the files in parallel at program exit. Introduce a locking mechanism to extend the lifetime of the walberla MPI communicator until all VTK objects have expired.
Current status:
The current plan is to merge this after the release of 4.2