symbol | inputs | outputs | 1-T | RS | |
MODE_DENS_TEMP | , | yes | no | ||
MODE_DENS_TEMP_EQUI | , , | , , ... | yes | no | |
MODE_DENS_TEMP_GATHER | , | , ... | no | (y) | |
MODE_DENS_EI | , | yes | yes | ||
MODE_DENS_EI_SCATTER | , , | , , ... | yes | yes | |
MODE_DENS_EI_GATHER | , | , ... | no | (y) | |
MODE_DENS_EI_SELE_GATHER | , , | , ... | no | (y) | |
MODE_DENS_PRES | , | yes | yes |
The multitemperature Gamma EOS implementation models the ion as well as the electron components as ideal gases, and the radiation component as black body thermal radiation (like the Helmholtz 1T implementation, see Sec:Eos Helmholtz). It is a limitation of this implementation that the ionization state of ions is assumed to be fixed.
This Eos implementation has several runtime parameters, in part inherited from the 1T implementation, that can technically be changed but for which different values can lead to a nonsensical or inconsistent model. In particular, the values of gamma, gammaIon, gammaEle, and gammaRad should not be changed from their default values ( for the first four and for the latter). Other values have not been tested.
This EOS can include contributions from radiation, partially or completely ionized nuclei, and electrons. The desired (constant) ionization level of the nuclei should be specified with the eos_singleSpeciesZ runtime parameter. The eos_singleSpeciesA runtime parameter specifies the average atomic mass and should be set to the mass of one atom of the material in atomic mass units. For example, for a plasma of fully ionized Carbon-12, one would set and .
The combined pressure and internal energy are calculated as the sum over the components
As for the 1T Helmholtz implementation, the black body pressure and energy relate to the radiation “temperature” by
Like 1T implementations, all multitemperature implementations of Eos must return , and is calculated from (17.2). These two generalizations of adiabatic indices are usually stored as the mesh-based variables GAMC_VAR and GAME_VAR as a result of calling Eos_wrapped.
Typically, a simulation would implement a Simulation_initBlock that initializes mass scalar variables sumy and ye as desired. The initial values then get advected with the motion of the fluid. Eos interprets them as
(17.23) |
(17.24) |
(17.25) |
(17.26) |
First a clarification, to avoid confusion: We will call ions, electrons, and radiation the three components of the fluid; and we designate different kinds of materials as different species. A fluid with several materials contributes its ions to the common ion component and its electrons to the common electron component. Currently, all adiabatic coefficients describing the electrons and the various kinds of ions should be as for a monatomic ideal gas (despite the implementation's name!). Mixing of species in a cell results in a fluid whose matter components are described by average values and , which depends on the local composition as well as on the and values of the various species.
In our multitemperature approximation, the three components may have different temperatures, but there is no notion of a per-species temperature.
The multitemperature Multigamma implementation is another variation on the multitemperature Gamma theme. Except for the different way of gettting and , all else goes as described for Gamma, above.
Tables are read into memory at initialization. For both IONMIX4 and SESAME, tables for , , , , and are used.
Eos modes like MODE_DENS_TEMP, MODE_DENS_TEMP_component, MODE_DENS_TEMP_EQUI compute Nion from dens and directly look up the output quantities in the appropriate tables. For other modes, root searches would be required.
However, the Tabulated Eos implementation is currently not being used on its own but only in connection with the Multitype implementation.
The SESAME database is a TEOS although rather than solely relying on theoretical models, it is physically motivated; see LA-UR-92-407, and Crockett (1999). Experimental data check in different regions the consistency of the thermodynamic interpolations.
SESAME involves tabulated equilibrium data Pimentel & Sheppard (2018) in logically-Cartesian tables (see LA-UR-21-23834), using two state functions (e.g., temperature and density) to populate the phase-space with other macroscopic properties like pressure, internal energy, for 150+ materials.
Therefore SESAME, being publicly available, contains the necessary physics for simulating astrophysical and HEDP systems using FLASH4. Nevertheless, the database is not fully compatible with the code outright. Data entries may fall into solid-state regimes which have negative pressures and/or energies, for which the current FLASH4 will predict non-physical wave speeds.
For this reason, FLASH4 typically initializes a given material at a higher temperature to avoid pathologies (see Figure 17.2).
|
The SESAME tables of interest are selected by reading through the material property file to isolate the data associated with specific EOS headers. SESAME provides several TEOS options. The framework of the current FLASH4 code requires tables 303 and 304, the ion and electron TEOS entries, respectively.
The reader, found in eos_tabReadSesameTables.F90 truncates the range in the space, eliminating data of problematic regions, i.e., negative entries.
With the working range defined, FLASH4 passed the data to eos_tabEditSesameTables.F90, which scans the ranges of the two truncated 303 and 304 matrices to determine their relative orientation, as shown in Figure 17.3.
|
Once FLASH4 determines their relative orientation, it can pinpoint the overlapping region in the space of the concatenated 303 and 304 tables; there are represented by , and in Figure 17.3.
By implication, this allows the code to establish a common temperature and density envelope for the simulation. The new bounds direct the creation of a new, very fine grid (matrix see Figure 17.3), upon which the physical values of the 303 and 304 EOS tables are interpolated; its high resolution, points across ensures that the derived table accurately captures the slopes of constitutive quantities (see Figure 17.4).
Bilinear interpolation is used to populate matrix The user is advised not to initialize the temperature and/or density far outside the upper and lower bounds set by the grid. The slopes will be artificially fixed, and there can be no guarantee on the physicality of the extrapolated state.
The FLASH4 code requires ionization information on top of the thermodynamic quantities provided by SESAME. Thus, interpolating the 303 and 304 matrices using the uniform grid, shown in the previous figures as table allows the generation of an additional table mapping the ionization of the material across the interpolated range.
Calculation of the average ionization of the material follows the formulary description found in Atzeni & Meyer-ter-Vehn (2004).
Below, the SESAME format is defined. Certain information is ignored by FLASH, and is presently not used for any calculations. The format is extracted by LA-UR-92-407, and focuses on information which is specifically relevant to FLASH4. The reader is encouraged to read more about the SESAME TEOS database from this and related documents.
It should be noted that table 306 and table series 400, 500, and 600 are ignored by FLASH4.
Below, the exact file format for SESAME is included. It shows how the file should look like to be usable in FLASH.
The 300-series have identical mock data in a grid
wide, including solid-state entries.
0 9999 101 240 r 22481 102082 4 0
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxx
1 9999 101 232 r 22481 102082 4 1
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
1 9999 201 5 r 22481 102082 4 1
2.000000000000000E+00 4.002600000000000E+00 4.000000000000000E-01 0.000000000000000E+00 0.000000000000000E+0011111
1 9999 301 2119 r 22481 102082 4 1
3.800000000000000E+01 2.700000000000000E+01 0.000000000000000E+00 1.000000000000000E-06 1.000000000000000E-0511111
1.000000000000000E-04 2.154434690000000E-04 4.641588830000000E-04 1.000000000000000E-03 2.154434690000000E-0311111
4.641588830000000E-03 2.000000000000000E-02-1.465243200000000E-02 2.146937640000000E-02 3.145785770000000E-0211111
4.609341210000000E-02 6.753805870000000E-02 9.895968120000000E-02-1.450000000000000E-01-1.910612320000000E-0111111
. . .
1 9999 303 2119 r 22481 102082 4 1
3.800000000000000E+01 2.700000000000000E+01 0.000000000000000E+00 1.000000000000000E-06 1.000000000000000E-0511111
1.000000000000000E-04 2.154434690000000E-04 4.641588830000000E-04 1.000000000000000E-03 2.154434690000000E-0311111
4.641588830000000E-03 2.000000000000000E-02-1.465243200000000E-02 2.146937640000000E-02 3.145785770000000E-0211111
4.609341210000000E-02 6.753805870000000E-02 9.895968120000000E-02-1.450000000000000E-01-1.910612320000000E-0111111
. . .
1 9999 304 2119 r 22481 102082 4 1
3.800000000000000E+01 2.700000000000000E+01 0.000000000000000E+00 1.000000000000000E-06 1.000000000000000E-0511111
1.000000000000000E-04 2.154434690000000E-04 4.641588830000000E-04 1.000000000000000E-03 2.154434690000000E-0311111
4.641588830000000E-03 2.000000000000000E-02-1.465243200000000E-02 2.146937640000000E-02 3.145785770000000E-0211111
4.609341210000000E-02 6.753805870000000E-02 9.895968120000000E-02-1.450000000000000E-01-1.910612320000000E-0111111
. . .
Users might find that their SESAME table uses a different data format from the expected default E22.15. If that is the case the desired number format may be specified on a per species basis using the runtime parameter eos_specSesDblFmt.
Multitype implementation does Eos computations by combining Eos calls for different materials. A material is a species in the sense of the Multispecies unit. Properties of materials relevant to the Multitype Eos are thus kept in the Multispecies database.
The Multitype implementation can combine materials of different eos types. If can be used for 3T Eos modes. When used in this generally, we speak of MTMMMT Eos - multitemperature multimaterial multitype.
Currently, the Eos types that can be combined are:
The prescription for combining results of such calls is currently simple: Make Eos calls for different materials separately, passing the material's partial density into the Eos as the density. Ther per-material calls are thus not aware of other materials in the same cell. Results are combined as appropriate: pressures are taken as partial pressures and are added up to give the total multimaterial pressure; specific energies are multiplied with partial densities to give energy densities, which are added up.
For 3T modes, the above is applied separately for ion and electron components, resulting in separate total energies, pressures, etc., for ions and electrons. Newton-Raphson root search is done to implement Eos modes that take energies or pressures as inputs (like MODE_DENS_EI, MODE_DENS_PRES [not completely implemented]), separately for ions and electrons if necessary. The blackbody radiation component is added.
To use MTMMMT, use the +mtmmmt setup shortcut. See the LaserSlab simulation for an example. See the Multispecies unit on initializing material properties.