52 int nummom = -1,
int numscat = -1)
const = 0;
virtual boost::shared_ptr< Aerosol > clone() const =0
static AccumulatedTimer timer
Timer for Aerosol.
virtual void remove_observer(Observer< Aerosol > &Obs)
Remove an observer.
void add_observer_do(Observer< Aerosol > &Obs, Aerosol &t)
Add an observer.
This is an observer of a StateVector.
virtual ArrayAd< double, 1 > ssa_each_layer(double wn, int particle_index, const ArrayAd< double, 1 > &Od) const =0
This gives the single scatter albedo for each layer, for the given wave number, for the given particl...
void remove_observer_do(Observer< Aerosol > &Obs, Aerosol &t)
Remove an observer.
This class maintains the aerosol portion of the state.
The AutoDerivative<T> works well, and it works with blitz if you create a blitz::Array<AutoDerivative...
Mixin for a class that allows other classes to observe it state.
virtual int number_particle() const =0
Number of aerosol particles.
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 ArrayAd< double, 2 > optical_depth_each_layer(double wn) const =0
This gives the optical depth for each layer, for the given wave number.
virtual void add_observer(Observer< Aerosol > &Obs)
Add an observer.
virtual ArrayAd< double, 3 > pf_mom(double wn, const ArrayAd< double, 2 > &frac_aer, int nummom=-1, int numscat=-1) const =0
This calculates the portion of the phase function moments that come from the aerosol.