Cross Section Calculation with Cthulhu

This quick start guide demonstrates how Cthulhu offers you the power to download a line list, calculate a high-resolution molecular cross section for a grid of temperatures and pressures, and package the output into a HDF5 opacity database. All on your laptop!

This quick start guide assumes at least a passing familiarity with cross sections (or that the world is ending and you need a cross section ASAP). For complete beginners, we recommend starting with the Cthulhu tutorials.

Here we’ll use AlO as an example, since this is a small line list (~ 5 million transitions) that can easily run on a laptop. We recommend running Cthulhu on a laptop for line lists that are less than about ~100 million transitions. For larger line lists, or if you need a very large grid of pressure-temperature calculations, we recommend sacrificing your cluster to Cthulhu (as shown in our cluster tutorial).

Download ExoMol Line List for AlO

[1]:
from Cthulhu.core import summon

species = 'AlO'          # Chemical species name

database = 'ExoMol'      # Line list Database
linelist = 'ATP'         # Specific name of the line list for AlO

broadening = 'H2-He'     # Background gas broadening

nu_min = 200             # Minimum wavenumber (1/wavelength) in units of cm^-1
nu_max = 35000           # Maximum wavenumber (1/wavelength) in units of cm^-1

input_directory = './input/'   # Where the line list will be downloaded

Download the AlO line list

[2]:
summon(database=database, species = species, linelist = linelist)     # Embrace the Old One

 ***** Downloading requested data from ExoMol. You have chosen the following parameters: *****

Molecule: AlO
Isotopologue: 27Al-16O
Line List: ATP

Starting by downloading the .broad, .pf, and .states files...
Fetched the broadening coefficients, partition functions, and energy levels.
Now downloading the ATP line list...

Downloading .trans file 1 of 1
100%|██████████| 32.6M/32.6M [00:04<00:00, 7.52MiB/s]

Converting this .trans file to HDF to save storage space...
This file took 13.1 seconds to reformat to HDF.

Line list ready.

Calculate AlO Cross Section

First, let’s calculate the cross section of AlO for a single pressure-temperature point to get a handle on the runtime. We’ll choose 10 bar and 1000 K.

[3]:
import numpy as np
from Cthulhu.core import compute_cross_section

P = [1.0]         # Pressure (bar)
T = [1000.0]      # Temperature (K)

# There are many more optional arguments to play with!
compute_cross_section(database = database, species = species, linelist = linelist,
                      pressure = P, temperature = T, S_cut = 0.0,                    # No intensity cut-off (S_cut)
                      input_dir = input_directory,
                      nu_out_min = nu_min, nu_out_max = nu_max, dnu_out = 0.01,      # Wavenumber spacing of 0.01 cm^-1  (R ~ 10^6)
                      broad_type = broadening,
                      verbose = True, N_cores = 4)                                   # Grant the mighty Cthulhu 4 cores
Beginning cross-section computations...
Loading ExoMol format
Loading partition function
Pre-computing Voigt profiles...
Voigt profiles computed in 0.44821538099859026 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 1000.0 K
Computing transitions from ATP.h5 | 0.0% complete
Completed 4943804 transitions in 18.843246871998417 s
Calculation complete!
Completed 4943804 transitions in 18.844000367998888 s

Total runtime: 23.395633052999983 s

We see that AlO only takes about 20 s for a single (P, T) point, so we can easily compute a cross section for a grid of pressures and temperatures on a laptop.

Let’s plot the cross section.

[4]:
from Cthulhu.misc import read_cross_section_file, cross_section_collection
from Cthulhu.plot import plot_cross_section

'''Read in the cross section we just computed'''

# Read in cross section
nu, sigma = read_cross_section_file(species = species, database = database, ionization_state = 1,
                                    filename = species + '_T' + str(T[0]) +
                                    'K_log_P' + str(round(np.log10(P[0]), 1)) + '_' + broadening + '_sigma.txt')

cross_sections = []

# Add first cross section to collection
cross_sections = cross_section_collection(new_x = nu, new_y = sigma, collection = cross_sections)

plot_cross_section(collection = cross_sections, labels = [species + ' (1000 K, 1 bar)'],
                    filename = species, y_min = 1e-30, x_max = 10, save_fig = False)
