Function adas.xxdata_06
def xxdata_06(file=None, ndlev=450, ndtrn=15000, ndmet=13, ndqdn=8, ndpro=20, nvmax=50, itieactn=True)
-
Reads an adf06 specific ion file and returns all of its contents in a dictionary.
Parameters
file
:str
- full name of ADAS adf06 file
ndlev
:int
, optional- maximum number of levels - defaults is 450
ndtrn
:int
, optional- maximum number of transitions - default is 15000
ndmet
:int
, optional- maximum number of metastables - default is 13
ndqdn
:int
, optional- maximum principal quantum number of orbitals - default is 8
nvmax
:int
, optional- maximum number of temperatures/energies - default is 100
itieactn
:bool
- When set to False terminate if any levels are untied. The default is to to continue.
Returns
fulldata
:dict
- contents of the adf06 file
'file' : adf06 filename 'adf06_type' : variant of the adf06 file 1 = collision strengths vs E/delta_E 2 = unused 3 = effective collision strengths 4 = non-Maxwellian 5 = collision strengths vs E-delta_E (Ryd) 6 = specific for BBGP 'iz0' : nuclear charge 'iz' : recombined ion charge 'ia' : energy level index number (array) 'cstrga' : nomenclature/configuration for level (array) 'isa' : multiplicity for level (array) note: (isa-1)/2 = quantum number (s) 'ila' : quantum number (l) for level (array) 'xja' : quantum number (j-value) for level (array) note: (2*xja)+1 = statistical weight 'wa' : energy relative to level 1 (cm-1) for level (array) 'npla' : number of parent/zeta contributions to ionisation of level (array) 'ipla' : parent index of contributions to ionisation of level (array[parent index, level index]) 'zpla' : effective zeta parameter of contributions to ionisation of level (array[parent index, level index]) 'ltied' : indicates whether a level is tied (True ) or not (False). (array) 'bwno' : ionisation potential (cm-1) of lowest parent 'bwnoa' : ionisation potential (cm-1) of parents (array) 'cprta' : parent name in brackets (array) 'prtwta' : parent weight for parents in bwnoa array 'eorb' : orbital energies (Rydberg) of occupied orbitals in the configuration present (array) 'qdn' : quantum defect for n-shells (array) 'qdorb' : quantum defects for nl-orbitals (array) indexed by ADAS i4idfl routine. 'lqdorb' : indication whether source data available for quantum defect (True) (array) 'te' : electron temperatures (K) or energy parameter (array) 'lower' : lower energy level index for excitation (array) 'upper' : upper energy level index for excitation (array) 'aval' : transition probability (s-1) (array [transition]) 'gamma' : gamma (array [transition, te, projectile] - effective collision strength for type 3 adf06 - collision strength for type 1 'projectile' : name of projectile (array [projectile]), eg '7^Li' 'charge_prj' : charge of projectile (array [projectile]) 'mass_prj' : mass of projectile (array [projectile]) in atomic number 'mass_target': mass of target (array [projectile]) in atomic number 'bt_type' : Burgess Tully classification of transition (1-4) 'beth' : Bethe coefficient 'level_ion' : ionising level index for ionisation (array) 'parent_ion' : parent level index for ionisation (array) 'ion' : ionisation rate (cm3 s-1) (array[te, transition])
Notes
Calls a fortran based shared object file - not pure python.
References
ADAS manual description of adf06: http://www.adas.ac.uk/man/appxa-06.pdf
Any meaningful A-value is the electric quadrupole (E2) transition. It is not dependent on the projectile and is repeated in each projectile block.
Version History
-
Martin O'Mullane, 06-09-2018
- First version
-
Martin O'Mullane, 16-07-2020
- Extra ouptut from xxdtes.
-
Martin O'Mullane, 16-07-2020
- Correct dimension of beth for multiple projectiles.
- Fix reversed ionization parent/level identifiers.
Example
Show first 3 configurations and the effective collision strength for the 6th transition in the adf06 file.
>>> import adas as adas >>> file='/home/adas/adas/adf06/lilike/lilike_aug99#li0_t1.dat' >>> fulldata = adas.xxdata_06(file) >>> fulldata['cstrga_std'][0:3] array(['1S2 2S1', '1S2 2P1', '1S2 3S1'], dtype='<U7') >>> fulldata['te'][0:40:5] array([1.00e+02, 2.85e+02, 8.11e+02, 2.31e+03, 6.58e+03, 1.87e+04, 5.34e+04, 1.52e+05]) >>> fulldata['gamma'][3,0:40:5] array([4.23e-01, 4.34e+01, 3.42e+02, 2.34e+03, 8.68e+03, 1.13e+04, 1.22e+04, 1.28e+04])