1 #ifndef AEROSOL_SHAPE_GAUSSIAN_H 2 #define AEROSOL_SHAPE_GAUSSIAN_H 5 #include <boost/lexical_cast.hpp> 32 const blitz::Array<bool, 1>& Flag,
33 const blitz::Array<double, 1>& Coeffs,
34 const std::string& Aerosol_name,
35 const bool Linear_AOD)
44 {
return "Aerosol Shape " +
aerosol_name() +
" " + (linear_aod ?
"Linear" :
"Logarithmic") +
" Gaussian for Coefficient " +
45 boost::lexical_cast<std::string>(i + 1); }
46 virtual std::string
model_short_name()
const {
return linear_aod ?
"gaussian_linear" :
"gaussian_log"; }
47 virtual void print(std::ostream& Os)
const;
52 static const double min_aod;
virtual void calc_aerosol_extinction() const
Derived classes should provide a function to fill in vmr when this is called.
virtual std::string model_short_name() const
A short name representing the type of extinction model being implemented.
virtual std::string state_vector_name_i(int i) const
Return state vector name for ith entry in coeff.
AerosolShapeGaussian(const boost::shared_ptr< Pressure > &Press, const blitz::Array< bool, 1 > &Flag, const blitz::Array< double, 1 > &Coeffs, const std::string &Aerosol_name, const bool Linear_AOD)
Constructor.
virtual ~AerosolShapeGaussian()
This class maps the state vector to aerosol extinction defined by a Gaussian parameterization.
virtual void print(std::ostream &Os) const
Print to stream.
virtual std::string aerosol_name() const
Name of aerosol.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
boost::shared_ptr< Pressure > press
Pressure.
As a design principle, we have each base class with the absolutely minimum interface needed for use f...
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< AerosolExtinction > clone() const
Clone a AerosolExtinction object.