ReFRACtor
altitude.h
Go to the documentation of this file.
1 #ifndef ALTITUDE_H
2 #define ALTITUDE_H
3 #include "observer.h"
4 #include "array_ad.h"
6 
7 namespace FullPhysics {
8 class Temperature;
9 class Pressure;
10 /****************************************************************/
19 class Altitude : public Observable<Altitude>, public Printable<Altitude> {
20 public:
21  virtual ~Altitude() {}
22  virtual void add_observer(Observer<Altitude>& Obs)
23  { add_observer_do(Obs, *this);}
24  virtual void remove_observer(Observer<Altitude>& Obs)
25  { remove_observer_do(Obs, *this);}
26 
27 //-----------------------------------------------------------------------
29 //-----------------------------------------------------------------------
30 
32  altitude(const AutoDerivativeWithUnit<double>& P) const = 0;
33 
34 //-----------------------------------------------------------------------
36 //-----------------------------------------------------------------------
37 
40  const = 0;
41 
42  virtual void print(std::ostream& Os) const { Os << "Altitude";}
43 
44 //-----------------------------------------------------------------------
51 //-----------------------------------------------------------------------
52 
53  virtual boost::shared_ptr<Altitude> clone() const = 0;
54 
55 //-----------------------------------------------------------------------
61 //-----------------------------------------------------------------------
62 
65  const boost::shared_ptr<Temperature>& Temp) const = 0;
66 };
67 }
68 #endif
virtual AutoDerivativeWithUnit< double > gravity(const AutoDerivativeWithUnit< double > &P) const =0
Return gravity constant for the given pressure.
virtual void print(std::ostream &Os) const
Definition: altitude.h:42
This is a AutoDerivative that also has units associated with it.
The class handles the calculation of the altitude and gravity constants.
Definition: altitude.h:19
void add_observer_do(Observer< Altitude > &Obs, Altitude &t)
Add an observer.
Definition: observer.h:148
void remove_observer_do(Observer< Altitude > &Obs, Altitude &t)
Remove an observer.
Definition: observer.h:173
This is a Mixin for classes that can be printed.
Definition: printable.h:24
virtual boost::shared_ptr< Altitude > clone() const =0
Clone an Altitude object.
virtual void add_observer(Observer< Altitude > &Obs)
Add an observer.
Definition: altitude.h:22
Mixin for a class that allows other classes to observe it state.
Definition: observer.h:12
virtual ~Altitude()
Definition: altitude.h:21
virtual void remove_observer(Observer< Altitude > &Obs)
Remove an observer.
Definition: altitude.h:24
virtual AutoDerivativeWithUnit< double > altitude(const AutoDerivativeWithUnit< double > &P) const =0
Return altitude grid for the given pressure.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1

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