FLASH4.6.1 API

Generated from /asc/asci2/site/flashcode/secure/release_4p6/source/physics/Eos/Eos_wrapped.F90 with ROBODoc v4.99.8 on Mon Oct 14 13:16:05 2019

TABLE OF CONTENTS


[Functions] source/physics/Eos/Eos_wrapped

[top][index]

NAME

  Eos_wrapped

SYNOPSIS

  call Eos_wrapped(  integer(IN) :: mode,
                     integer(IN) :: range(HIGH, MDIM),
                     integer(IN) :: blockID,
            optional,integer(IN) :: gridDataStruct )

DESCRIPTION

 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().

ARGUMENTS

   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.

   blockID: current block number

   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