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