1 #ifndef STOKES_COEFFICIENT_IMP_BASE_H 2 #define STOKES_COEFFICIENT_IMP_BASE_H 41 virtual void print(std::ostream& Os)
const { Os <<
desc(); }
47 virtual std::string
desc()
const {
return "StokesCoefficientImpBase"; }
78 const blitz::Array<bool, 1>& Used_flag)
82 void fill_cache()
const void resize_number_variable(int nvar)
virtual void calc_stokes_coeff() const =0
Derived classes should provide a function to fill in pgrid when this is called.
bool cache_stale
If this is true, the recalculate the stokes_coeff the next time we need it.
virtual ~StokesCoefficientImpBase()
This class maintains the stokes coefficient portion of the state.
virtual void print(std::ostream &Os) const
Print to stream.
ArrayAd< double, 2 > stokes_coeff
The cached stokes coefficient.
virtual void update_sub_state_hook()
Hook for anything a derived class needs to do after coefficient is updated and before notify_update...
int number_variable() const
StokesCoefficientImpBase(const blitz::Array< double, 1 > &Coeff, const blitz::Array< bool, 1 > &Used_flag)
Constructor that sets the coefficient() and used_flag() values.
As a design principle, we have each base class with the absolutely minimum interface needed for use f...
virtual std::string desc() const
Description of object, to be printed to stream.
It is common to have a class that is an Observable with a set of coefficients, a subset of which are ...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
StokesCoefficientImpBase()
Default constructor, derived class should call init if they use this constructor. ...
ArrayAd< double, 1 > coeff
Coefficients.
virtual ArrayAd< double, 2 > stokes_coefficient() const
Return Stokes coefficients used to go from Stokes vector to scalar reflectance.
virtual boost::shared_ptr< StokesCoefficient > clone() const =0
Clone a StokesCoefficient object.