Doxygen Generated Documentation From Interface Source Code
Grid_correctFluxData.F90 File Reference

Go to the source code of this file.


subroutine Grid_correctFluxData (blockDesc, fluxBufX, fluxBufY, fluxBufZ, lo, isFluxDensity)

Function/Subroutine Documentation

◆ Grid_correctFluxData()

subroutine Grid_correctFluxData ( type(Grid_tile_t)  blockDesc,
real  fluxBufX,
real  fluxBufY,
real  fluxBufZ,
integer, dimension(3), intent(in)  lo,
logical  isFluxDensity 

Correct data in flux arrays by replacing fluxes in certain locations with data from a higher refinement level.

fluxBuf := "communicated fine fluxes" AT coarse side of f/c bdry; unmodified ELSEWHERE.

Finer-level data (where needed) must have been stored to SPFS, typically by calling Grid_putFluxData_block on relevant neigboring blocks, and communication must have been triggered, typically by calling Grid_communicateFluxes, before this interface is invoked for a block.

Only fluxes at locations that represent the coarse side of fine/coarse block boundaries are modified, other elements of the flux buffers are left unmodified by calling this interface.

blockDesc : descriptor for one block. !!DEV: can it be a proper tile?

fluxBufX : fluxes for IAXIS direction

fluxBufY : fluxes for JAXIS direction

fluxBufZ : fluxes for KAXIS direction

lo : lower bounds for the spatial indices of the flux buffers

isFluxDensity : are the fluxes actually fluxes or flux densities?


The arrays fluxBufX, fluxBufY, fluxBufZ 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.


Grid_putFluxData_block Grid_communicateFluxes Grid_correctFluxData_xtra Hydro

Definition at line 70 of file Grid_correctFluxData.F90.