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 #include <iomanip>
19 
20 namespace Evolve {
26  class test_DifferentialEquations : public Test::Suite {
27  private:
30  void output_rates(
31  const alglib::real_1d_array &eccentricities,
32  const alglib::real_1d_array &expected_semimajor_rate,
33  const alglib::real_1d_array &predicted_semimajor_rate,
34  const alglib::real_1d_array &expected_eccentricity_rate,
35  const alglib::real_1d_array &predicted_eccentricity_rate
36  ) const;
37 
38 
44  int orbital_frequency_multiplier,
45 
48  int spin_frequency_multiplier,
49 
51  double eccentricity
52  ) const;
53 
59  int orbital_frequency_multiplier,
60 
63  int spin_frequency_multiplier
64  ) const;
65 
68  void check_agreement(
70  const alglib::real_1d_array& x,
71 
73  const alglib::real_1d_array& y1,
74 
76  const alglib::real_1d_array& y2,
77 
79  unsigned agreement_order,
80 
82  unsigned max_order,
83 
85  const std::string &description
86  );
87 
88  protected:
90  void setup() {};
91 
93  void tear_down() {};
94  public:
97 
100 
102  void test_error_estimate();
103  };// End test_DifferentialEquations class.
104 
105 } //End Evolve namespace.
106 
107 #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.