I see that there is a load balancer in OpenLB, but I can’t really figure out how it works. I have written my own code for calculating abs.perm. in porous media (eg. sandstone) and working on up to 1000^3 models atm. I use an MPI grid communicator and dividing the model into 3D blocks for each processor. This has the limitation that the sub-divisions of the model must be equal for all processes with the same X, Y or Z communicator coordinate. I do calculate individual boundaries for each rank, but I have to average them or something similar to make them the same across the same communicator “slice”. For inhomogeneous models this becomes a big problem.
Is this somehow handeled by OpenLB and it’s load balancer? How is a model in OpenLB distributed among processes? Is it possible to cut a model into heterogeneous pieces? Rewriting my 3D communicator to support that would take ages…
- Atle