FLASH-X
Doxygen Generated Documentation From Interface Source Code
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | Grid_getFluxCorrData_xtra (blockDesc, fluxBufX, fluxBufY, fluxBufZ, lo, fluxCorrX, fluxCorrY, fluxCorrZ, isFluxDensity) |
subroutine Grid_getFluxCorrData_xtra | ( | type(Grid_tile_t) | blockDesc, |
real | fluxBufX, | ||
real | fluxBufY, | ||
real | fluxBufZ, | ||
integer, dimension(3), intent(in) | lo, | ||
real | fluxCorrX, | ||
real | fluxCorrY, | ||
real | fluxCorrZ, | ||
logical | isFluxDensity | ||
) |
Get flux corrections from semipermanent flux storage (SPFS).
fluxCorr := "communicated fine fluxes" - fluxBuf AT coarse side of f/c bdry; := 0.0 ELSEWHERE.
Flux corrections are returned in fluxCorr[XYZ] arguments. The arguments fluxBuf[XYZ] are input only and represent coarse fluxes, i.e., the ones for which corrections need to be computed.
Only fluxes at locations that represent the coarse side of fine/coarse block boundaries can hold nonzero flux correction data on return. Other elements of the flux buffers are set to zero if they represent faces of any cells that touch a block boundary; data faces of cells that are farther away from a block boundary are left undefined.
blockDesc : describes the current block. Note that this should be a full block, not a tile representing a partial block.
fluxBufX : buffer for fluxes in IAXIS-direction
fluxBufY : buffer for fluxes in JAXIS-direction; ignored if NDIM < 2
fluxBufZ : buffer for fluxes in KAXIS-direction; ignored if NDIM < 3
lo : lower bounds for the spatial indices of the flux buffers
fluxCorrX : flux correction (difference) for IAXIS direction
fluxCorrY : flux correction (difference) for JAXIS direction; left undefined if NDIM < 2.
fluxCorrZ : flux correction (difference) for KAXIS direction; left undefined if NDIM < 3.
isFluxDensity : indicates, for each flux component, whether the component is a flux proper (if TRUE) or a flux density (otherwise). This may be either removed, or changed into a scalar flag, later.
NOTES
The arrays fluxBufX, fluxBufY, fluxBufZ are subject to index reordering. The arrays fluxCorrX, fluxCorrY, fluxCorrZ are subject to index reordering.
flux buffer arrays should contain space for fluxes of all valid cells in the block, excluding guard cells.
This interface does not require level-wide fluxes to be allocated.
SPFS means semi-permanent flux storage. When using a Grid implementation based on AMReX, SPFS is implemented by an AMReX flux register class, such as FlashFluxRegister.
SEE ALSO
Grid_putFluxData_block Grid_communicateFluxes Grid_correctFluxData Hydro
Definition at line 82 of file Grid_getFluxCorrData_xtra.F90.