../../_images/content_notebooks_quick_start_10_0.png

Looking good! Now let’s iterate over pressures and temperatures to generate a full AlO cross section.

Full cross section calculation

We’ll calculate the AlO cross section for the 162 pressure-temperature points used by the POSEIDON atmospheric retrieval code.

The code below will take about an hour to run.

[5]:
from Cthulhu.core import compute_cross_section

P = [1.0e-6, 1.0e-5, 1.0e-4, 1.0e-3, 1.0e-2, 1.0e-1, 1.0e0, 1.0e1, 1.0e2]    # Pressure (bar)
log_P = [-6.0, -5.0, -4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0]                  # log10 pressure
T = [100.0, 200.0, 300.0, 400.0, 500.0, 600.0, 700.0, 800.0,                 # Temperature (K)
     900.0, 1000.0, 1200.0, 1400.0, 1600.0, 1800.0, 2000.0,
     2500.0, 3000.0, 3500.0]

compute_cross_section(database = database, species = species, linelist = linelist,
                      pressure = P, temperature = T, S_cut = 0.0,
                      input_dir = input_directory,
                      nu_out_min = nu_min, nu_out_max = nu_max, dnu_out = 0.01,
                      broad_type = broadening,
                      verbose = False, N_cores = 4)
Beginning cross-section computations...
Loading ExoMol format
Loading partition function
Pre-computing Voigt profiles...
Voigt profiles computed in 0.10546971799885796 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 100.0 K   [1 of 162]
Calculation complete!
Completed 4943804 transitions in 4.62069116100065 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.060283888000412844 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 200.0 K   [2 of 162]
Calculation complete!
Completed 4943804 transitions in 6.215454395000052 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05836472700138984 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 300.0 K   [3 of 162]
Calculation complete!
Completed 4943804 transitions in 7.4238048380011605 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06429532099900825 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 400.0 K   [4 of 162]
Calculation complete!
Completed 4943804 transitions in 8.721320273001766 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06346779900013644 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 500.0 K   [5 of 162]
Calculation complete!
Completed 4943804 transitions in 9.788798118999694 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.058995084998969105 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 600.0 K   [6 of 162]
Calculation complete!
Completed 4943804 transitions in 10.81321288899926 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06205776299975696 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 700.0 K   [7 of 162]
Calculation complete!
Completed 4943804 transitions in 11.53036968500055 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06566759800080035 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 800.0 K   [8 of 162]
Calculation complete!
Completed 4943804 transitions in 12.17591482699936 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.0640154810007516 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 900.0 K   [9 of 162]
Calculation complete!
Completed 4943804 transitions in 12.816160881000542 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.062270536000141874 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 1000.0 K   [10 of 162]
Calculation complete!
Completed 4943804 transitions in 13.268536744000812 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.062362770000618184 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 1200.0 K   [11 of 162]
Calculation complete!
Completed 4943804 transitions in 14.538872426001035 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06938989899936132 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 1400.0 K   [12 of 162]
Calculation complete!
Completed 4943804 transitions in 15.655640807999589 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.062458004998916294 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 1600.0 K   [13 of 162]
Calculation complete!
Completed 4943804 transitions in 15.467001275999792 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.061746532999677584 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 1800.0 K   [14 of 162]
Calculation complete!
Completed 4943804 transitions in 15.800431188999937 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06463787400025467 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 2000.0 K   [15 of 162]
Calculation complete!
Completed 4943804 transitions in 15.909217300000819 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.07239191699954972 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 2500.0 K   [16 of 162]
Calculation complete!
Completed 4943804 transitions in 16.497568828999647 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05805577799947059 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 3000.0 K   [17 of 162]
Calculation complete!
Completed 4943804 transitions in 16.084274851000373 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05812076300026092 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-06 bar, T = 3500.0 K   [18 of 162]
Calculation complete!
Completed 4943804 transitions in 16.694384349999382 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05757137699947634 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 100.0 K   [19 of 162]
Calculation complete!
Completed 4943804 transitions in 4.779953210998428 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06403553299969644 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 200.0 K   [20 of 162]
Calculation complete!
Completed 4943804 transitions in 6.901809734999915 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.057692918000611826 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 300.0 K   [21 of 162]
Calculation complete!
Completed 4943804 transitions in 8.35688584899981 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05764136300058453 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 400.0 K   [22 of 162]
Calculation complete!
Completed 4943804 transitions in 9.464681937999558 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05763719499918807 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 500.0 K   [23 of 162]
Calculation complete!
Completed 4943804 transitions in 10.394521116999385 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06389544200101227 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 600.0 K   [24 of 162]
Calculation complete!
Completed 4943804 transitions in 11.346709940999062 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05820776999826194 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 700.0 K   [25 of 162]
Calculation complete!
Completed 4943804 transitions in 11.82462625900007 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06302041199887753 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 800.0 K   [26 of 162]
Calculation complete!
Completed 4943804 transitions in 11.92776576399956 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.057347294999999576 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 900.0 K   [27 of 162]
Calculation complete!
Completed 4943804 transitions in 12.562901769999371 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.07471023899961438 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 1000.0 K   [28 of 162]
Calculation complete!
Completed 4943804 transitions in 13.718352104000587 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.0629513420008152 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 1200.0 K   [29 of 162]
Calculation complete!
Completed 4943804 transitions in 14.471926796999469 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06066127699887147 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 1400.0 K   [30 of 162]
Calculation complete!
Completed 4943804 transitions in 15.11918214400066 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.07139782500053116 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 1600.0 K   [31 of 162]
Calculation complete!
Completed 4943804 transitions in 17.41090236799937 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06924844200148073 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 1800.0 K   [32 of 162]
Calculation complete!
Completed 4943804 transitions in 16.52717829699941 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06235276599909412 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 2000.0 K   [33 of 162]
Calculation complete!
Completed 4943804 transitions in 16.246374966000076 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06194135599980655 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 2500.0 K   [34 of 162]
Calculation complete!
Completed 4943804 transitions in 16.08461858299961 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.061349442999926396 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 3000.0 K   [35 of 162]
Calculation complete!
Completed 4943804 transitions in 16.200703463000536 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06810821999897598 s
Pre-computation steps complete
Generating cross section for AlO at P = 1e-05 bar, T = 3500.0 K   [36 of 162]
Calculation complete!
Completed 4943804 transitions in 16.894236310999986 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05858913500014751 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 100.0 K   [37 of 162]
Calculation complete!
Completed 4943804 transitions in 4.692225535000034 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.058775281000635005 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 200.0 K   [38 of 162]
Calculation complete!
Completed 4943804 transitions in 6.40818345200023 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.058661353001298266 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 300.0 K   [39 of 162]
Calculation complete!
Completed 4943804 transitions in 7.978126283000165 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06563105100030953 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 400.0 K   [40 of 162]
Calculation complete!
Completed 4943804 transitions in 8.658458298999903 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.059300385999449645 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 500.0 K   [41 of 162]
Calculation complete!
Completed 4943804 transitions in 9.559867813999517 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06171466500018141 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 600.0 K   [42 of 162]
Calculation complete!
Completed 4943804 transitions in 10.558665742999437 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.07727862700085097 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 700.0 K   [43 of 162]
Calculation complete!
Completed 4943804 transitions in 11.038289685000564 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06907779599896458 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 800.0 K   [44 of 162]
Calculation complete!
Completed 4943804 transitions in 11.853952135999862 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06064921100005449 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 900.0 K   [45 of 162]
Calculation complete!
Completed 4943804 transitions in 12.525188653999066 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05748046799999429 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 1000.0 K   [46 of 162]
Calculation complete!
Completed 4943804 transitions in 12.944178352998279 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.058865061999313184 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 1200.0 K   [47 of 162]
Calculation complete!
Completed 4943804 transitions in 14.1271740709999 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06721223699969414 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 1400.0 K   [48 of 162]
Calculation complete!
Completed 4943804 transitions in 14.975538669999878 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.0610431580007571 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 1600.0 K   [49 of 162]
Calculation complete!
Completed 4943804 transitions in 15.557463359000394 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.058680804999312386 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 1800.0 K   [50 of 162]
Calculation complete!
Completed 4943804 transitions in 15.707025387999238 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05950155100072152 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 2000.0 K   [51 of 162]
Calculation complete!
Completed 4943804 transitions in 15.773835764999603 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.0662577209986921 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 2500.0 K   [52 of 162]
Calculation complete!
Completed 4943804 transitions in 15.933989568999095 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05770615499932319 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 3000.0 K   [53 of 162]
Calculation complete!
Completed 4943804 transitions in 16.350456430000122 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.057365562999621034 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.0001 bar, T = 3500.0 K   [54 of 162]
Calculation complete!
Completed 4943804 transitions in 16.504494570999668 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05178634600088117 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 100.0 K   [55 of 162]
Calculation complete!
Completed 4943804 transitions in 4.4603823390007165 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06003466199945251 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 200.0 K   [56 of 162]
Calculation complete!
Completed 4943804 transitions in 6.116246013998534 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05498431900014111 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 300.0 K   [57 of 162]
Calculation complete!
Completed 4943804 transitions in 7.438589974999559 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.053402215000460274 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 400.0 K   [58 of 162]
Calculation complete!
Completed 4943804 transitions in 8.471458301999519 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05748031999974046 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 500.0 K   [59 of 162]
Calculation complete!
Completed 4943804 transitions in 9.32372347799901 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.060748210999008734 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 600.0 K   [60 of 162]
Calculation complete!
Completed 4943804 transitions in 10.193002051999429 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.055882820999613614 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 700.0 K   [61 of 162]
Calculation complete!
Completed 4943804 transitions in 11.684606929000438 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06034544000067399 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 800.0 K   [62 of 162]
Calculation complete!
Completed 4943804 transitions in 12.08515334599906 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05447881300096924 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 900.0 K   [63 of 162]
Calculation complete!
Completed 4943804 transitions in 12.766471876999276 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06337123199955386 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 1000.0 K   [64 of 162]
Calculation complete!
Completed 4943804 transitions in 13.43204164800045 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.056814998999470845 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 1200.0 K   [65 of 162]
Calculation complete!
Completed 4943804 transitions in 14.506861773999844 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05571075700026995 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 1400.0 K   [66 of 162]
Calculation complete!
Completed 4943804 transitions in 15.421213055000408 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05617146399890771 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 1600.0 K   [67 of 162]
Calculation complete!
Completed 4943804 transitions in 15.913143196999954 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.062863376999303 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 1800.0 K   [68 of 162]
Calculation complete!
Completed 4943804 transitions in 16.0580023170005 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06123499999921478 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 2000.0 K   [69 of 162]
Calculation complete!
Completed 4943804 transitions in 15.78680959600024 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06009700899994641 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 2500.0 K   [70 of 162]
Calculation complete!
Completed 4943804 transitions in 16.0885807930008 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06077498699960415 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 3000.0 K   [71 of 162]
Calculation complete!
Completed 4943804 transitions in 15.975885116999052 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06711022200033767 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.001 bar, T = 3500.0 K   [72 of 162]
Calculation complete!
Completed 4943804 transitions in 15.866799971001456 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.0489488330003951 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 100.0 K   [73 of 162]
Calculation complete!
Completed 4943804 transitions in 4.757207597000161 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.049794849001045804 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 200.0 K   [74 of 162]
Calculation complete!
Completed 4943804 transitions in 6.303391059000205 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05087563599954592 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 300.0 K   [75 of 162]
Calculation complete!
Completed 4943804 transitions in 7.536450887999308 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05787738299841294 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 400.0 K   [76 of 162]
Calculation complete!
Completed 4943804 transitions in 8.723042607000025 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05155102699973213 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 500.0 K   [77 of 162]
Calculation complete!
Completed 4943804 transitions in 9.451624115999948 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05263053199996648 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 600.0 K   [78 of 162]
Calculation complete!
Completed 4943804 transitions in 10.386030640998797 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05303990500033251 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 700.0 K   [79 of 162]
Calculation complete!
Completed 4943804 transitions in 10.96656744000029 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05997106100039673 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 800.0 K   [80 of 162]
Calculation complete!
Completed 4943804 transitions in 11.749899973001448 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05360926800130983 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 900.0 K   [81 of 162]
Calculation complete!
Completed 4943804 transitions in 12.437952697999208 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05333066699859046 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 1000.0 K   [82 of 162]
Calculation complete!
Completed 4943804 transitions in 13.06634925599974 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.053262565001205076 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 1200.0 K   [83 of 162]
Calculation complete!
Completed 4943804 transitions in 14.780734766000023 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06133834800129989 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 1400.0 K   [84 of 162]
Calculation complete!
Completed 4943804 transitions in 15.521324280000044 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05338456000026781 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 1600.0 K   [85 of 162]
Calculation complete!
Completed 4943804 transitions in 15.919360277999658 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.059807670000736834 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 1800.0 K   [86 of 162]
Calculation complete!
Completed 4943804 transitions in 16.13489109299917 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.051426089001324726 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 2000.0 K   [87 of 162]
Calculation complete!
Completed 4943804 transitions in 16.208700795999903 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06235055799879774 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 2500.0 K   [88 of 162]
Calculation complete!
Completed 4943804 transitions in 17.384556335000525 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05543997099994158 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 3000.0 K   [89 of 162]
Calculation complete!
Completed 4943804 transitions in 16.084435004000625 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05622042200047872 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.01 bar, T = 3500.0 K   [90 of 162]
Calculation complete!
Completed 4943804 transitions in 16.21406191599999 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04582002399911289 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 100.0 K   [91 of 162]
Calculation complete!
Completed 4943804 transitions in 9.819616508999388 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05275436800002353 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 200.0 K   [92 of 162]
Calculation complete!
Completed 4943804 transitions in 9.84709230199951 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04298924800059467 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 300.0 K   [93 of 162]
Calculation complete!
Completed 4943804 transitions in 10.222934935000012 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04455935300029523 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 400.0 K   [94 of 162]
Calculation complete!
Completed 4943804 transitions in 10.73287095699925 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.045357214999967255 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 500.0 K   [95 of 162]
Calculation complete!
Completed 4943804 transitions in 11.413441737999165 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05365506199996162 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 600.0 K   [96 of 162]
Calculation complete!
Completed 4943804 transitions in 12.265885136001089 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04756460600037826 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 700.0 K   [97 of 162]
Calculation complete!
Completed 4943804 transitions in 13.07073470999967 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04878524100058712 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 800.0 K   [98 of 162]
Calculation complete!
Completed 4943804 transitions in 14.000911336999707 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.045043350000923965 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 900.0 K   [99 of 162]
Calculation complete!
Completed 4943804 transitions in 14.021250534000501 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05278487400028098 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 1000.0 K   [100 of 162]
Calculation complete!
Completed 4943804 transitions in 15.047814039999139 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04552144900117128 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 1200.0 K   [101 of 162]
Calculation complete!
Completed 4943804 transitions in 15.749981185999786 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04588643200077058 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 1400.0 K   [102 of 162]
Calculation complete!
Completed 4943804 transitions in 15.581952427999568 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04605998199986061 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 1600.0 K   [103 of 162]
Calculation complete!
Completed 4943804 transitions in 15.776169975000812 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.053022477999547846 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 1800.0 K   [104 of 162]
Calculation complete!
Completed 4943804 transitions in 16.840266415998485 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04713797399926989 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 2000.0 K   [105 of 162]
Calculation complete!
Completed 4943804 transitions in 16.73868341999878 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04755043400109571 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 2500.0 K   [106 of 162]
Calculation complete!
Completed 4943804 transitions in 16.691129922000982 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04877234800005681 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 3000.0 K   [107 of 162]
Calculation complete!
Completed 4943804 transitions in 16.10913158400035 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05502600399995572 s
Pre-computation steps complete
Generating cross section for AlO at P = 0.1 bar, T = 3500.0 K   [108 of 162]
Calculation complete!
Completed 4943804 transitions in 17.152950853998846 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04006979499899899 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 100.0 K   [109 of 162]
Calculation complete!
Completed 4943804 transitions in 16.339697148001505 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.0409116399987397 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 200.0 K   [110 of 162]
Calculation complete!
Completed 4943804 transitions in 16.417263453999112 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04089017300066189 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 300.0 K   [111 of 162]
Calculation complete!
Completed 4943804 transitions in 17.40331688200058 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04825721000088379 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 400.0 K   [112 of 162]
Calculation complete!
Completed 4943804 transitions in 16.865802681000787 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04130430599980173 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 500.0 K   [113 of 162]
Calculation complete!
Completed 4943804 transitions in 16.90055703500002 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04256288999931712 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 600.0 K   [114 of 162]
Calculation complete!
Completed 4943804 transitions in 17.42568979399948 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.042196774998956244 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 700.0 K   [115 of 162]
Calculation complete!
Completed 4943804 transitions in 18.28409458999886 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05299391900007322 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 800.0 K   [116 of 162]
Calculation complete!
Completed 4943804 transitions in 18.726948473999073 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04506582400063053 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 900.0 K   [117 of 162]
Calculation complete!
Completed 4943804 transitions in 17.23070753600041 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04554977099905955 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 1000.0 K   [118 of 162]
Calculation complete!
Completed 4943804 transitions in 16.629345795001427 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.046343342000909615 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 1200.0 K   [119 of 162]
Calculation complete!
Completed 4943804 transitions in 18.083987022000656 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.06603379800071707 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 1400.0 K   [120 of 162]
Calculation complete!
Completed 4943804 transitions in 17.080834921998758 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.046493599000314134 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 1600.0 K   [121 of 162]
Calculation complete!
Completed 4943804 transitions in 17.41425520499979 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.047198557998854085 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 1800.0 K   [122 of 162]
Calculation complete!
Completed 4943804 transitions in 17.08152515800066 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04296557199995732 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 2000.0 K   [123 of 162]
Calculation complete!
Completed 4943804 transitions in 17.135871464000957 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05036492600083875 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 2500.0 K   [124 of 162]
Calculation complete!
Completed 4943804 transitions in 16.65485159000127 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04365962500014575 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 3000.0 K   [125 of 162]
Calculation complete!
Completed 4943804 transitions in 17.91298482899947 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04409900400059996 s
Pre-computation steps complete
Generating cross section for AlO at P = 1.0 bar, T = 3500.0 K   [126 of 162]
Calculation complete!
Completed 4943804 transitions in 17.77858315100093 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04077887399944302 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 100.0 K   [127 of 162]
Calculation complete!
Completed 4943804 transitions in 17.37452030500026 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.048618291000821046 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 200.0 K   [128 of 162]
Calculation complete!
Completed 4943804 transitions in 16.849063138999554 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04033354499915731 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 300.0 K   [129 of 162]
Calculation complete!
Completed 4943804 transitions in 16.388469067000187 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04074289699929068 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 400.0 K   [130 of 162]
Calculation complete!
Completed 4943804 transitions in 16.411722419999933 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04157333299917809 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 500.0 K   [131 of 162]
Calculation complete!
Completed 4943804 transitions in 16.72449662500003 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04770589799954905 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 600.0 K   [132 of 162]
Calculation complete!
Completed 4943804 transitions in 16.63101890500002 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04125794899846369 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 700.0 K   [133 of 162]
Calculation complete!
Completed 4943804 transitions in 16.814465282999663 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.045934870999190025 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 800.0 K   [134 of 162]
Calculation complete!
Completed 4943804 transitions in 18.581262815001537 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04752360000020417 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 900.0 K   [135 of 162]
Calculation complete!
Completed 4943804 transitions in 18.382054599000185 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.048239425999781815 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 1000.0 K   [136 of 162]
Calculation complete!
Completed 4943804 transitions in 16.349018970000543 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04747526699975424 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 1200.0 K   [137 of 162]
Calculation complete!
Completed 4943804 transitions in 16.235597185999723 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04553105600098206 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 1400.0 K   [138 of 162]
Calculation complete!
Completed 4943804 transitions in 16.96454129599988 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.041908843000783236 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 1600.0 K   [139 of 162]
Calculation complete!
Completed 4943804 transitions in 19.683885205999104 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05313303100047051 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 1800.0 K   [140 of 162]
Calculation complete!
Completed 4943804 transitions in 18.15163825000127 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.0423780720011564 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 2000.0 K   [141 of 162]
Calculation complete!
Completed 4943804 transitions in 18.077768215000106 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.042453739000848145 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 2500.0 K   [142 of 162]
Calculation complete!
Completed 4943804 transitions in 17.904592849999972 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.042758290999699966 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 3000.0 K   [143 of 162]
Calculation complete!
Completed 4943804 transitions in 17.127518571998735 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04959292099920276 s
Pre-computation steps complete
Generating cross section for AlO at P = 10.0 bar, T = 3500.0 K   [144 of 162]
Calculation complete!
Completed 4943804 transitions in 17.600959125000372 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04967358099929697 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 100.0 K   [145 of 162]
Calculation complete!
Completed 4943804 transitions in 16.918726161999075 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.041838122000626754 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 200.0 K   [146 of 162]
Calculation complete!
Completed 4943804 transitions in 17.460939992999556 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04261297499942884 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 300.0 K   [147 of 162]
Calculation complete!
Completed 4943804 transitions in 17.819036105000123 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.049077188999945065 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 400.0 K   [148 of 162]
Calculation complete!
Completed 4943804 transitions in 17.59993993900025 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.042013463000330376 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 500.0 K   [149 of 162]
Calculation complete!
Completed 4943804 transitions in 17.08782877700105 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.051814718999594334 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 600.0 K   [150 of 162]
Calculation complete!
Completed 4943804 transitions in 19.12059810500068 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04562003399951209 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 700.0 K   [151 of 162]
Calculation complete!
Completed 4943804 transitions in 18.806204050000815 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05406782299905899 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 800.0 K   [152 of 162]
Calculation complete!
Completed 4943804 transitions in 17.972807137999553 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04572573000041302 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 900.0 K   [153 of 162]
Calculation complete!
Completed 4943804 transitions in 17.50179054200089 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04764062100002775 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 1000.0 K   [154 of 162]
Calculation complete!
Completed 4943804 transitions in 17.669534290998854 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.046220585998526076 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 1200.0 K   [155 of 162]
Calculation complete!
Completed 4943804 transitions in 18.75191448499936 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05482008500075608 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 1400.0 K   [156 of 162]
Calculation complete!
Completed 4943804 transitions in 19.430974564998905 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04721740300010424 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 1600.0 K   [157 of 162]
Calculation complete!
Completed 4943804 transitions in 19.279682471000342 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04290186599973822 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 1800.0 K   [158 of 162]
Calculation complete!
Completed 4943804 transitions in 18.39183143899936 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.0443226040006266 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 2000.0 K   [159 of 162]
Calculation complete!
Completed 4943804 transitions in 19.6246190260008 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.05405659999996715 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 2500.0 K   [160 of 162]
Calculation complete!
Completed 4943804 transitions in 19.728187832999538 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04927537699950335 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 3000.0 K   [161 of 162]
Calculation complete!
Completed 4943804 transitions in 20.598830375000034 s

