exo_k.atm_2band
@author: jeremy leconte
Module Contents
- class exo_k.atm_2band.Atm_2band(k_database_stellar=None, cia_database_stellar=None, **kwargs)[source]
Bases:
exo_k.atm.Atm
Class based on
Atm
that handles radiative trasnfer calculations when we want to use different radiative data to treat stellar absorption/scattering and the atmospheric emission.Only the method that change are overloaded.
Initialization method that calls Atm_Profile().__init__() and links to Kdatabase and other radiative data.
- set_k_database_stellar(k_database=None)[source]
Change the radiative database used by the
Gas_mix
object handling opacities insideAtm
.See
gas_mix.Gas_mix.set_k_database
for details.- Parameters:
k_database (
Kdatabase
object) – New Kdatabase to use.
- set_cia_database_stellar(cia_database=None)[source]
Change the CIA database used by the
Gas_mix
object handling opacities insideAtm
.See
gas_mix.Gas_mix.set_cia_database
for details.- Parameters:
cia_database (
CIAdatabase
object) – New CIAdatabase to use.
- set_gas(composition_dict, Mgas=None, compute_Mgas=True)[source]
Sets the composition of the atmosphere.
- set_adiab_profile(Tsurf=None, Tstrat=None)[source]
Initializes the logP-T atmospheric profile with an adiabat with index R/cp=rcp
- spectral_integration_stellar(spectral_var)[source]
Spectrally integrate an array, taking care of whether we are dealing with corr-k or xsec data.
- Parameters:
spectral_var (
array
,np.ndarray
) – array to integrate- Returns:
- var: array, np.ndarray
array integrated over wavenumber (and g-space if relevant)
- opacity_stellar(rayleigh=False, **kwargs)[source]
Computes the opacity of each of the radiative layers (m^2/molecule).
- Parameters:
rayleigh (
bool
) – If true, the rayleigh cross section is computed in self.kdata_scat and added to kdata(total extinction cross section)
See
gas_mix.Gas_mix.cross_section
for details.
- set_incoming_stellar_flux(flux=0.0, Tstar=5778.0, **kwargs)[source]
Sets the stellar incoming flux integrated in each wavenumber channel.
Important
If your simulated range does not include the whole spectral range where the star emits, the flux seen by the model will be smaller than the input one.
- setup_emission_caculation_stellar(mu_eff=0.5, rayleigh=False, **kwargs)[source]
Computes all necessary quantities for emission calculations (opacity, source, etc.)
- reflexion_spectrum_2stream(integral=True, mu0_stellar=0.5, method='toon', dtau_min=1e-10, flux_at_level=False, rayleigh=False, flux_top_dw=None, **kwargs)[source]
Returns the reflexion flux at the top of the atmosphere (in W/m^2/cm^-1)
- Parameters:
integral (
boolean
, optional) –If true, the black body is integrated within each wavenumber bin.
If not, only the central value is used. False is faster and should be ok for small bins, but True is the correct version.
mu0_stellar (
float
) – Cosine of the quadrature angle use to compute output fluxdtau_min (
float
) – If the optical depth in a layer is smaller than dtau_min, dtau_min is used in that layer instead. Important as too transparent layers can cause important numerical rounding errors.
- Returns:
- Spectrum object
A spectrum with the Spectral flux at the top of the atmosphere (in W/m^2/cm^-1)
- flux_divergence_stellar(per_unit_mass=True, **kwargs)[source]
Computes the divergence of the net flux in the layers (used to compute heating rates).
emission_spectrum_2stream()
needs to be ran first.- Parameters:
per_unit_mass (
bool
) – If True, the heating rates are normalized by the mass of each layer (result in W/kg).- Returns:
- H: array, np.ndarray
Heating rate in each layer (Difference of the net fluxes). Positive means heating. The last value is the net flux impinging on the surface.
- net: array, np.ndarray
Net fluxes at level surfaces
- heating_rate(compute_kernel=False, dTmax_use_kernel=None, flux_top_dw=None, **kwargs)[source]
Computes the heating rates and net fluxes in the atmosphere.
- Parameters:
compute_kernel – If True, the kernel (jacobian of the heat rates) is recomputed
per_unit_mass – If True, the heating rates are normalized by the mass of each layer (result in W/kg).
dTmax_use_kernel – Maximum temperature difference between the current temperature and the temperature of the last kernel computation before a new kernel is recomputed.
kwargs – Arguments to use when calling emission_spectrum_2stream.
- Returns:
- H: np.ndarray
Heating rate in each layer (Difference of the net fluxes). Positive means heating. The last value is the net flux impinging on the surface + the internal flux.
- net: np.ndarray
Net fluxes at level surfaces
- bolometric_fluxes_stellar(per_unit_mass=True)[source]
Computes the bolometric fluxes at levels and the divergence of the net flux in the layers (used to compute heating rates).
emission_spectrum_2stream()
needs to be ran first.- Parameters:
per_unit_mass (
bool
) – If True, the heating rates are normalized by the mass of each layer (result in W/kg).- Returns:
- up: array, np.ndarray
Upward fluxes at level surfaces
- dw: array, np.ndarray
Downward fluxes at level surfaces
- net: array, np.ndarray
Net fluxes at level surfaces
- H: array, np.ndarray
Heating rate in each layer (Difference of the net fluxes). Positive means heating. The last value is the net flux impinging on the surface.