Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
testGravitationalPotential.h
Go to the documentation of this file.
1 
9 #ifndef __TEST_GRAVITATIONAL_POTENTIAL_H
10 #define __TEST_GRAVITATIONAL_POTENTIAL_H
11 
12 #include "EccentricOrbit.h"
13 #include "TidalPotential.h"
15 
16 #include "../shared/Common.h"
17 
18 #include <iostream>
19 #include <iomanip>
20 #include <sstream>
21 
22 namespace Evolve {
28  class test_GravitationalPotential : public Test::Suite {
29  private:
32  void print_orbit(const EccentricOrbit &orbit) const;
33 
38  double primary_mass,
39 
41  double secondary_mass,
42 
44  double semimajor,
45 
47  double eccentricity,
48 
50  double inclination,
51 
53  double arg_of_periapsis,
54 
57  const Eigen::Matrix<long double, 3, 1> &position,
58 
60  unsigned expansion_order
61  ) const;
62 
65  double abs_precision(
67  const Eigen::Matrix<long double, 3, 1> &position,
68 
70  const EccentricOrbit &orbit,
71 
73  double expansion_precision
74  ) const;
75 
78  void test_single_point(
80  TidalPotentialExpansion &approx_potential,
81 
83  const TidalPotential &exact_potential,
84 
87  const Eigen::Matrix<long double, 3, 1> &position
88  );
89 
91  void test_system(
93  double primary_mass,
94 
96  double secondary_mass,
97 
99  double semimajor,
100 
102  double eccentricity,
103 
105  double inclination,
106 
108  double arg_of_periapsis
109  );
110 
111  protected:
113  void setup() {};
114 
116  void tear_down() {};
117 
118  public:
121 
124  void test_expansion();
125  }; //End test_GravitationalPotential class.
126 } //End Evolve namespace.
127 
128 #endif
void tear_down()
No fixtures at this time.
Basic description of two bodies in an eccentric orbit.
void setup()
No fixtures at this time.
void test_expansion()
Test the expansion of the potential for multiple system configurations, locations and times...
void print_tidal_potential(double primary_mass, double secondary_mass, double semimajor, double eccentricity, double inclination, double arg_of_periapsis, const Eigen::Matrix< long double, 3, 1 > &position, unsigned expansion_order) const
Print to stdout the value of the tidal potential without an approximation and using the expansion as ...
void test_system(double primary_mass, double secondary_mass, double semimajor, double eccentricity, double inclination, double arg_of_periapsis)
Test the expansion for a given system, sampling positions and times.
Evaluate the tidal potential using the expansion.
Declare an interface for evaluating the expansion of the tidal potential.
The test suite that compares the tidal potential expansion to the exact expression.
Orientations of zones of bodies in a binary system.
void test_single_point(TidalPotentialExpansion &approx_potential, const TidalPotential &exact_potential, const Eigen::Matrix< long double, 3, 1 > &position)
Test the expansion for a given system at a given position, sampling time.
double abs_precision(const Eigen::Matrix< long double, 3, 1 > &position, const EccentricOrbit &orbit, double expansion_precision) const
Declare an interface for calculating the tidal potential due to a companion in an eccentric orbit...
Calculate the tidal potential over one component of an eccentric binary.
void print_orbit(const EccentricOrbit &orbit) const
Print to stdout the location of the secondary relative to the primary as a function of time for the g...
Declare an interface for working with eccentric orbits.