Multi Molecule Handler
ExoJAX
provides building blocks so that calculations can be performed on multiple molecules and in segmented wavelength ranges.
However, we have begun to offer pilot versions of handlers to facilitate handling of multiple molecules and wavelength splitting.
Multimol
class handles mdb
and opa
for multiple molecules and wavelength segments, by providing methods called multimdb
and multiopa
.
from exojax.spec.multimol import MultiMol
mul = MultiMol(molmulti=[["H2O","CH4"],["H2O","CH4"]],
dbmulti=[["ExoMol","HITEMP"],["ExoMol","HITEMP"]])
multimdb = mul.multimdb(nu_grid_list, crit=1.e-30, Ttyp=1000.)
multiopa = mul.multiopa_premodit(multimdb, nu_grid_list, auto_trange=[500.,1500.], dit_grid_resolution=0.2)
where nu_grid_list
is a list of the wavenumber grid.
The cross section can be computed using multiopa[order][molecule].xsmatrix
as below.
for k in range(len(wavelength_grid_segments)):
for i in range(len(mul.masked_molmulti[k])):
xsm = multiopa[k][i].xsmatrix(Tarr, Parr)
We continue to develop this user-friendly multi molecule/segements handler until the release 2.0. Any feedback is welcome!