PlasmaCalcs.mhd.mhd_er_tables.erTabInputManager

class PlasmaCalcs.mhd.mhd_er_tables.erTabInputManager(filename, *, u=None, ionize_ev='physical', **kw_super)

Bases: DictlikeFromKeysAndGetitem, UnitsHaver

manages tables, based on tab input file.
All tables and table coords here are in ‘raw’ units.
self is dict-like, with keys quantity names, values erTable objects.
(alternatively, use self.tables for dict like self.)
self.elements is an ElementList based on the elements info in tab input file.
filename: str
path to tab input file, e.g. tab_param.in. Internally stored as abspath.
This should be an idl-like file which includes params for tables:
EOSTableFile: str, path to eos table file
RhoEiRadTableFile: str, path to radiation table file
nRhoBin: int, number of bins for r (mass density)
RhoMin, RhoMax: numbers, r [cgs units] for smallest and largest bins
nEiBin: int, number of bins for eperm (internal energy per unit mass)
EiMin, EiMax: numbers, eperm [cgs units] for smallest and largest bins
nRadBins: int, number of radiation bins in the radiation tables.
It should also include params for elements (each as a string separated by spaces):
cel: elements names. Internally stored in title case (e.g. ‘H’, ‘He’).
abund: abundances of elements: A(elem) = 12 + log10(n(elem) / n(H)).
aweight: masses of elements [amu].
u: None or UnitsManager
used to calculate scale_quants to convert to ‘raw’ units.
None –> all scale quants will be 1.
example: if this TabInputManager is associated with a BifrostCalculator,
probably will have u = the BifrostUnitsManager from that BifrostCalculator.
ionize_ev: str or dict
first ionization potentials of elements [eV]. E.g., {‘H’: 13.6}.
affects self.elements; irrelevant to tables.
str –> use ElementList.DEFAULTS[‘ionize_ev’][ionize_ev]
__init__(filename, *, u=None, ionize_ev='physical', **kw_super)

Methods

__init__(filename, *[, u, ionize_ev])

get(key[, default])

get_behavior([keys])

get_coords(*[, for_kw])

get_eperm_coords()

get_r_coords()

init_tables()

items()

keys()

make_element_list(*[, ionize_ev, set])

record_units(array)

units_meta()

values()

Attributes

behavior

behavior_attrs

cls_behavior_attrs

dirname

eosfile

n_radbins

nondim_behavior_attrs

radfile

u

units

property behavior
dict of {attr: self.attr} for attr in self.behavior_attrs. Note dims are separate;
dims go in behavior.dims. E.g. Behavior({‘units’:’si’,…}, dims={‘snap’:0,…}).
property behavior_attrs
list of attrs in self which control behavior of self.
Here, returns self.cls_behavior_attrs.
Subclasses could override if any behavior attrs are not known at the class-level,
e.g. if MySubclass’s list of behavior attrs varies between instances of MySubclass.
property dirname
directory containing tabinputfile. Equivalent: os.path.dirname(self.filename)
element_list_cls

alias of ElementList

property eosfile
filepath to eos table file.
er_table_manager_cls

alias of erTableManager

get(key, default=UNSET)
return self[key]. if default is provided and self[key] doesn’t exist, return default.
get_behavior(keys=None)
return value of self.behavior.
keys: None or iterable
if provided, only include these attrs.
from nondim_behavior_attrs, or dims.
get_coords(*, for_kw=False)
return dict of eperm coords and r coords, in ‘raw’ units.
Assumes params from paramfile are in cgs units.
for_kw: bool
False –> result keys are ‘eperm’, ‘r’.
True –> result keys are ‘epermcoords’, ‘rcoords’.
get_eperm_coords()
return eperm coords in ‘raw’ units. Assumes params from paramfile are in cgs units.
get_r_coords()
return r coords in ‘raw’ units. Assumes params from paramfile are in cgs units.
init_tables()
initialize self.tables and return result
items()
return tuple of (key, value) pairs corresponding to self.keys() and self.values().
keys()
return tuple of keys in self.
make_element_list(*, ionize_ev=None, set=True)
set & return self.elements = ElementList based on params in self.
ionize_ev: None, str, or dict
first ionization potentials of elements [eV]. E.g., {‘H’: 13.6}.
str –> use ElementList.DEFAULTS[‘ionize_ev’][ionize_ev]
None –> use self.tabin.ionize_ev (default: ‘physical’)
set: bool
whether to set self.elements to the result. Default True.
property n_radbins
return number of radbins in self.
property nondim_behavior_attrs
list of attrs in self which control behavior of self, but which are NOT in self.dimensions.
property radfile
filepath to radiation table file.
record_units(array)
return array.assign_attrs(self.units_meta()).
if array is not an xarray.DataArray, convert it first.
property u
the current units manager for self.
if not yet initialized, getting self.u will create (and store) a new UnitsManager().
property units
the current unit system for self. E.g., ‘si’. (this is an alias to self.u.units)
units_meta()
return dict(units=self.units).
values()
return tuple of values corresponding to self.keys().