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]])