54 virtual std::string
gas_name(
int Species_index)
const = 0;
56 virtual int gas_index(
const std::string& Name)
const;
virtual int number_species() const
Number of species.
virtual ArrayAd< double, 2 > optical_depth_each_layer(double wn, int spec_index) const =0
This gives the optical depth for each layer, for the given wave number.
virtual void add_observer(Observer< Absorber > &Obs)
Add an observer.
virtual std::string gas_name(int Species_index) const =0
Name of gases, in the order that optical_depth_each_layer returns them.
virtual boost::shared_ptr< Absorber > clone() const =0
Clone an Absorber object.
void add_observer_do(Observer< Absorber > &Obs, Absorber &t)
Add an observer.
This is an observer of a StateVector.
virtual boost::shared_ptr< AbsorberVmr > absorber_vmr(const std::string &gas_name) const =0
Returns the AbsorberVmr object for a given species index.
void remove_observer_do(Observer< Absorber > &Obs, Absorber &t)
Remove an observer.
virtual AutoDerivative< double > xgas(const std::string &Gas_name) const =0
This calculates the gas column, e.g., XCO2.
virtual void remove_observer(Observer< Absorber > &Obs)
Remove an observer.
Mixin for a class that allows other classes to observe it state.
static AccumulatedTimer timer
Timer for optical_depth_each_layer.
This is a simple timer class that can be used to accumulate the time spent in multiple calls to a fun...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
virtual int gas_index(const std::string &Name) const
Map a gas name to the index number it appears in optical_depth_each_layer.
This class maintains the absorber portion of the state.