ReFRACtor
default_constant.h
Go to the documentation of this file.
1 #ifndef DEFAULT_CONSTANT_H
2 #define DEFAULT_CONSTANT_H
3 #include "constant.h"
4 namespace FullPhysics {
5 /****************************************************************/
10 class DefaultConstant : public Constant {
11  public:
13  virtual ~DefaultConstant() {}
14  virtual void print(std::ostream& Os) const
15  { Os << "Default constants for Earth"; }
16 
17  //-----------------------------------------------------------------------
19  //-----------------------------------------------------------------------
20 
21  virtual double rayleigh_depolarization_factor() const
22  { return 0.02790; // depolarization factor; for air is 0.02790 (young, 1980)
23  }
24  //-----------------------------------------------------------------------
27  //-----------------------------------------------------------------------
28 
29  virtual DoubleWithUnit rayleigh_a() const
30  {
31  // a and b are wavelength dependence coefficients for the
32  // refractive index (allen, 1964) (note: wavelengths must be
33  // in microns) For Earth, a = 2.871e-04, b = 5.67e-03
34  return DoubleWithUnit(2.871e-04, "dimensionless");
35  }
36 
37  //-----------------------------------------------------------------------
40  //-----------------------------------------------------------------------
41 
42  virtual DoubleWithUnit rayleigh_b() const
43  {
44  // a and b are wavelength dependence coefficients for the
45  // refractive index (allen, 1964) (note: wavelengths must be
46  // in microns) For Earth, a = 2.871e-04, b = 5.67e-03
47  return DoubleWithUnit(5.67e-03, "dimensionless");
48  }
49 
50  //-----------------------------------------------------------------------
52  //-----------------------------------------------------------------------
54  {
55  return DoubleWithUnit(28.9644, "g / mol");
56  }
57 
58  //-----------------------------------------------------------------------
60  //-----------------------------------------------------------------------
61 
63  {
64  return DoubleWithUnit(18.01528, "g / mol");
65  }
66 
67  //-----------------------------------------------------------------------
69  //-----------------------------------------------------------------------
70 
72  {
73  return DoubleWithUnit(6.02214179e23, "mol^-1");
74  }
75 
76  //-----------------------------------------------------------------------
78  //-----------------------------------------------------------------------
79  virtual boost::array<double, 7> solar_distance_param() const
80  {
81  const boost::array<double, 7> sdp =
82  {{0.98334, -1.82823e-5, 2.30179e-6, 6.62402e-9,
83  -1.33287e-10, 3.98445e-13, -3.54239e-16}};
84  return sdp;
85  }
86  };
87 }
88 #endif
virtual DoubleWithUnit avogadro_constant() const
Avogadro constant.
virtual void print(std::ostream &Os) const
This class is an implementation of Constant that uses hard coded values suitable for Earth...
virtual double rayleigh_depolarization_factor() const
Rayleigh depolarization factor.
virtual DoubleWithUnit rayleigh_b() const
Rayleigh "b" value.
This class contains various constants.
Definition: constant.h:11
virtual DoubleWithUnit molar_weight_dry_air() const
Molar weight of dry air.
We frequently have a double with units associated with it.
virtual boost::array< double, 7 > solar_distance_param() const
The polynomial used to find the distance to the sun.
virtual DoubleWithUnit molar_weight_water() const
Molar weight of water.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
virtual DoubleWithUnit rayleigh_a() const
Rayleigh "a" value.

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