FLASH-X
Doxygen Generated Documentation From Interface Source Code
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | Eos_putData (axis, pos, vecLen, solnData, gridDataStruct, eosData) |
subroutine | Eos_putDataR2 (axis, pos, vecLen, solnData, gridDataStruct, eosData) |
subroutine Eos_putData | ( | integer, intent(in) | axis, |
integer, dimension(MDIM), intent(in) | pos, | ||
integer | vecLen, | ||
real | solnData, | ||
integer | gridDataStruct, | ||
real | eosData | ||
) |
Eos_putData puts data from an eosData array into a Grid data structure, usually after data in the eosData array have been updated by an Eos call.
The Eos_wrapped 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 function (see Eos). The wrapper hides formation and use of eosData from the users. The wrapper function uses the Eos_putData function to update certain state variables in the relevant section of the block's storage, a vector at a time. The function can also be used independently to update a vector in a grid block from the values returned by the call to Eos. The arguments axis, pos and vecLen together specify the relevant vector.
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().
axis : the dimension of the vector in the block's storage pos : the starting indices of the vector in the block. Note that the vector has to provide the starting indices for all dimensions vecLen : the length of the vector solnData : the solution data for the current block; various components (variables) of solnData will have been updated when Eos_putData returns. gridDataStruct : the relevant grid data structure, on whose data Eos was applied. One of CENTER, FACEVAR{X,Y,Z}, GRIDVAR, defined in constants.h . eosData : the data structure native to Eos unit, in which the computed values of the state variables are returned by Eos
EXAMPLE if axis = IAXIS, pos(IAXIS)=1,pos(JAXIS)=1,pos(KAXIS)=1 and vecLen=4 then data from applying Eos() to four cells in the first row along IAXIS of the lower left hand corner of the guard cells in the block is put into corresponding parts of the Grid data structure.
However if the value were pos(IAXIS)=iguard+1, pos(JAXIS)=jguard+1, pos(KAXIS)=kguard+1, vecLen = NYB, and axis = JAXIS then data from applying Eos() to the first column along Y axis in the interior of the block is returned.
NOTES
This interface is called from Eos_wrappped, and is normally not called by user code directly.
The actual arguments in a call should match those used in a preceding Eos_getData call used to set up the eosData array.
This interface is defined in Fortran Module Eos_interface. All functions calling this routine should include a statement like use Eos_interface, ONLY : Eos_putData
This routine cannot use "INTERIOR" mode of indexing the range. In the second example given above, although only the interior cells are being calculated with EOS, the range indices still must include the guard cells. See, for example, IsentropicVortex/Simulation_initBlock where the data is generated on INTERIOR cells with Grid_putRowData, but the same indices can't be used for the EOS call.
SEE ALSO
Eos_getData Eos Eos.h
Definition at line 92 of file Eos_putData.F90.
subroutine Eos_putDataR2 | ( | integer, intent(in) | axis, |
integer, dimension(MDIM), intent(in) | pos, | ||
integer | vecLen, | ||
real | solnData, | ||
integer | gridDataStruct, | ||
real | eosData | ||
) |
Definition at line 108 of file Eos_putData.F90.