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