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

Go to the source code of this file.

Functions/Subroutines

subroutine Eos_wrapped (mode, range, solnData, gridDataStruct)
 
subroutine Eos_arrayWrapped (mode, range, solnData, gridDataStruct)
 

Function/Subroutine Documentation

◆ Eos_arrayWrapped()

subroutine Eos_arrayWrapped ( integer, intent(in)  mode,
integer, dimension(2,MDIM), intent(in)  range,
real  solnData,
integer  gridDataStruct 
)

Definition at line 92 of file Eos_wrapped.F90.

◆ Eos_wrapped()

subroutine Eos_wrapped ( integer, intent(in)  mode,
integer, dimension(2,MDIM), intent(in)  range,
real  solnData,
integer  gridDataStruct 
)

This function is provided for the user's convenience and acts as a simple wrapper to the Eos interface. The Eos interface uses a single, flexible data structure "eosData" to pass the thermodynamic quantities in and out of the funtion (see Eos). The wrapper hides formation and use of eosData from the users.

While Eos does not know anything about blocks, Eos_wrapped takes its input thermodynamic state variables from a given block's storage area. It works by taking a selected section of a block described by array "range" and translating it to eosData before calling the Eos routine. Upon return from Eos, Eos_wrapper updates certain state variables in the same section of the block's storage area. Which variables are taken as input, and which are updated, depends on the "mode" argument.

If you want to return the derived quantities defined from EOS_VAR+1:EOS_NUM in Eos.h, then you must use the direct interface Eos().

mode : determines which variables are used as Eos input. The valid values are MODE_DENS_EI (where density and internal energy are inputs), MODE_DENS_PRES (density and pressure as inputs) MODE_DENS_TEMP (density and temperature are inputs). These quantities are defined in constants.h, the argument is forwarded unchanged to the Eos function call. Note that internal energy is the grid variable EINT_VAR, not ENER_VAR.

range: an array that holds the lower and upper indices of the section of block on which Eos is to be applies. The example shows how the array describes the block section.

solnData : pointer to the state data on which EOS is to be applied

gridDataStruct : the grid data structure on whose data Eos is to be applied

EXAMPLE if range(LOW,IAXIS)=1,range(HIGH,IAXIS)=iguard, range(LOW,JAXIS)=1,range(HIGH,JAXIS)=jguard, range(LOW,KAXIS)=1,range(HIGH,KAXIS)=kguard, then Eos is applied to the lower left hand corner of the guard cells in the block. If, however, the value were range(LOW,IAXIS)=iguard+1,range(HIGH,IAXIS)=iguard+nxb, range(LOW,JAXIS)=jguard+1,range(HIGH,JAXIS)=jguard+nyb, range(LOW,KAXIS)=kguard+1,range(HIGH,KAXIS)=kguard+nzb, then Eos is applied to all the interior cells in the block.

NOTES This interface is defined in Fortran Module Eos_interface. All functions calling this routine should include a statement like use Eos_interface, ONLY : Eos_wrapped

SEE ALSO

Eos Eos.h

Definition at line 79 of file Eos_wrapped.F90.