Function adas.xxtotl_23

def xxtotl_23(seq, iz0, iz, iz1, ctype, bwno_f, nlvl_f, lmet_f, lcstrg_f, ia_f, code_f, cstrga_f, isa_f, ila_f, xja_f, wa_f, nmet_f, imeta_f, bwno_i, nlvl_i, lmet_i, lcstrg_i, ia_i, code_i, cstrga_i, isa_i, ila_i, xja_i, wa_i, nmet_i, imeta_i, nte_ion, tea_ion, lqred_ion, qred_ion, nf_a, indf_a, lyld_a, yld_a, nte_exc, tea_exc, lqred_exc, qred_exc, l_ion, l_aug, l_exc)

Reads an adf23 ionization file and returns all of its contents in a dictionary.

Parameters

file : str
full name of ADAS adf23 file
seq : str
iso-electronic sequence symbol (length 2)
iz0 : int
nuclear charge
iz : int
ionising ion charge
iz1 : int
ionised ion charge (=iz+1)
ctype : str
adf23 file resol. ('ca', 'ls' or 'ic')(length 2)
bwno_f : float
ionisation potential of ionised ion (cm-1)
nlvl_f : int
number of levels of ionised ion
lmet_f : bool
True => ionised metastables marked False => unmarked
lcstrg_f : bool
True => standard config strings for ionised ion states False => cannot be determined
ia_f : int
index of ionised ion levels (ndlev)
code_f : str
met. or excit. DR parent marker (* or #) 1st dim (ndlev) : ionised ion level index
cstrga_f : str
ionised ion configuration strings 1st dim (ndlev) : ionised ion level index
isa_f : int
ionised ion level multiplicity 1st dim (ndlev) : ionised ion level index
ila_f : int
ionised ion total orb. ang. mom. 1st dim (ndlev) : ionised ion level index
xja_f : float
ionised ion level (statistical weight-1)/2 1st dim (ndlev) : ionised ion level index
wa_f : float
ionised ion level wave number (cm-1) 1st dim (ndlev) : ionised ion level index
nmet_f : int
number of ionised ion metastables
imeta_f : int
pointers to ionised metastables in full ionised ion state list 1st dim (ndlev) : ionised ion level index
bwno_i : float
ionis. poten. of ionising ion (cm-1)
nlvl_i : int
number of levels of ionising ion
lmet_i : bool
True => ionising metastables marked False => unmarked
lcstrg_i : bool
True => standard config strings for ionising ion states False => cannot be determined
ia_i : int
index of ionising ion levels 1st dim (ndlev) : ionising ion level index
code_i : str
met. or excit. DR parent marker (* or #) 1st dim (ndlev) : ionising ion level index
cstrga_i : str
ionising ion configuration strings 1st dim (ndlev) : ionising ion level index
isa_i : int
ionising ion level multiplicity 1st dim (ndlev) : ionising ion level index
ila_i : int
ionising ion total orb. ang. mom. 1st dim (ndlev) : ionising ion level index
xja_i : float
ionising ion level (stat wt-1)/2 1st dim (ndlev) : ionising ion level index
wa_i : float
ionising ion level wave number (cm-1) 1st dim (ndlev) : ionising ion level index
nmet_i : int
number of ionising ion metastables
imeta_i : int
pointers to ionising metastables in full ionising ion state list 1st dim (ndlev) : ionised ion level index
nte_ion : int
number of temperatures for direct ionisation data for initial metastable block 1st dim (ndlev) : ionising ion level index
tea_ion : float
temperatures (K) for direct ionisation data for initial metastable blockdblarr 1st dim (ndmet) : ionising metastable index 2nd dim (ndtem) : temperature index
lqred_ion : bool
True => direct ionisation data line present for ionised ion state False => missing 1st dim (ndmet) : ionising metastable index 2nd dim (ndlev) : ionised ion state index
qred_ion : float
reduced direct ionisation rate coefficients 1st dim (ndmet) : ionising metastable index 2nd dim (ndlev) : ionised ion state index 3rd dim (ndtem) : temperature index
nf_a : int
number of Auger ionised ion final states 1st dim (ndmet) : ionising metastable index
indf_a : int
Auger ionised ion final state 1st dim (ndmet) : ionising metastable index 2nd dim (ndlev) : final state index
lyld_a : bool
True => Auger data for ionising ion excited state present False => No Auger data 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : initial state index
yld_a : float
Auger yields 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : ionising ion excited state index 3rd dim (ndlev) : ionised ion excited state index
nte_exc : int
number of temperatures for excitation 1st dim (ndmet) : ionising ion metastable index
tea_exc : float
temperatures (K) for direct excitation data for initial metastable block 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndtem) : temperature index
lqred_exc : bool
True => direct excitation data line present for excited ion state False => no data 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : ionising ion excited state index
qred_exc : float
reduced excitation rate coefficients 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : ionising ion excited state index 3rd dim (ndtem) : temperature index
l_ion : bool
True => ionisation data present for metastable False => not present 1st dim (ndmet) : ionising ion metastable index
l_aug : bool
True => Auger data present for metastable False => not present 1st dim (ndmet) : ionising ion metastable index
l_exc : bool
True => excitation data present for metastable False => not present 1st dim (ndmet) : ionising ion metastable index

Returns

szd : dict

totals for direct, EA and overall rates of the adf23 file

'q_ion' : float direct ionisation rate coefficients multipler 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : ionised ion state index 3rd dim (ndtem) : temperature index 'is_q_ion' : float scaling exponent for direct ionisation coefficient 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : ionised ion state index 3rd dim (ndtem) : temperature index 'q_exc' :float excited ionisation rate coefficients multipler 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : excited ionising ion state index 3rd dim (ndtem) : temperature index 'is_q_exc' : float scaling exponent for excited ionisation coefficient 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : excited ionising ion state index 3rd dim (ndtem) : temperature index 'qtot' : float total ionisation rate multipler 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : ionised ion metastable index 3rd dim (ndtem) : temperature index 'is_qtot' : float scaling exponent for total ionisation coefficient 1st dim (ndmet) : ionising ion metastable index 2nd dim (ndlev) : ionised ion metastable index 3rd dim (ndtem) : temperature index

Notes

Although this may be used a standalone routine it is normally used by setting add_total=True to xxdata_23. Hence the arguments are the adf23 data rather than a fulldata dictionary.

As different dimensions for direct and EA temperatures are possible, the total rate can only be calculated if these are the same.

The totals are given as a multipler (q) and scaling exponent (is). The rate can be calculated: rate = q * 10.0**is

Calls a fortran based shared object file - not pure python.

References

ADAS manual description of adf23: http://www.adas.ac.uk/man/appxa-23.pdf

Version History

  • Martin O'Mullane, 21-08-2022
    • First version

Example