Pre-computing Voigt profiles...
Voigt profiles computed in 0.04957236599875614 s
Pre-computation steps complete
Generating cross section for AlO at P = 100.0 bar, T = 3500.0 K   [162 of 162]
Calculation complete!
Completed 4943804 transitions in 20.02548005599965 s

Total runtime: 2735.3723237640006 s

Plot Computed Cross Section

We’ll now plot two temperatures and pressures to show the T and P dependences of AlO’s cross section.

[11]:
from Cthulhu.misc import read_cross_section_file, cross_section_collection
from Cthulhu.plot import plot_cross_section

# Read in cross section at 1000 K
nu, sigma = read_cross_section_file(species = species, database = database,
                                    filename = species + '_T1000.0K_log_P0.0_' + broadening + '_sigma.txt')

# Read in cross section at 2000 K
nu2, sigma2 = read_cross_section_file(species = species, database = database,
                                        filename = species + '_T2000.0K_log_P0.0_' + broadening + '_sigma.txt')

# Add both cross sections to collection in preparation for plotting

cross_sections = []

# Add first cross section to collection
cross_sections = cross_section_collection(new_x = nu, new_y = sigma, collection = cross_sections)

# Add second cross section to collection, making sure to specify the previous collection as a parameter
cross_sections = cross_section_collection(new_x = nu2, new_y = sigma2, collection = cross_sections)

