# Modeling

`ClearSky.opticaldepth`

— Function`opticaldepth(P₁, P₂, g, 𝒻T, 𝒻μ, θ, absorbers...; tol=1e-5)`

Compute monochromatic optical depths ($\tau$) between two pressure levels

**Arguments**

`P₁`

: first pressure level [Pa]`P₂`

: second pressure level [Pa]`g`

: gravitational acceleration [m/s$^2$]`𝒻T`

: temperature [K] as a function of pressure [Pa],`𝒻T(P)`

. This may be any callable object, like`MoistAdiabat`

, for example.`𝒻μ`

: mean molar mass as a function of temperature [K] and pressure [Pa],`𝒻μ(T,P)`

`θ`

: angle [radians] of path, must be ∈ [0,π/2), where 0 is straight up/down`absorbers`

: at least one gas object and any number of`CIATables`

and functions in the form σ(ν, T, P)

Returns a vector of optical depths across all wavenumbers stored in gas objects. The `tol`

keyword argument adjusts integrator error tolerance.

`ClearSky.transmittance`

— Function`transmittance(τ)`

Evaluate transmittance from optical depth, $t = e^{-τ}$

`transmittance(P₁, P₂, g, 𝒻T, 𝒻μ, θ, absorbers...; tol=1e-5)`

Compute monochromatic transmittances. between two pressure levels

Accepts the same arguments as `opticaldepth`

and returns a vector of transmittances across all wavenumbers stored in gas objects.

`ClearSky.outgoing`

— Function`outgoing(Pₛ, g, 𝒻T, 𝒻μ, absorbers; Ptop=1.0, nstream=5, tol=1e-5)`

Compute outgoing monochromatic radiative fluxes [W/m$^2$/cm$^{-1}$], line-by-line. Integrates the `schwarzschild`

equation from `Pₛ`

to `Ptop`

at each wavenumber in the provided gas object(s) using any number of streams/angles. Total flux [W/m$^2$] can be evaluated with the `trapz`

function. This function does not include reflected stellar radiation, which is accounted for in `topfluxes`

and `topimbalance`

**Arguments**

`Pₛ`

: surface pressure [Pa]`g`

: gravitational acceleration [m/s$^2$]`𝒻T`

: temperature [K] as a function of pressure [Pa],`𝒻T(P)`

. This may be any callable object, like`MoistAdiabat`

, for example.`𝒻μ`

: mean molar mass as a function of temperature [K] and pressure [Pa],`𝒻μ(T,P)`

`absorbers`

: at least one gas object and any number of`CIATables`

and functions in the form σ(ν, T, P)

**Keywords**

`Ptop`

: top of atmopshere pressure [Pa]`nstream`

: the number of atmospheric streams (radiation angles) to calculate and integrate`tol`

: integrator error tolerance

The keyword argument `nstream`

specifies how many independent streams, or beam angles through the atmosphere, to integrate. The keyword argument `tol`

is a numerical error tolerance passed to the `radau`

integrator.

Missing docstring for `topfluxes`

. Check Documenter's build log for details.

Missing docstring for `bottomfluxes`

. Check Documenter's build log for details.

Missing docstring for `GroupedAbsorber`

. Check Documenter's build log for details.

`ClearSky.AcceleratedAbsorber`

— Type```
AcceleratedAbsorber(P, T, G::UnifiedAbsorber)
AcceleratedAbsorber(P, T, absorbers...)
```

An accelerated struct for getting cross-sections from groups of absorbers. Pressure and temperature coordinates must be provided.

`ClearSky.update!`

— Function`update!(A::AcceleratedAbsorber, T)`

Update the cross-section interpolators underlying an `AcceleratedAbsorber`

with a new set of temperatures. The new temperatures should correspond to the pressure levels used when originally constructing the `AcceleratedAbsorber`

.