ReFRACtor
aerosol_extinction.h
Go to the documentation of this file.
1 #ifndef AEROSOL_EXTINCTION_H
2 #define AEROSOL_EXTINCTION_H
4 #include "auto_derivative.h"
5 #include "pressure.h"
6 
7 namespace FullPhysics {
8 /****************************************************************/
21 class AerosolExtinction : virtual public StateVectorObserver,
22  public Observable<AerosolExtinction> {
23 public:
24  virtual ~AerosolExtinction() {}
26  { add_observer_do(Obs, *this);}
28  { remove_observer_do(Obs, *this);}
29 
30 //-----------------------------------------------------------------------
37 //-----------------------------------------------------------------------
38 
39  virtual boost::shared_ptr<AerosolExtinction> clone() const = 0;
40 
41 //-----------------------------------------------------------------------
46 //-----------------------------------------------------------------------
47 
49  clone(const boost::shared_ptr<Pressure>& Press) const = 0;
50 
51 //-----------------------------------------------------------------------
53 //-----------------------------------------------------------------------
54 
55  virtual AutoDerivative<double> extinction_for_layer(int i) const = 0;
56 
57 //-----------------------------------------------------------------------
59 //-----------------------------------------------------------------------
60  virtual std::string aerosol_name() const = 0;
61 };
62 }
63 #endif
virtual void add_observer(Observer< AerosolExtinction > &Obs)
Add an observer.
void add_observer_do(Observer< AerosolExtinction > &Obs, AerosolExtinction &t)
Add an observer.
Definition: observer.h:148
virtual boost::shared_ptr< AerosolExtinction > clone() const =0
Clone a AerosolExtinction object.
This is an observer of a StateVector.
void remove_observer_do(Observer< AerosolExtinction > &Obs, AerosolExtinction &t)
Remove an observer.
Definition: observer.h:173
Mixin for a class that allows other classes to observe it state.
Definition: observer.h:12
virtual std::string aerosol_name() const =0
Name of aerosol.
virtual void remove_observer(Observer< AerosolExtinction > &Obs)
Remove an observer.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
This class maps the state vector to the aerosol extinction on each level.
virtual AutoDerivative< double > extinction_for_layer(int i) const =0
Extinction for given layer.

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