1 #ifndef AEROSOL_PROPERTY_IMP_BASE_H 2 #define AEROSOL_PROPERTY_IMP_BASE_H 6 #include <boost/lexical_cast.hpp> 31 int nscatt = -1)
const = 0;
37 return "Aerosol Property Coeff " + boost::lexical_cast<std::string>(i + 1);
47 virtual void print(std::ostream& Os)
const { Os <<
desc(); }
54 virtual std::string
desc()
const {
return "AerosolPropertyImpBase"; }
72 blitz::Array<double, 1> uncert(
coefficient().rows());
87 void init(
const blitz::Array<double, 1>& Coeff,
88 const blitz::Array<bool, 1>& Used_flag)
106 const blitz::Array<bool, 1>& Used_flag)
This gives the Aerosol properties for an Aerosol.
AerosolPropertyImpBase()
Default constructor, derived class should call init if they use this constructor. ...
virtual std::string desc() const
Description of object, to be printed to stream.
virtual void print(std::ostream &Os) const
Print to stream.
blitz::Array< double, 2 > sv_cov_sub
The subset of cov_full that is "owned" by this class, what was passed through update_sub_state.
virtual ArrayAd< double, 1 > scattering_coefficient_each_layer(double wn) const =0
Return scattering coefficient for the given wave number for each layer.
As a design principle, we have each base class with the absolutely minimum interface needed for use f...
blitz::Array< double, 1 > aerosol_parameter_uncertainty() const
Returns the uncertainty of the aerosol type coefficients.
blitz::Array< double, 1 > aerosol_parameter() const
Returns the value of the coefficients used to generate the aerosol property.
const blitz::Array< T, D > & value() const
virtual ~AerosolPropertyImpBase()
virtual ArrayAd< double, 1 > extinction_coefficient_each_layer(double wn) const =0
Return extinction coefficient for the given wave number, for each layer.
void init(const blitz::Array< double, 1 > &Coeff, const blitz::Array< bool, 1 > &Used_flag)
Initialize object.
virtual ArrayAd< double, 3 > phase_function_moment_each_layer(double wn, int nmom=-1, int nscatt=-1) const =0
Return phase function moments for the given wave number for each layer.
const ArrayAd< double, 1 > & coefficient() const
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.
void init(const blitz::Array< double, 1 > &Coeff, const blitz::Array< bool, 1 > &Used_flag, const boost::shared_ptr< Pressure > &Press=boost::shared_ptr< Pressure >(), bool Mark_according_to_press=true, int Pdep_start=0)
virtual std::string state_vector_name_i(int i) const
Return state vector name for ith entry in coeff.
AerosolPropertyImpBase(const blitz::Array< double, 1 > &Coeff, const blitz::Array< bool, 1 > &Used_flag)
Constructor that sets the coefficient() and used_flag() values.
virtual std::string sub_state_identifier() const
Return a string to identify this part of the state, this name should be all lower case and seperate p...
virtual boost::shared_ptr< AerosolProperty > clone() const =0
Clone a AerosolProperty object.