Lattice-Boltzmann Pointer-Shift In-Place Streaming - possible in AMRex? #3196
shreyasashok
started this conversation in
General
Replies: 1 comment 12 replies
-
I probably will not have time to read the paper. Even if I try, I may not be able to understand it because I know almost nothing about LBM. Could you summarize what the algorithm does? What kind of memory operations you need? Are they going to be performed on regular data stored in MultiFab/FArrayBox or the special sparse data you mentioned in #3191. |
Beta Was this translation helpful? Give feedback.
12 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello all,
I am assessing whether AMReX is appropriate for a lattice-Boltzmann (LBM) code. In order to achieve efficient advection in LBM, there are many pointer-shift based algorithms that allow for the advection step to occur in-place without actually moving any memory around. An example of such an algorithm is here:
https://www.mdpi.com/2079-3197/5/2/19
I am struggling to understand how to implement this within AMReX. In order to achieve such an algorithm, I would need to allocate extra memory in my FArrayBox to allow room for the pointer shifting, and also have some way of altering the pointer to the zeroeth element of the data. Is there any way to achieve this without extensively modifying the code underneath?
Beta Was this translation helpful? Give feedback.
All reactions