Function adas.xxdata_00
def xxdata_00(file=None, iz0=None, ls=None, ic=None)
-
Reads an adf00 file (fixed atomic data) and returns all of its contents in a dictionary.
Parameters
file
:str
- full name of ADAS adf00 file
iz0
:int
- atomic number of element
ls
:bool
, optional- if True access the ls resolved adf00 file
ic
:bool
, optional- if True access the ic resolved adf00 file
Returns
fulldata
:dict
- contents of the adf00 file
'filename' : adf00 filename 'esym' : element symbol. 'iz0' : nuclear charge read 'wf' : work function for ls coupled data (eV) 'eeva' : ionisation potential (eV) of each stage float array(ion charge +1) 'iorba' : number of orbital shells in configuration int array(ion charge +1) 'na' : principal quantum number of shell int array(ion charge +1, shell index) 'la' : orbital ang. momentum qu. no. of shell int array(ion charge +1, shell index) 'iqa' : occupancy. of shell int array(ion charge +1, shell index) 'cstr_std' : configuration string in standard form str array(nuclear charge +1) 'isa' : multiplicity of ground level int array(ion charge +1) 'ila' : total orbital ang. mom. of of ground level int array(ion charge +1) 'xja' : total ang. mom. (or [stat. wt.-1/2]) int array(ion charge +1) 'imeta' : theor. no. of metastables for each ionis. stage int array(ion charge +1) 'imeta_actual' : actual. no. of metastables found for each ionis. stage int array(ion charge +1) 'eevma' : excitation energy (eV) of each metastable float array(ion charge +1, metastable index) 'iorbma' : number of orbital shells in metas. config. int array(ion charge +1, metastable index) 'nma' : principal quantum number of metas.shell int array(ion charge +1, shell index, metastable index) 'lma' : orbital ang. mom. qu. no. of metas. shell int array(ion charge +1, shell index, metastable index) 'iqma' : occupancy. of metas. shell int array(ion charge +1, shell index, metastable index) 'cstrm_std' : meta. config. string in standard form str array(ion charge +1, metastable index) 'isma' : multiplicity of metastable level int array(ion charge +1, metastable index) 'ilma' : total orbital ang. mom. of metastable level int array(ion charge +1, metastable index) 'xjma' : total ang. mom. (or [stat. wt.-1/2]) of metastable level int array(ion charge +1, metastable index) 'lexist' : True => ionisation potential present False => not present 'lresol' : True => metastable resolved adf00 file False => not metastable resolved adf00 'lquno' : True => outer quantum nos. present in adf00 file False => outer quantum nos. not present 'coupling' : '' : base form, unresolved, 'ls': '_ls' detected in dataset name, 'ic': '_ic' detected in dataset name, 'ns': unspecified resolved
Notes
Calls a fortran based shared object file - not pure python.
References
ADAS manual description of adf00: http://www.adas.ac.uk/man/appxa-00.pdf
Version History
-
Martin O'Mullane, 17-09-2019
- First version
-
Martin O'Mullane, 26-09-2019
- dsnin should be padded with spaces for sending to fortran but not when reading the first line the number of metastables.
-
Martin O'Mullane, 27-05-2020
- bwnoa has been removed from the returned dictionary because eeva hold the same information.
- fix eevma to return the correct number of metastables.
-
Martin O'Mullane, 09-06-2023
- increase internal dimension to allow U (Z=92) data.
-
Martin O'Mullane, 15-09-2023
- increase internal dimension to allow Lr (Z=103) data.
Example
Either specify the adf00 file
>>> import adas as adas >>> file = '/home/adas/adas/adf00/be.dat' >>> fulldata = adas.xxdata_00(file) >>> fulldata['eeva'] array([ 9.32269879, 18.2111529 , 153.896198 , 217.718577 ]) >>> fulldata['eeva'] array([ 9.32269879, 18.2111529 , 153.896198 , 217.718577 ])
or iz0 and optionally the resolution ls or ic
>>> import adas as adas >>> fulldata = adas.xxdata_00(iz0=5, ls=True) >>> fulldata['eeva'] array([ 8.29675522, 25.1548306 , 37.9305834 , 259.37146 , 340.226008 ]) >>> fulldata['eevma'] array([[ 0. , 3.5514367 , 0. ], [ 0. , 4.63080217, 0. ], [ 0. , 0. , 0. ], [ 0. , 198.564666 , 0. ], [ 0. , 0. , 0. ]])
>>> import adas as adas >>> fulldata = adas.xxdata_00(iz0=5, ic=True) >>> fulldata['eevma'] array([[0.00000000e+00, 1.89571831e-03, 3.55182849e+00, 3.55240378e+00, 3.55318860e+00], [0.00000000e+00, 4.62901680e+00, 4.62977434e+00, 4.63177669e+00, 0.00000000e+00], [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [0.00000000e+00, 1.98564666e+02, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]])