Skip to content

Accessing a non-local Cell value in parallel mode

OpenLB – Open Source Lattice Boltzmann Code Forums on OpenLB General Topics Accessing a non-local Cell value in parallel mode

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
  • #6908


    I have been trying to implement a boundary condition in version 1.4. For this I need to access a cell value in a lattice that may not be in the current block lattice.

    For this, I tried to gain access through:

    ‘sLattice.get(iC,iX,iY,iZ)’ , where the 4 lattice parameters were obtained pre simulation to match the physical location of the lattice.

    I am suspecting that in a processor, you cannot access the data unless the lattice coordinate [iC,iX,iY,iZ] is in the same cuboid.

    Is there any way I can get the actual cell value from any mpi rank or block (non-local)?

    Thank you,

    Ramiro Freile


    There is no generally performance efficient way for accessing arbitrary global cell data in arbitrary processes. As such our Super Lattice class doesn’t offer such functionality. The common approach for accessing neighboring data of other processes is to set the block overlap and communicators to provide the necessary neighborhood radius. This is the approach used for e.g. all interpolated boundary conditions in OpenLB.

    If you want to aggregate data for some other purpose we have a selection of block reduction functors that might fit the bill.

    If you tell me more about the requirements of your particular boundary condition, I will very likely be able to illuminate you a way of achieving this in OpenLB without breaking the underlying block decomposition and responsiblity scheme.

    • This reply was modified 1 year, 8 months ago by Adrian.

    Hi Adrian,

    Thanks for your reply.
    I am working in the 1.4 version, mainly because I have several custom functions for my problem already in the 1.4 format, which would require some adaptation to the new version.

    I have a thermal turbulent application, and I was looking for a periodic BC in the first portion of my domain, so that the flow develops. Basically a periodic BC between the pipe inlet and a pipe slice of the domain at a certain distance (both planes would have the same normal).

    So far I implemented PostProcessor which attempts a periodic BC between these two slices, using two material indicators. The problem is that when I identify the corresponding lattice coordinates of the node (upstream or downstream), I am unable to access the cell data.

    I am currently looking at blockreduction functors as you suggested to see if I can solve the issue.

    Thank you,

    Ramiro Freile

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.