Function adas.ceevth

def ceevth(amdon=None, amrec=None, catyp=None, dren=None, iextyp=1, log=False, enin=None, sgin=None, enout=None)

Generates rate coefficients for donor/receiver charge exchange collisions for cases of monoenergetic donor/thermal receiver, thermal donor/monoenergetic receiver, thermal donor/thermal receiver (same temperature) from cross-section tabulations. A mono-energetic case is allowed which converts input cross-sections tabulated at a set of energies/amu to output cross-sections tabulated a different set of energies/amu.

Parameters

amdon : float
donor mass (amu)
amrec : float
receiver mass (amu)
catyp : str
type of evaluation 'tt' => thermal/thermal equal temperatures for donor and receiver only 'tr' => thermal receiver, monoenergetic donor 'td' => thermal donor, monoenergetic receiver 'me' => special monoenergetic case
dren : float
donor energy for 'tr' case (eV) receiver energy for 'td' case (eV) otherwise it is not used
iextyp : float
extrapolation method if iextyp = 1 set lower energies to first point (default) if iextyp = 2 set lower energies to 0.0
log : bool
if log is True spline on log(energy) vs log(sigma).
enin : float, array
set of energies (eV/amu)
sgin : float, array
set of cross sections (cm**2)
enout : float, array
set of temperatures (for 'TT', 'TR', 'TD') or energies ('ME') to evaluate the rate coefficient

Returns

rate : float, array
rate coefficient (cm3 s-1)

Notes

Calls a fortran based shared object file - not pure python.

Version History

  • Martin O'Mullane, 09-04-2021

    • First version
  • Martin O'Mullane, 01-11-2023

    • Allow user to choose log-log splining of the cross section.

Example

Calculate the ionisation rate coefficient for H+ + H0. The cross section data is in block 11 in the sia#h_j99#h.dat adf02 file.

>>> import adas as adas
>>> file='/home/adas/adas/adf02/sia#h/sia#h_j99#h.dat'
>>> fulldata = adas.xxdata_02(file)
>>> energy=fulldata['teea'][0:fulldata['iea'][10],10]
>>> sigma=fulldata['sia'][0:fulldata['iea'][10],10]
>>> adas.ceevth(amdon=1.0, amrec=1.0, catyp='tt', iextyp=2, 
                enin=energy, sgin=sigma, enout=[5.0, 20.0, 100.0])
array([4.99089214e-54, 1.44484389e-21, 2.81157011e-13])