21 { cache_is_stale =
true;}
23 {cache_is_stale =
true;}
28 virtual void print(std::ostream& Os)
const 32 std::vector<boost::shared_ptr<Altitude> > alt;
33 mutable bool cache_is_stale;
35 void fill_cache()
const;
38 double a, b, depolar_fact, molar_weight_dry_air;
The class handles the calculation of the altitude and gravity constants.
virtual void notify_update(const Pressure &P)
Called when the Observed object is updated.
Rayleigh(const boost::shared_ptr< Pressure > &Pres, const std::vector< boost::shared_ptr< Altitude > > &Alt, const Constant &C)
Constructor.
This class is an implementation of Constant that uses hard coded values suitable for Earth...
ArrayAd< double, 1 > optical_depth_each_layer(double wn, int spec_index) const
This gives the optical depth for each layer, for the given wave number.
This is a Mixin for classes that can be printed.
const Unit A("A", 1.0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0)
This class calculates the Rayleigh portion of the optical depth.
This class contains various constants.
virtual void notify_update(const Altitude &A)
Called when the Observed object is updated.
static DoubleWithUnit cross_section(const DoubleWithUnit &W, const Constant &C=DefaultConstant())
Calculate the rayleigh cross section for the given wavenumber/wavelength.
We frequently have a double with units associated with it.
This class maintains the pressure portion of the state.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
virtual void print(std::ostream &Os) const
Simple Mixin to be and Observer of another object of class T.