Opacities

Here we list features and constructs designed specifically to facilitate opacity produciton: computation of cross sections on a large grid of temperatures and pressures.

The method is described in: K. L. Chubb, M. Rocchetto, S. N. Yurchenko, M. Min, I. Waldmann, J. K. Barstow, P. Molliére, A. F. Al-Refaie, M. Phillips, and J. Tennyson. “The ExoMolOP Database: Cross-sections and k-tables for Molecules of Interest in High-Temperature Exoplanet Atmospheres”. A&A, 646:A21, 2020.

See the paper here.

Computing cross sections on a grid of temperatures (array job)

For opacity productions when cross sections are computed for a large set of temperatures, it can be more efficient to process cross sections for all temperatures simultaneously, similarly how the partition and cooling functions are computed. To this end, the following TEMPERATURE-ARRAY (array) block structure can be used. The saving is due to a reduced IO: the line list files need to be read only ones and used for all the temperatures.

Range 0 5900

Npoints 5901

temperature-array
 n 10
 tmin 100
 tmax 1000
end

absorption
voigt

mass 26

species
   air   gamma 0.007  n 0.65 t0 296.0
end

pressure 1

output 12C-14N__5000K_test
NCache 500
NPROCS 36

States 12C-14N__MoLLIST.states
Transitions 12C-14N__MoLLIST_10lines.trans

Here

  • N is the number of temperature steps (e.g. 10)

  • Tmin is the minima temperature in K

  • Tmax is the maximal temperature in K

All cross sections are printed out into a single output file as different columns following the frequency column, e.g.

....
5.88500000E+003   7.97795033E-036  1.72172105E-030  1.50934418E-028  1.84056995E-027  8.75964032E-027  2.47807332E-026  5.14418985E-026
5.88700000E+003   1.17182482E-035  1.75296505E-030  1.32946282E-028  1.57424065E-027  7.50135150E-027  2.14298647E-026  4.51073365E-026
5.88800000E+003   2.12842862E-035  2.98897895E-030  1.56465959E-028  1.28410634E-027  4.90675516E-027  1.23246563E-026  2.40312414E-026
5.88900000E+003   6.41335689E-035  9.31393311E-030  4.36473210E-028  2.97204673E-027  9.52430574E-027  2.08438541E-026  3.65880214E-026
....

It is also possible to use a non-uniform temperature-list by explicitly specifying the temperatures to process similar to the pressure-list as follows

Range 0 5900

Npoints 5901

temperature-list
 300
 400
 1000
end

The main (standard) output will also contain values of the total absorption for each temperature.

The partition function will be recomputed based on the .states file provided.

Warning

This feature works currently only for the basic case of Absorption and Voigt, Gauss, Doppler, with no Filters, non-LTE etc.

Two-step production of cross sections using super-lines

For very large line lists, it is more efficient (but less accurate) to (i) compute temperature-dependent super-lines and then use them to produce temperature/pressure-dependent cross-sections. This can be done using the line profile Voigt-super. Everything else is as for the normal case of the Voigt profile. This procedure can only use single line-broadening parameters. By defaults, the cross sections are computed on the same grid as the super-lines, i.e. the grid spacings are the same. Here is a basic example:

Temperature 2000
Range 2000 2100

Npoints 1001

pffile 12C-14N__KTPSYT_500.pf

absorption
voigt-super

mass 26

species
     air   gamma 0.007  n 0.65 t0 296.0 ratio 1.00 delta 0.000000
end

pressure 1

output 12C-14N__2000K_Voigt


States 12C-14N__MoLLIST.states

Transitions 12C-14N__MoLLIST.trans

It is possible to use the resolving-power grid for super-lines and then mapped it onto an equidistant map of grid of Npoints, for example

Temperature 2000
Range 2000 2100

R  100000
Npoints 10001

pffile 12C-14N__KTPSYT_500.pf

absorption
voigt-super
.....

Here, the super-lines are computed on the \(R=100000\) grid and then transformed to \(N_{\rm points} = 10001\) grid.

Warning

This feature works only currently only for the basic case of Absorption and Voigt with no Filters, non-LTE etc.

Super-lines for an array of temperatures.

The Voigt-super can be combined with the Array structure to be processed on a grid of temperatures by adding an Array section, e.g.

Temperature 2000
Range 2000 2100

Npoints 1001

pffile 12C-14N__KTPSYT_500.pf

absorption
voigt-super

array
 N  10
 tmin 100
 tmax 1000
end

mass 26

species
     air   gamma 0.007  n 0.65 t0 296.0 ratio 1.00 delta 0.000000
end

pressure 1

output 12C-14N__2000K_Voigt

