ReFRACtor
aerosol_shape_gaussian.h
Go to the documentation of this file.
1 #ifndef AEROSOL_SHAPE_GAUSSIAN_H
2 #define AEROSOL_SHAPE_GAUSSIAN_H
3 
5 #include <boost/lexical_cast.hpp>
6 
7 namespace FullPhysics {
8 /****************************************************************/
13 public:
14 //-----------------------------------------------------------------------
29 //-----------------------------------------------------------------------
30 
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)
36  : AerosolExtinctionImpBase(Aerosol_name, Coeffs, Flag, Press, false), linear_aod(Linear_AOD) {}
37  virtual ~AerosolShapeGaussian() {}
39  { return clone(press->clone()); }
41  (const boost::shared_ptr<Pressure>& P) const;
42  virtual std::string sub_state_identifier() const { return "aerosol_shape/" + aerosol_name() + "/" + (linear_aod ? "linear" : "log"); }
43  virtual std::string state_vector_name_i(int i) const
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;
48 protected:
49  virtual void calc_aerosol_extinction() const;
50 private:
51  bool linear_aod;
52  static const double min_aod;
53 };
54 }
55 #endif
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.
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.
Definition: doxygen_python.h:1
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.

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:08