plot_cross_section(collection = cross_sections, labels = [species + ' (1000 K, 1 bar)', species + ' (2000 K, 1 bar)'],
                    filename = species + '_Temperature', y_min = 1.0e-30)
../../_images/content_notebooks_quick_start_17_0.png
[7]:
# Read in cross section at 1 mbar
nu, sigma = read_cross_section_file(species = species, database = database,
                                    filename = species + '_T1000.0K_log_P-3.0_' + broadening + '_sigma.txt')

# Read in cross section at 10 bar
nu2, sigma2 = read_cross_section_file(species = species, database = database,
                                        filename = species + '_T1000.0K_log_P1.0_' + broadening + '_sigma.txt')

cross_sections = []

# Add first cross section to collection
cross_sections = cross_section_collection(new_x = nu, new_y = sigma, collection = cross_sections)

# Add second cross section to collection, making sure to specify the previous collection as a parameter
cross_sections = cross_section_collection(new_x = nu2, new_y = sigma2, collection = cross_sections)

plot_cross_section(collection = cross_sections, labels = [species + ' (1000 K, 1 mbar)', species + ' (1000 K, 10 bar)'],
                    filename = species + '_Pressure', y_min = 1.0e-30)
../../_images/content_notebooks_quick_start_18_0.png

Create an Opacity Database

