FLASH-X
Doxygen Generated Documentation From Interface Source Code
Functions/Subroutines
Grid_getFluxCorrData_xtra.F90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine Grid_getFluxCorrData_xtra (blockDesc, fluxBufX, fluxBufY, fluxBufZ, lo, fluxCorrX, fluxCorrY, fluxCorrZ, isFluxDensity)
 

Function/Subroutine Documentation

◆ Grid_getFluxCorrData_xtra()

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.