ReFRACtor
absorber_vmr_fixed_level.h
Go to the documentation of this file.
1 #ifndef ABSORBER_VMR_FIXED_LEVEL_H
2 #define ABSORBER_VMR_FIXED_LEVEL_H
3 
5 #include "pressure.h"
6 #include "pressure_level_input.h"
7 #include <boost/lexical_cast.hpp>
8 
9 namespace FullPhysics {
10 /****************************************************************/
18 public:
20  const boost::shared_ptr<PressureLevelInput>& Press_level,
21  const blitz::Array<bool, 1>& Used_flag,
22  const blitz::Array<double, 1>& Vmr,
23  const std::string& Gas_name);
25  virtual void print(std::ostream& Os) const;
26 
27  virtual std::string sub_state_identifier() const { return "absorber_levels/" + gas_name(); }
28 
29  virtual std::string state_vector_name_i(int i) const
30  { return gas_name() + " VMR for Press Lvl " +
31  boost::lexical_cast<std::string>(i + 1); }
32  virtual boost::shared_ptr<AbsorberVmr> clone() const;
34  clone(const boost::shared_ptr<Pressure>& Press) const;
35 
36 //-----------------------------------------------------------------------
38 //-----------------------------------------------------------------------
39 
40  blitz::Array<double, 1> volume_mixing_ratio_level() const
41  {return coeff.value();}
42 
43 //-----------------------------------------------------------------------
46 //-----------------------------------------------------------------------
47 
48  blitz::Array<double, 1> volume_mixing_ratio_active_level() const
49  {return coeff.value()(blitz::Range(0, press->number_level() - 1));}
50 protected:
51  virtual void calc_vmr() const;
52 private:
54 };
55 }
56 #endif
blitz::Array< double, 1 > volume_mixing_ratio_level() const
Volume mixing ratio on the fixed pressure levels.
As a design principle, we have each base class with the absolutely minimum interface needed for use f...
AbsorberVmrFixedLevel(const boost::shared_ptr< Pressure > &Press, const boost::shared_ptr< PressureLevelInput > &Press_level, const blitz::Array< bool, 1 > &Used_flag, const blitz::Array< double, 1 > &Vmr, const std::string &Gas_name)
Constructor.
const blitz::Array< T, D > & value() const
Definition: array_ad.h:306
blitz::Array< double, 1 > volume_mixing_ratio_active_level() const
Volume mixing ratio on the fixed pressure levels, restricted to the active levels.
virtual boost::shared_ptr< AbsorberVmr > clone() const
Clone a AbsorberVmr object.
virtual void print(std::ostream &Os) const
Print to stream.
This class maps the state vector to the absorber VMR on each level.
virtual std::string state_vector_name_i(int i) const
Return state vector name for ith entry in coeff.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
boost::shared_ptr< Pressure > press
Pressure.
virtual void calc_vmr() const
Derived classes should provide a function to fill in vmr when this is called.
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 std::string gas_name() const
This indicates the name of this particular Absorber.

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