radis.levels.partfunc_cdsd module¶
Variants of default Partition function tabulators and calculators, based on CDSD-4000 format, specifically for CO2.
Routine Listing¶
Partition functions:
Which inherit from:
- class PartFuncCO2_CDSDcalc(energy_levels, isotope, levelsfmt, use_cached=True, use_json=None, verbose=True, mode='full summation')[source]¶
Bases:
RovibParFuncCalculator
Calculate Partition Function from energy levels (and maybe export a tabulated database).
- warning::
ZPE (zero point energy) must be the same in the Line Database and the Energy levels database. See the Configuration file.
- Parameters:
energy_levels (filename) – path to energy levels (to calculate Partition Function) for
isotope
isotope (int) – which isotope we’re dealing with. Default
1
. In the current implementation only isotope 1 and 2 are defined.levelsfmt (
'cdsd-p'
,'cdsd-pc'
,'cdsd-pcN'
,'cdsd-hamil'
, orNone
) – the format of the Energy Database, and in particular howEvib
andErot
have been calculated. A vibrational level in the CDSD (p,c,J,N) nomenclature can be defined for levels that share a same (p), (p,c) or (p,c,N), wherep
is the polyad number,c
is the Wang symmetry number, andN
is the ranking index of a (p,c,J) group. Default'cdsd-pc'
.If
None
, dont label the levels. Wont be able to use the EnergyDatabase to fetch vibrational energies for lines, however it can still be used to calculate Partition functions independently from a Spectrum calculation
- Other Parameters:
use_cached (
True
,False
, or'regen'
,'force'
) – ifTrue
, use (and generate if doesnt exist) a.h5
file. If'regen'
, regenerate cache file. If'force'
, raise an error if file doesnt exist. DefaultTrue
mode (‘full summation’, ‘tabulation’) – calculation mode.
'tabulation'
is much faster but not all possible distributions are implemented. Default'full-summation'
use_json (boolean) – deprecated. Better use h5 now.
Notes
Database format:
Tashkun database updated with ranking number (n) & total rank (N) of block, Evib and Erot (cm-1) and jref
For nonequilibrium, different strategies exist so as how to assign rotational and vibrational energies in a CDSD database. See the E. Pannier “Limits on CO2 Nonequilibrium model” article for a discussion on that.
Example of table format:
# calculated rovibrational energy levels of 12C16O2 # ================================================= # S.Tashkun, Zuev Institute of Atmospheric Optics, Tomsk, Russia # date: 17.03.2017 # # zero point energy ZPE (cm-1) = 2531.828 # # p = 2v1 + v2 + 3v3 - polyad number # j - rotational quantum number # c - Wang symmetry (1-'e'; 2-'f') # N - ranking number of energy levels of (p,j,c) blocks # n - total rank of (p,j,c) blocks # # Calculation limitations: # pmax = 40 # jmax = 300 # Ecut = 44600 cm-1 # --------------- p c j N n E Evib Erot jref 0 1 0 1 1 0.000 0.000 0.000 0 0 1 2 1 1 2.341 0.000 2.341 0 0 1 4 1 1 7.804 0.000 7.804 0 0 1 6 1 1 16.389 0.000 16.389 0 0 1 8 1 1 28.095 0.000 28.095 0
See an example in
test/files/co2_cdsd_hamiltonian_fragment.levels
See also
- class PartFuncCO2_CDSDtab(isotope, database)[source]¶
Bases:
RovibParFuncTabulator
Return partition function of CO2 using a spline interpolation of tabulated values used in [CDSD-4000]
- Parameters:
T (temperature (K)) – gas temperature (equilibrium)
Notes
Partition function calculated in CDSD by direct summation (Jmax=300)
The CDSD
partition_functions.txt
can be downloaded from the [CDSD-4000] FTP : ftp://ftp.iao.ru/pub/CDSD-4000/See also