MultiBlockLattice in Palabos

I got the general concept about MultiBlockLattice3D which is the place to store particle population. But I am struggling when trying to understand the code deeper. For example, in the code below, what are the blockStructure, threadAttribution and envelopeWidth ? I tried to search for this information but there is a lack of information about this as well as the old Palabos website cannot be accessed . Any help would be appreciated

plint envelopeWidth = 1;
MultiBlockLattice3D<T, DESCRIPTOR>
lattice (MultiBlockManagement3D (blockStructure, threadAttribution, envelopeWidth ),
defaultMultiBlockPolicy3D().getBlockCommunicator(),
defaultMultiBlockPolicy3D().getCombinedStatistics(),
defaultMultiBlockPolicy3D().getMultiCellAccess<T,DESCRIPTOR>(),
new DYNAMICS );

Hello,

usually you will never really want to go into much details about these quantities, just use the defaults. The only really important quantity is the envelopeWidth. This defines the vicinity over which you will want to communicate things on your lattice. There are “halo” nodes that are used to communicate data in parallel executions.

1 Like

Hello Orestis;
Thank you for answering my questions recently. You guys have helped me a lot. The reason why I asked about Multiblocklattice is that in my simulating, after running for a while, my simulation stopped and show the errors like segmentation fault, invalid next size … I do not have the coding background but according to what I got from the Internet, it is due to the memory problem. Could you please suggest me where to go through to increase memory/data processor .
Thank you for your time

Hello,
difficult to say without seeing the code. Is your code running on a parallel machine? On multiple cores? Or on asingle thread?

Hi Orestis;
I use the command mpirun -np 8 to run my model, so I think it is multiple cores. The code I used is based on this https://github.com/ParticulateFlow/LBDEMcoupling-public .
Thank you for your kindness.

Hello,
I’m not really familiar with this coupling. Maybe to see where the problem happens you could run your code on a signle thread and run t through a debugger like gdb.