This level-wise data type contains the PDF arrays which are fed into the kernel. The solver updates the state vector and finds the position of the neighbor vectors by looking it up in the neigh array
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | nElems_fluid | number of local fluid elements |
|||
integer, | private | :: | nElems_halo | number of halo elements (from remote processes) |
|||
integer, | private | :: | nElems_ghostFromCoarser | number of ghost elements (from other levels) |
|||
integer, | private | :: | nElems_ghostFromFiner | number of ghost elements (from other levels) |
|||
integer, | private | :: | nElems_ghost | number of ghost elements (from other levels) |
|||
integer, | private | :: | nElems_local | number of local elements (fluid+halos+ghost) |
|||
integer, | private | :: | nElems_solve | fluid elements + ghostFromCoarser elements (elements for solver). PDF and auxFied are interpolated for ghostFromFiner and there is no need to do collision on these elements. |
|||
integer, | private | :: | nElems_computed | fluid elements + ghostFromCoarse + ghostFromFiner |
|||
integer, | private | :: | nSize | number of elements padded to 4 |
|||
integer, | private | :: | nNow | = | 1 | which buffer to use for current time step |
|
integer, | private | :: | nNext | = | 2 | which buffer to use for next time step |
|
integer, | private, | allocatable, dimension(:) | :: | neigh | Connectivity array Points to where to send respective pdfs Access in a neigh way Size: QQ * nSize allocated in routine: mus_pdf_allocate |
||
real(kind=rk), | private, | allocatable, dimension(:) | :: | bcBuffer | containing state vector values of elements which have a boundary It always uses AOS data layout allocated in routine: mus_pdf_allocate filled for each iteration in routine: fill_bcBuffer |
||
real(kind=rk), | private, | allocatable | :: | momBuf(:,:) | Buffer storing the moments of all source from Coarser |