ReFRACtor
gas_absorption.h
Go to the documentation of this file.
1 #ifndef GAS_ABSORPTION_H
2 #define GAS_ABSORPTION_H
3 #include "printable.h"
4 #include "double_with_unit.h"
6 #include "array_ad.h"
7 #include <blitz/array.h>
8 
9 namespace FullPhysics {
10 /****************************************************************/
14 class GasAbsorption: public Printable<GasAbsorption> {
15 public:
16  virtual ~GasAbsorption() {}
17 
18 //-----------------------------------------------------------------------
22 //-----------------------------------------------------------------------
23 
24  virtual bool have_data(double wn) const = 0;
25 
26 //-----------------------------------------------------------------------
29 //-----------------------------------------------------------------------
30 
31  virtual std::string broadener_name() const = 0;
32 
33 //-----------------------------------------------------------------------
43 //-----------------------------------------------------------------------
44 
45  virtual DoubleWithUnit absorption_cross_section(double Wn,
46  const DoubleWithUnit& Press,
47  const DoubleWithUnit& Temp,
48  const DoubleWithUnit& Broadener_vmr) const = 0;
49 
50 //-----------------------------------------------------------------------
60 //-----------------------------------------------------------------------
61 
63  absorption_cross_section(double Wn,
64  const DoubleWithUnit& Press,
66  const AutoDerivativeWithUnit<double>& Broadener_vmr) const = 0;
67 
68  virtual void print(std::ostream& Os) const {Os << "GasAbsorption";}
69 };
70 }
71 #endif
virtual DoubleWithUnit absorption_cross_section(double Wn, const DoubleWithUnit &Press, const DoubleWithUnit &Temp, const DoubleWithUnit &Broadener_vmr) const =0
This interpolates the ABSCO data to give absorption cross section for a given pressure, temperature, and broadener VMR.
This is a AutoDerivative that also has units associated with it.
virtual void print(std::ostream &Os) const
This is a Mixin for classes that can be printed.
Definition: printable.h:24
virtual bool have_data(double wn) const =0
Return true if we have data for the given wave number.
virtual std::string broadener_name() const =0
For some tables, we might have a broadener (e.g., "h2o").
We frequently have a double with units associated with it.
This class determine the gaseous absorption coefficient for a given wave number, temperature and pres...
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