Cross sections¶
LTE/Non-LTE: Choose LTE or Non-LTE.
If you choose LTE, please ignore # Calculate non-LTE # section.
If you choose Non-LTE, more details can be found from Non-LTE.
WnWlUnit: Choose to provide the range of wavenumber wn in unit of cm-1 (cm⁻¹), or wavelength in unit of um (μm) or nm.
Range: Give two values as the minimum and maximum of the wavenumber range in unit of cm⁻¹ or wavelength range in unit of μm or nm. Please use the same unit as WnWlUnit. Don’t use , or ; between these two numbers, just leave blank here.
Absorption/Emission: Choose Absorption or Emission.
Npoints/BinSize: Npoints is the number of the points in grid. BinSiza is the interval size of the grid , use the same unit as WnWlUnit.
PredissocXsec(Y/N): If PredissocXsec(Y/N) is yes, predissociation lifetimes will be used or calculated when calculating cross sections with Voigt profile.
Cutoff(Y/N): If Cutoff(Y/N) is yes, you can provide wing cutoff here in unit of cm⁻¹.
Temperatures and pressures¶
Temperatures: Please provide temperatures in unit of K.
|
T = ? |
|
|---|---|---|
296 |
✅ |
296 K |
300,1000,3000,8000 |
✅ |
300 K, 1000 K, 3000 K, 8000 K |
1000:5000:1000 |
✅ |
1000 K, 2000 K, 3000 K, 4000 K, 5000 K |
300, 3000 |
❌ |
|
1000: 3000: 500 |
❌ |
|
[300,3000] |
❌ |
|
[300, 3000] |
❌ |
Pressures: Please provide pressures in unit bar.
|
P = ? |
|
|---|---|---|
1 |
✅ |
1 bar |
1.0 |
✅ |
1.0 bar |
0.5,1.0,5.0,10.0 |
✅ |
0.5 bar, 1.0 bar, 5.0 bar, 10.0 bar |
1:5:1 |
✅ |
1 bar, 2 bar, 3 bar, 4 bar, 5 bar |
1, 10 |
❌ |
|
1: 5: 1 |
❌ |
|
[1,10] |
❌ |
|
[1, 10] |
❌ |
\(N_T\) and \(N_P\) can be different. The total number of result files should be:
Filters¶
UncFilter(Y/N), Threshold(Y/N), and QNsFilter(Y/N) are filters, please see Filters.
Broadeners¶
Default means:
Default value of temperature exponent for all lines is 0.5.
Default value of Lorentzian half-width for all lines is 0.07.
If you want to use the default values of the broadeners, please set the Ratios of Broadeners under Default as 1.0.
The broadening types and ratio values are corresponding, please write them in order.
Example
Broadeners Default
Ratios 1.0
Broadeners Air Self
Ratios 0.7 0.3
Broadeners H2 He
Ratios 0.9 0.1
Line profiles¶
Choose line profile from:
Doppler, Gaussian, Lorentzian, SciPyVoigt, SciPyWofzVoigt, HumlicekVoigt, ThompsonPseudoVoigt, KielkopfPseudoVoigt, OliveroPseudoVoigt, LiuLinPseudoVoigt, RoccoPseudoVoigt, BinnedDoppler, BinnedGaussian, BinnedLorentzian, BinnedVoigt. Please note: no blank when you write the line profile name.
DopplerHWHM(Y/N):
Doppler profile uses Doppler HWHM calculated by program, if you want to use Doppler profile, set
NafterDopplerHWHM(Y/N).If you use Gaussian profile, please set
YorUafterDopplerHWHM(Y/N), your Doppler HWHM value will be used for calculating Gaussian profile.If you prefer to provide a Doppler HWHM as a constant, write
Yhere and give the HWHM value.If you want to use your own Doppler HWHM list, please add them to the transitions file(s) as a new column on the right. Write
Uhere and give this new column index (count start from 0).If you need the program to calculate tempertaure-dependent Doppler HWHM, please write
Nhere.
LorentzianHWHM(Y/N):
If you prefer to provide a Lorentzian HWHM as a constant, write
Yhere and give the HWHM value.If you want to use your own Lorentzian HWHM list, please add them to the transitions file(s) as a new column on the right. Write
Uhere and give this new column index (count start from 0).If you need the program to calculate tempertaure and pressure-dependent Loretzian HWHM, please write
Nhere.
Example
Profile SciPyVoigt
DopplerHWHM(Y/N) Y 0.1 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) Y 0.5 # Set Lorentzian HWHM as a constant
Profile Doppler
DopplerHWHM(Y/N) N 0.3 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) N 0.5 # Set Lorentzian HWHM as a constant
Profile Gaussian
DopplerHWHM(Y/N) U 4 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) N 0.5 # Set Lorentzian HWHM as a constant
Profile SciPyVoigt
DopplerHWHM(Y/N) U 4 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) U 5 # Set Lorentzian HWHM as a constant
Plot cross sections¶
PlotCrossSection(Y/N): If you want a figure of corss sections, please set Y, otherwise, please write N.
PlotCrossSectionMethod: Choose to plot y-axis in linear lin or logarithm log.
PlotCrossSectionWnWl: Choose to plot x-axis with wavenumber wn in unit of cm-1 (cm⁻¹), or wavelength wl in unit of um (μm) or nm.
Y-axisLimitXsec: If you want set the lower limit of y-axis for plotting, please write after Y-axisLimitXsec, otherwise, the default lower limit y-axis is 1e-30 (\(=10^{-30}\)) cm²/molecule.
Example
Save wavenumber in unit of cm⁻¹ in the file and plot logarithm cross sections in unit of cm²/molecule and wavenumber in unit of cm⁻¹.
# Calculate stick spectra or cross sections #
LTE/Non-LTE LTE # 'LTE' or 'Non-LTE'
Temperatures 2000,5000 # Temperatures in unit of K
WnWlUnit wn cm-1 # Wavenumber (wn in unit of cm-1) or wavelength (wl in unit of um or nm)
Range 0 30000 # Same unit as WnWlUnit
Absorption/Emission Absorption # 'Absorption' or 'Emission'
UncFilter(Y/N) Y 0.01 # If Y, default value 0.01 cm-1
Threshold(Y/N) Y 1e-30 # If Y, default value 1e-30 cm/molecule
QNsFilter(Y/N) N v[0,;1,;2,;3,;4,;,0;,1;,2;,3;,4]
# Calculate cross sections #
Pressures 0.1,1,10 # Pressures in unit bar
Npoints/BinSize BinSize 0.1 # Same unit as WnWlUnit
Broadeners Default
Ratios 1.0
Profile SciPyVoigt
PredissocXsec(Y/N) N
Cutoff(Y/N) Y 25 # If Y, default value 25 cm-1
DopplerHWHM(Y/N) N 0.1 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) N 0.5 # Set Lorentzian HWHM as a constant
PlotCrossSection(Y/N) Y
PlotCrossSectionMethod log # Plot in linear (lin) or logarithm (log)
PlotCrossSectionWnWl wn cm-1 # Wavenumber (wn in unit cm-1) or wavelength (wl in unit[nm or um])
Y-axisLimitXsec 1e-25 # Default value is 1e-30 cm2/molecule
Save wavenumber in unit of cm⁻¹ in the file and plot logarithm cross sections in unit of cm²/molecule and wavelength in unit of nm.
# Calculate stick spectra or cross sections #
LTE/Non-LTE LTE # 'LTE' or 'Non-LTE'
Temperatures 1000:3000:1000 # Temperatures in unit of K
WnWlUnit wn cm-1 # Wavenumber (wn in unit of cm-1) or wavelength (wl in unit of um or nm)
Range 0 30000 # Same unit as WnWlUnit
Absorption/Emission Absorption # 'Absorption' or 'Emission'
UncFilter(Y/N) Y 0.01 # If Y, default value 0.01 cm-1
Threshold(Y/N) Y 1e-30 # If Y, default value 1e-30 cm/molecule
QNsFilter(Y/N) N v[0,;1,;2,;3,;4,;,0;,1;,2;,3;,4]
# Calculate cross sections #
Pressures 1 # Pressures in unit bar
Npoints/BinSize Npoint 30001 # Same unit as WnWlUnit
Broadeners Default
Ratios 1.0
Profile SciPyVoigt
PredissocXsec(Y/N) N
Cutoff(Y/N) Y 25 # If Y, default value 25 cm-1
DopplerHWHM(Y/N) N 0.1 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) N 0.5 # Set Lorentzian HWHM as a constant
PlotCrossSection(Y/N) Y
PlotCrossSectionMethod log # Plot in linear (lin) or logarithm (log)
PlotCrossSectionWnWl wl nm # Wavenumber (wn in unit cm-1) or wavelength (wl in unit[nm or um])
Y-axisLimitXsec 1e-25 # Default value is 1e-30 cm2/molecule
Save wavelength in unit of μm in the file and plot linear cross sections in unit of cm²/molecule and wavelength in unit of nm.
# Calculate stick spectra or cross sections #
LTE/Non-LTE LTE # 'LTE' or 'Non-LTE'
Temperatures 2000 # Temperatures in unit of K
WnWlUnit wl um # Wavenumber (wn in unit of cm-1) or wavelength (wl in unit of um or nm)
Range 6 10 # Same unit as WnWlUnit
Absorption/Emission Absorption # 'Absorption' or 'Emission'
UncFilter(Y/N) Y 0.01 # If Y, default value 0.01 cm-1
Threshold(Y/N) Y 1e-30 # If Y, default value 1e-30 cm/molecule
QNsFilter(Y/N) N
# Calculate cross sections #
Pressures 1 # Pressure in unit bar
Npoints/BinSize BinSize 0.001 # Same unit as WnWlUnit
Broadeners Default
Ratios 1.0
Profile SciPyVoigt
PredissocXsec(Y/N) N
Cutoff(Y/N) Y 25 # If Y, default value 25 cm-1
DopplerHWHM(Y/N) N 0.1 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) N 0.5 # Set Lorentzian HWHM as a constant
PlotCrossSection(Y/N) Y
PlotCrossSectionMethod lin # Plot in linear (lin) or logarithm (log)
PlotCrossSectionWnWl wl nm # Wavenumber (wn in unit cm-1) or wavelength (wl in unit[nm or um])
Y-axisLimitXsec 1e-25 # Default value is 1e-30 cm2/molecule
Example
# Data source #
Database ExoMol
Molecule H2O
Isotopologue 1H2-16O
Dataset POKAZATEL
SpeciesID 11
# File path #
ReadPath /mnt/data/exomol/exomol3_data/
SavePath /home/jingxin/data/pyexocross/
LogFilePath /home/jingxin/data/pyexocross/log/H2O_ExoMol_xsec.log
# Functions #
Conversion 0
PartitionFunctions 0
SpecificHeats 0
CoolingFunctions 0
Lifetimes 0
OscillatorStrengths 0
StickSpectra 0
CrossSections 1
# Cores and chunks #
NCPUtrans 32
NCPUfiles 32
ChunkSize 1000000
RunMode CPU # CPU(default) or GPU
GPUBackend AUTO # AUTO(default), CUDA, PyTorch-CUDA, CuPy-CUDA, or MPS (used only when RunMode=GPU)
GPUBatchLines 8192 # GPU line-batch size (only used when RunMode=GPU)
GPUBatchGrid 256 # GPU grid-batch size (only used when RunMode=GPU)
# Quantum numbers for conversion, stick spectra and cross sections #
QNslabel Ka Kc v1 v2 v3 Gamma_rve
QNsformat %2d %2d %2d %2d %2d %2s
# Calculate stick spectra or cross sections #
LTE/Non-LTE LTE # 'LTE' or 'Non-LTE'
Temperatures 300 # Temperatures in unit of K
WnWlUnit wn cm-1 # Wavenumber (wn in unit of cm-1) or wavelength (wl in unit of um or nm)
Range 0 41200 # Same unit as WnWlUnit
Absorption/Emission Absorption # 'Absorption' or 'Emission'
UncFilter(Y/N) Y 0.01 # If Y, default value 0.01 cm-1
Threshold(Y/N) Y 1e-30 # If Y, default value 1e-30 cm/molecule
QNsFilter(Y/N) N Ka[] Kc[] v1[] v2[1,;,0] v3[] Gamma_rve[]
# Calculate cross sections #
Pressures 0.1,1 # Pressures in unit bar
Npoints/BinSize BinSize 0.1 # Same unit as WnWlUnit
Broadeners H2 He
Ratios 0.75 0.15
Profile SciPyVoigt
PredissocXsec(Y/N) N
Cutoff(Y/N) Y 25 # If Y, default value 25 cm-1
DopplerHWHM(Y/N) N 0.1 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) N 0.5 # Set Lorentzian HWHM as a constant
PlotCrossSection(Y/N) N
PlotCrossSectionMethod log # Plot in linear (lin) or logarithm (log)
PlotCrossSectionWnWl wn cm-1 # Wavenumber (wn in unit cm-1) or wavelength (wl in unit[nm or um])
Y-axisLimitXsec 1e-30 # Default value is 1e-30 cm2/molecule
# Data source #
Database ExoMol
Molecule NO
Isotopologue 14N-16O
Dataset XABC
SpeciesID 81
# File path #
ReadPath /mnt/data/exomol/exomol3_data/
SavePath /home/jingxin/data/pyexocross/
LogFilePath /home/jingxin/data/pyexocross/log/NO_HITRAN_xsec_T2000_wl150-1000.log
# Functions #
Conversion 0
PartitionFunctions 0
SpecificHeats 0
CoolingFunctions 0
Lifetimes 0
OscillatorStrengths 0
StickSpectra 0
CrossSections 1
# Cores and chunks #
NCPUtrans 8
NCPUfiles 1
ChunkSize 1000000
RunMode CPU # CPU(default) or GPU
GPUBackend AUTO # AUTO(default), CUDA, PyTorch-CUDA, CuPy-CUDA, or MPS (used only when RunMode=GPU)
GPUBatchLines 8192 # GPU line-batch size (only used when RunMode=GPU)
GPUBatchGrid 256 # GPU grid-batch size (only used when RunMode=GPU)
# Quantum numbers for conversion, stick spectra and cross sections #
QNslabel +/- e/f ElecState v Lambda Sigma Omega
QNsformat %1s %1s %12s %3d %3d %5.1f %5.1f
# Calculate stick spectra or cross sections #
LTE/Non-LTE LTE # 'LTE' or 'Non-LTE'
Temperatures 300,2000,5000 # Temperatures in unit of K
WnWlUnit wl nm # Wavenumber (wn in unit of cm-1) or wavelength (wl in unit of um or nm)
Range 150 1000 # Same unit as WnWlUnit
Absorption/Emission Emission # 'Absorption' or 'Emission'
UncFilter(Y/N) Y 0.01 # If Y, default value 0.01 cm-1
Threshold(Y/N) Y 1e-30 # If Y, default value 1e-30 cm/molecule
QNsFilter(Y/N) N State[] v[] Lambda[] Sigma[] Omega[]
# Calculate cross sections #
Pressures 1,10 # Pressures in unit bar
Npoints/BinSize BinSize 0.1 # Same unit as WnWlUnit
Broadeners air
Ratios 1.0
Profile Gaussian
PredissocXsec(Y/N) N
Cutoff(Y/N) Y 100 # If Y, default value 25 cm-1
DopplerHWHM(Y/N) Y 3 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) N 0.5 # Set Lorentzian HWHM as a constant
PlotCrossSection(Y/N) Y
PlotCrossSectionMethod lin # Plot in linear (lin) or logarithm (log)
PlotCrossSectionWnWl wl nm # Wavenumber (wn in unit cm-1) or wavelength (wl in unit[nm or um])
Y-axisLimitXsec 1e-30 # Default value is 1e-30 cm2/molecule
# Data source #
Database HITRAN
Molecule NO
Isotopologue 14N-16O
Dataset NO-HITRAN
SpeciesID 81
# File path #
ReadPath /home/jingxin/data/HITRAN/
SavePath /home/jingxin/data/pyexocross/
LogFilePath /home/jingxin/data/pyexocross/log/NO_HITRAN_xsec_T1000_wn1000-5000.log
# Functions #
Conversion 0
PartitionFunctions 0
SpecificHeats 0
CoolingFunctions 0
Lifetimes 0
OscillatorStrengths 0
StickSpectra 0
CrossSections 1
# Cores and chunks #
NCPUtrans 32
NCPUfiles 1
ChunkSize 1000000
RunMode CPU # CPU(default) or GPU
GPUBackend AUTO # AUTO(default), CUDA, PyTorch-CUDA, CuPy-CUDA, or MPS (used only when RunMode=GPU)
GPUBatchLines 8192 # GPU line-batch size (only used when RunMode=GPU)
GPUBatchGrid 256 # GPU grid-batch size (only used when RunMode=GPU)
# Quantum numbers for conversion, stick spectra and cross sections #
QNslabel J X Omega v1 Sym F
QNsformat %5.1f %2s %3s %2d %1s %5s
# Calculate stick spectra or cross sections #
LTE/Non-LTE LTE # 'LTE' or 'Non-LTE'
Temperatures 1000:4000:1000 # Temperatures in unit of K
WnWlUnit wn cm-1 # Wavenumber (wn in unit of cm-1) or wavelength (wl in unit of um or nm)
Range 1000 5000 # Same unit as WnWlUnit
Absorption/Emission Emission # 'Absorption' or 'Emission'
UncFilter(Y/N) No 0.01 # If Y, default value 0.01 cm-1
Threshold(Y/N) NO 1e-30 # If Y, default value 1e-30 cm/molecule
QNsFilter(Y/N) N X[] Omega[] v1[1,0;2,]
# Calculate cross sections #
Pressures 0.1 # Pressures in unit bar
Npoints/BinSize BinSize 0.1 # Same unit as WnWlUnit
Broadeners Air Self
Ratios 0.7 0.3
Profile SciPyVoigt
PredissocXsec(Y/N) no
Cutoff(Y/N) N 100 # If Y, default value 25 cm-1
DopplerHWHM(Y/N) n 0.1 # Set Doppler HWHM as a constant
LorentzianHWHM(Y/N) n 0.5 # Set Lorentzian HWHM as a constant
PlotCrossSection(Y/N) NO
PlotCrossSectionMethod log # Plot in linear (lin) or logarithm (log)
PlotCrossSectionWnWl wn cm-1 # Wavenumber (wn in unit cm-1) or wavelength (wl in unit[nm or um])
Y-axisLimitXsec 1e-30 # Default value is 1e-30 cm2/molecule