ReFRACtor
aerosol_property.h
Go to the documentation of this file.
1 #ifndef AEROSOL_PROPERTY_H
2 #define AEROSOL_PROPERTY_H
4 #include "pressure.h"
5 #include "relative_humidity.h"
6 #include <blitz/array.h>
7 
8 namespace FullPhysics {
9 /****************************************************************/
26 class AerosolProperty : virtual public StateVectorObserver,
27  public Observable<AerosolProperty> {
28 public:
29  virtual ~AerosolProperty() {}
31  { add_observer_do(Obs, *this);}
33  { remove_observer_do(Obs, *this);}
34 
35 //-----------------------------------------------------------------------
42 //-----------------------------------------------------------------------
43 
44  virtual boost::shared_ptr<AerosolProperty> clone() const = 0;
45 
46 //-----------------------------------------------------------------------
51 //-----------------------------------------------------------------------
52 
55  const boost::shared_ptr<RelativeHumidity>& Rh) const = 0;
56 
57 //-----------------------------------------------------------------------
61 //-----------------------------------------------------------------------
62 
64  const = 0;
65 
66 //-----------------------------------------------------------------------
69 //-----------------------------------------------------------------------
70 
72  const = 0;
73 
74 //-----------------------------------------------------------------------
87 //-----------------------------------------------------------------------
88 
89  virtual ArrayAd<double, 3>
90  phase_function_moment_each_layer(double wn, int nmom = -1,
91  int nscatt = -1) const = 0;
92 };
93 }
94 #endif
This gives the Aerosol properties for an Aerosol.
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.
void add_observer_do(Observer< AerosolProperty > &Obs, AerosolProperty &t)
Add an observer.
Definition: observer.h:148
This is an observer of a StateVector.
virtual void add_observer(Observer< AerosolProperty > &Obs)
Add an observer.
void remove_observer_do(Observer< AerosolProperty > &Obs, AerosolProperty &t)
Remove an observer.
Definition: observer.h:173
virtual void remove_observer(Observer< AerosolProperty > &Obs)
Remove an observer.
Mixin for a class that allows other classes to observe it state.
Definition: observer.h:12
virtual boost::shared_ptr< AerosolProperty > clone() const =0
Clone a AerosolProperty object.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
virtual ArrayAd< double, 1 > extinction_coefficient_each_layer(double wn) const =0
Return extinction coefficient for the given wave number, for each layer.
virtual ArrayAd< double, 1 > scattering_coefficient_each_layer(double wn) const =0
Return scattering coefficient for the given wave number for each layer.

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