1 #include <boost/bind.hpp> 12 const blitz::Array<double, 1>&,
13 const blitz::Array<bool, 1>&,
14 const std::string&>())
24 const blitz::Array<double, 1>& Vmr,
25 const blitz::Array<bool, 1>& Vmr_flag,
26 const std::string& Gas_name)
41 std::vector<AutoDerivative<double> > plist;
42 std::vector<AutoDerivative<double> > vmrlist;
43 for(
int i = 0; i < press->pressure_grid().rows(); ++i) {
44 vmrlist.push_back(coeff(i));
45 plist.push_back(press->pressure_grid()(i).
value);
50 (
new lin_type(plist.begin(), plist.end(), vmrlist.begin()));
51 vmr = boost::bind(&lin_type::operator(), lin, _1);
57 Os <<
"AbsorberVmrLevel:\n" 58 <<
" Gas name: " << gas_name() <<
"\n" 60 opad << coeff.value() <<
"\n";
62 Os <<
" Retrieval Flag:\n";
63 opad << used_flag <<
"\n";
This is a filtering stream that adds a pad to the front of every line written out.
This class takes a set of points and values, and linearly interpolates between those values...
AbsorberVmrLevel(const boost::shared_ptr< Pressure > &Press, const blitz::Array< double, 1 > &Vmr, const blitz::Array< bool, 1 > &Vmr_flag, const std::string &Gas_name)
Constructor.
#define REGISTER_LUA_DERIVED_CLASS(X, Y)
As a design principle, we have each base class with the absolutely minimum interface needed for use f...
virtual boost::shared_ptr< AbsorberVmr > clone() const
Clone a AbsorberVmr object.
Apply value function to a blitz array.
This class maps the state vector to the absorber VMR on each level.
virtual void calc_vmr() const
Derived classes should provide a function to fill in vmr when this is called.
This gives the Gas Absorber Volumn mixing ratio for a single gas.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
#define REGISTER_LUA_END()
virtual void print(std::ostream &Os) const
Print to stream.
double value(const FullPhysics::AutoDerivative< double > &Ad)