1 #ifndef RT_ATMOSPHERE_H 2 #define RT_ATMOSPHERE_H 146 int numscat = -1)
const = 0;
204 int numscat = -1)
const = 0;
213 int nummom = -1,
int numscat = -1)
const;
virtual ArrayAd< double, 3 > scattering_moment_wrt_iv(double wn, int spec_index, int nummom=-1, int numscat=-1) const =0
The scattering moments for for each layer, for the given wave number.
This class is responsible for setting up the atmosphere and ground information needed to run the Radi...
virtual ArrayAdWithUnit< double, 1 > altitude(int spec_index) const =0
Altitude grid for current pressure grid.
void reset_elapsed()
Reset elapsed time to 0.
void add_observer_do(Observer< RtAtmosphere > &Obs, RtAtmosphere &t)
Add an observer.
static AccumulatedTimer timer
Timer for RtAtmosphere.
This is an observer of a StateVector.
ArrayAd< double, 1 > optical_depth_wrt_state_vector(double wn, int spec_index) const
The optical depth for each layer, for the given wave number.
ArrayAd< double, 1 > single_scattering_albedo_wrt_state_vector(double wn, int spec_index) const
The single scattering albedo for each layer, for the given wave number.
void remove_observer_do(Observer< RtAtmosphere > &Obs, RtAtmosphere &t)
Remove an observer.
virtual AutoDerivative< double > column_optical_depth(double wn, int spec_index, const std::string &Gas_name) const =0
Total column optical depth for the given gas.
Mixin for a class that allows other classes to observe it state.
virtual ArrayAd< double, 1 > optical_depth_wrt_iv(double wn, int spec_index) const =0
The optical depth for each layer, for the given wave number.
virtual ArrayAd< double, 2 > intermediate_variable(double wn, int spec_index) const =0
This gives the values of the intermediate variables and the Jacobian with respect to the state vector...
virtual const boost::shared_ptr< Ground > ground() const =0
Object that represents the ground surface.
virtual AutoDerivative< double > surface_blackbody(double wn, int spec_index) const =0
The surface thermal blackbody.
This is a simple timer class that can be used to accumulate the time spent in multiple calls to a fun...
virtual void remove_observer(Observer< RtAtmosphere > &Obs)
Remove an observer.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
virtual int number_layer() const =0
Number of layers we currently have.
virtual ArrayAd< double, 1 > single_scattering_albedo_wrt_iv(double wn, int spec_index) const =0
The single scattering albedo for each layer, for the given wave number.
virtual ArrayAd< double, 1 > atmosphere_blackbody(double wn, int spec_index) const =0
The atmospheric thermal blackbody values per level.
virtual int number_spectrometer() const =0
Number of spectrometers we have.
ArrayAd< double, 3 > scattering_moment_wrt_state_vector(double wn, int spec_index, int nummom=-1, int numscat=-1) const
The scattering moments for for each layer, for the given wave number.
virtual std::string timer_info() const
Return timer information.
virtual void add_observer(Observer< RtAtmosphere > &Obs)
Add an observer.
virtual void reset_timer()
Reset timer.