States 12C-14N__MoLLIST.states
Transitions 12C-14N__MoLLIST.trans

Using the super-lines two-step procedure with the Gaussian type profiles

The super-lines intermediate step can be used with the Gaussian-type (Gaussian, Gauss0, Doppler, Doppl0 ). This is when the lines are first binned into super-lines at step 1 on a dense grid (can be both equidistant or non-equidistant) which are then dressed with the corresponding line profiles. The latter cannot be quantum number dependent, only wavenumber-dependent. This option can be activated by simply adding the keyword super to the associated profile keyword, e.g.:

Range 0 20000

Npoints 20000

temperature-list
300
400
500
end

absorption

gaussian

output 16O2__SWYT

States 16O2__SWYT.states

transitions
 16O2__SWYT__E2.trans
 16O2__SWYT__M1.trans
end

Using the Gaussian profile with the particle-in-the-box broadening

The the particle-in-the-box broadening model is used to provide a non-uniform line broadening for the photoabsorption and photodissociation calculations as part of the continuum spectra. In these calculations, the continuum is computed as quasi-continuum, discretised lines and the redisrtibuted using a large-width Gaussian. The broadening depends on the “vibrational” quantum number \(v\) (specified in the block QN) and technically cannot be used with super-lines. Instead, ExoCross maps the \(v\) dependence on the wavenumber grid by taking the intensity weighted average of the line broadening parameter at each wavenumber grid point and each temperature:

\[\gamma(\tilde\nu_k,T) = \sum_{i,f, \nu_k \pm \Delta \nu_/2} \frac{\gamma(v_{f}) I_{i,f}(T,\tilde\nu_{i,f}) }{\Delta I_{k}(T)},\]

where \(\tilde\nu_k\) is the wavenumber grid (centre of the super-line) point, \(i,f\) are the indices of the lower, upper states, respectively for all transitions \(\nu_{i,f}\) that fall into the bin \(\tilde\nu_k \pm \frac{\Delta \nu}{2}\), \(I_{i,f}\) is the associated line intensity, \(\Delta \nu}\) is the bin size, \(\Delta I_{k}(Т)\) is the total line intensity within the bin centred around :amth:`\tilde:\nu_k`, i.e. around the centre of the super-line. That is, the averaged value of the line broadening is based on the weight

\[W_{i,f} = \frac{I_{i,f}(T,\tilde\nu_{i,f})}{\Delta I_{k}(T)}.\]

The line parameters \(\gamma(\tilde\nu_k,T)\) are then used as broadenings for the corresponding super-lines centered at grid points \(\tilde\nu_k\).

Here is an example of the input file where the Gaussian line profile, particle-in-a-box broadening model and the super-lines procedure are combined:

temperature-list
200
300
end

Range 0.0 83334

npoints 333336

absorption
gaussian  super

QN
K 8
end

cutoff 500 (line wing cutoff in cm-1)

output SO_gaussian_super_box

species
  particle gamma 1.0 mass 10.6613025642667 Lbox 4.7 model box
end


States SO_SOLIS-plus.states
Transitions SO_SOLIS-plus.trans

Computing cross sections on a list of pressures

Note

This feature is currently only available for Absorption and Voigt-super, with or without Array and with no Filters, non-LTE etc.

If the goal is to compute opacities on a list of temperatures and pressures and in order to take the full advantage of the two-step procedure (super-lines+Voigt) Voigt-super, it can be processed for a list of pressures as part of a single cross sections job. To this end, a block structure pressure-list is introduced as given by

pressure-list
 1.00000000e-05
 2.15443469e-05
 4.64158883e-05
 1.00000000e-04
 2.15443469e-04
 4.64158883e-04
 1.00000000e-03
end

The result is a set of output files with cross sections written for each of the pressure values given. The filename is appended with a suffix containing the associated value of pressure, e.g. 12C-14N__2000K_Voigt__1.00000000e-05.xsec.

The pressure-list structure can be combined with the array of temperatures block, e.g.

mem 16.0 gb

Temperature 2000
Range 2010 2070

Npoints 90001

R 100000
pffile 12C-14N__KTPSYT_500.pf

absorption
voigt-super

array
n  2
tmin 1000
tmax 2000
end

pressure-list
1.00000000e-05
2.15443469e-05
4.64158883e-05
1.00000000e-04
2.15443469e-04
4.64158883e-04
1.00000000e-03
end

mass 26

species
    air   gamma 0.007  n 0.65 t0 296.0 ratio 1.00 delta 0.000000
end

pressure 1

output 12C-14N__2000K_Voigt

Ncache 500

NPROCS 36

verbose 4

States 12C-14N__MoLLIST.states
Transitions 12C-14N__MoLLIST_line.trans