Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
testDifferentialEquations.h
Go to the documentation of this file.
1 
9 #ifndef __TEST_DIFFERENTIAL_EQUATIONS_H
10 #define __TEST_DIFFERENTIAL_EQUATIONS_H
11 
12 #include "SingleTidalTermBody.h"
13 #include "../shared/Common.h"
14 #include "../shared/PolynomialEvolution.h"
15 #include "../shared/MakeStar.h"
16 #include "../../Planet/Planet.h"
17 #include "../../third_party_libs/alglib/alglib/src/interpolation.h"
18 
19 namespace Evolve {
25  class test_DifferentialEquations : public Test::Suite {
26  private:
29  void output_rates(
30  const alglib::real_1d_array &eccentricities,
31  const alglib::real_1d_array &expected_semimajor_rate,
32  const alglib::real_1d_array &predicted_semimajor_rate,
33  const alglib::real_1d_array &expected_eccentricity_rate,
34  const alglib::real_1d_array &predicted_eccentricity_rate
35  ) const;
36 
37 
43  int orbital_frequency_multiplier,
44 
47  int spin_frequency_multiplier,
48 
50  double eccentricity
51  ) const;
52 
58  int orbital_frequency_multiplier,
59 
62  int spin_frequency_multiplier
63  ) const;
64 
67  void check_agreement(
69  const alglib::real_1d_array& x,
70 
72  const alglib::real_1d_array& y1,
73 
75  const alglib::real_1d_array& y2,
76 
78  unsigned agreement_order,
79 
81  unsigned max_order,
82 
84  const std::string &description
85  );
86 
87  protected:
89  void setup() {};
90 
92  void tear_down() {};
93  public:
96 
99 
101  void test_error_estimate();
102  };// End test_DifferentialEquations class.
103 
104 } //End Evolve namespace.
105 
106 #endif
void setup()
No fixtures at this time.
The test suite that compares the differential equations for eccentricity and semimajor axis to litera...
double zahn77_semimajor_rate_coef(int orbital_frequency_multiplier, int spin_frequency_multiplier, double eccentricity) const
The Zahn (1977) coefficient for the semimajor evolution rate that corresponds to the given tidal term...
void test_aligned_equations()
Test the a & e differential equations for aligned orbit.
Orientations of zones of bodies in a binary system.
void check_agreement(const alglib::real_1d_array &x, const alglib::real_1d_array &y1, const alglib::real_1d_array &y2, unsigned agreement_order, unsigned max_order, const std::string &description)
Check if two given dependencies on x agree up to a given order in x.
void tear_down()
No fixtures at this time.
Declare a dissipative body class with a single SingleTidalTermZone.
double zahn77_eccentricity_rate_coef(int orbital_frequency_multiplier, int spin_frequency_multiplier) const
Same as zahn77_semimajor_rate_coef() but for the eccentricity evolution.
void test_error_estimate()
Test the error estimate of the differential equations.
void output_rates(const alglib::real_1d_array &eccentricities, const alglib::real_1d_array &expected_semimajor_rate, const alglib::real_1d_array &predicted_semimajor_rate, const alglib::real_1d_array &expected_eccentricity_rate, const alglib::real_1d_array &predicted_eccentricity_rate) const
Output the predicted/expected semiamjor and eccentricity evolution rates to stdout.