By default, Cthulhu writes the cross section for each (P,T) pair as a .txt file in the ./output folder.

We’ll now combine all of the different (P,T) pairs into a single HDF5 file for storage efficiency and fast read time.

[8]:
from Cthulhu.hdf5_package import make_single_species_HDF5

P = [1.0e-6, 1.0e-5, 1.0e-4, 1.0e-3, 1.0e-2, 1.0e-1, 1.0e0, 1.0e1, 1.0e2]    # Pressure (bar)
log_P = [-6.0, -5.0, -4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0]                  # log10 pressure
T = [100.0, 200.0, 300.0, 400.0, 500.0, 600.0, 700.0, 800.0,                 # Temperature (K)
     900.0, 1000.0, 1200.0, 1400.0, 1600.0, 1800.0, 2000.0,
     2500.0, 3000.0, 3500.0]

make_single_species_HDF5(species, database = database, linelist = linelist,
                         log_P = log_P, T = T, isotope = 'default',
                         broadening = broadening, output_dir = './output/HDF5/')
Now preparing HDF5 file for: AlO
Progress: 100%|██████████| 162/162 [07:25<00:00,  2.75s/it]
AlO done

Combining different chemical species into an opacity database

Once you have made the HDF5 file for a single chemical species, you can add it into an opacity database HDF5 file which can contain the cross sections for multiple gases.

