Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
TidalPotentialTerms.h
Go to the documentation of this file.
1 
9 #ifndef __TIDAL_POTENTIAL_TERMS_H
10 #define __TIDAL_POTENTIAL_TERMS_H
11 
12 #include <cmath>
13 #include <valarray>
15 #include "../Core/Common.h"
16 
17 namespace Evolve {
18  class LIB_PUBLIC TidalPotentialTerms {
19  private:
21  unsigned __e_order;
22 
25 
31  static const double __Umm_coef[][3];
32 
35 
38 
39  std::valarray< std::valarray<double> >
41  __Ummp,
42 
46 
47  public:
48 
50 
52  void change_e_order(unsigned new_e_order)
53  {__e_order = new_e_order;}
54 
55  unsigned current_e_order() const
56  {return __e_order;}
57 
59  void configure(double inclination, double arg_of_periapsis = 0);
60 
66  void operator()(
68  double e,
69 
71  int m,
72 
74  int mp,
75 
77  std::complex<double> &no_deriv,
78 
80  std::complex<double> &inclination_deriv,
81 
83  std::complex<double> &eccentricity_deriv,
84 
88  std::complex<double> &highest_e_order_term
89  ) const;
90 
93  void operator()(
95  double e,
96 
98  int m,
99 
101  int mp,
102 
104  double &no_deriv,
105 
107  double &inclination_deriv,
108 
110  double &eccentricity_deriv,
111 
115  double &highest_e_order_term
116  ) const;
117 
122  static void read_eccentricity_expansion(const std::string &fname)
123  {__pms.read(fname);}
124 
127  static unsigned max_e_order()
128  {return __pms.max_e_power();}
129  }; //End TidalPotentialTerms class.
130 } //End Evolve namespace
131 
132 #endif
double __Ummp_inclination
The inclination with which __Ummp was last filled.
double __arg_of_periapsis
The argument of periaspsis set by the last call to configure().
static EccentricityExpansionCoefficients __pms
The eccentricity expansion of .
Declares a class which provides the [ coefficients]{InclinationEccentricity_pms1}.
void read(const std::string &tabulated_pms_fname="", int max_e_power=-1)
Reads in tabulated expansion coefficients, making this object useable.
Orientations of zones of bodies in a binary system.
static unsigned max_e_order()
The maximum eccentricity expansion order for which the expansion is known.
static void read_eccentricity_expansion(const std::string &fname)
Reads the eccentricity expansion coefficients of .
void change_e_order(unsigned new_e_order)
Change the eccentricity expansion order.
std::valarray< std::valarray< double > > __Ummp_deriv
The derivatives of the quantities w.r.t. the inclination.
unsigned max_e_power() const
Maximum eccentricity power with all necessary coefficients known.
A class which reads-in and provides a convenient interface to the coefficients.
unsigned __e_order
The expansion order in eccentricity to use.