[9]:
from Cthulhu.hdf5_package import extend_HDF5_database

database_name = 'Combined_Opacity_database.hdf5'   # If this database file doesn't already exist, Cthulhu will create the file

extend_HDF5_database(database_name, species)     # Calling this function for other gases will add them to the database
AlO done

Let’s print the attributes of our new opacity database.

[10]:
import h5py

def print_attrs(name, obj):
    """Print attributes of an HDF5 object."""
    print(name)
    for key, val in obj.attrs.items():
        print(f"  {key}: {val}")

def list_all_attributes(filename):
    """List all attributes in an HDF5 file."""
    with h5py.File(filename, 'r') as f:
        f.visititems(print_attrs)

list_all_attributes('./Combined_Opacity_database.hdf5')
AlO
  Broadening: H2-He
  Linelist: ATP
  Modified: 2024-08-20
  Source: ExoMol
  Version: v1
AlO/T
  Units: K
  Variable: Temperature
AlO/log(P)
  Units: log10(P/bar)
  Variable: Pressure (log10 scale)
AlO/log(sigma)
  Units: log10(sigma/m^2)
  Variable: Cross section (log10 scale)
AlO/nu
  Units: cm^-1
  Variable: Wavenumber

Congratulations, you’ve made your first opacity database! 🎉

You can now use this HDF5 file with your favorite exoplanet or brown dwarf modeling code.