Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
EccentricOrbit.h
Go to the documentation of this file.
1 
8 #ifndef __UNIT_TESTS_ECCENTRIC_ORBIT_H
9 #define __UNIT_TESTS_ECCENTRIC_ORBIT_H
10 
11 #include "../../Core/Common.h"
12 #include "../../Core/AstronomicalConstants.h"
13 
14 #include "Eigen/Dense"
15 
16 #include <gsl/gsl_errno.h>
17 #include <gsl/gsl_roots.h>
18 
19 #include <iostream>
20 #include <iomanip>
21 
22 namespace Evolve {
25  private:
26  double
29 
32 
35 
38 
40  double reduced_mass() const;
41 
42  public:
46  double primary_mass=Core::NaN,
47 
49  double secondary_mass=Core::NaN,
50 
52  double semimajor=Core::NaN,
53 
55  double eccentricity=Core::NaN
56  ) :
58  __secondary_mass(secondary_mass),
59  __semimajor(semimajor),
60  __eccentricity(eccentricity)
61  {}
62 
64  double primary_mass() const {return __primary_mass;}
65 
67  double &primary_mass() {return __primary_mass;}
68 
70  double secondary_mass() const {return __secondary_mass;}
71 
73  double &secondary_mass() {return __secondary_mass;}
74 
76  double semimajor() const {return __semimajor;}
77 
79  double &semimajor() {return __semimajor;}
80 
82  double eccentricity() const {return __eccentricity;}
83 
85  double &eccentricity() {return __eccentricity;}
86 
89  double eccentric_anomaly(
92  double orbital_phase
93  ) const;
94 
98  Eigen::Vector3d secondary_position(
100  double orbital_phase
101  ) const;
102 
105  double orbital_angmom() const;
106 
109  double orbital_energy() const;
110 
112  double orbital_period() const;
113  }; //End EccentricOrbit class
114 }//End Evolve namespace
115 
116 #endif
Basic description of two bodies in an eccentric orbit.
double reduced_mass() const
The reduced mass of the system in solar masses.
double eccentricity() const
The semimajor axis of the system.
double semimajor() const
The semimajor axis of the system.
Orientations of zones of bodies in a binary system.
double orbital_energy() const
The magnitude of the orbital energy of the system in .
double __eccentricity
The eccentricity of the orbit.
double & semimajor()
A mutable reference to the semimajor axis of the system.
double & secondary_mass()
A mutable reference to the semimajor axis of the system.
double primary_mass() const
The semimajor axis of the system.
double eccentric_anomaly(double orbital_phase) const
double __primary_mass
The mass of the tidally perturbed object in solar masses.
double orbital_angmom() const
The magnitude of the orbital angular momentum of the system in .
double & eccentricity()
A mutable reference to the semimajor axis of the system.
double __secondary_mass
The mass of the perturber object in solar masses.
double & primary_mass()
A mutable reference to the semimajor axis of the system.
EccentricOrbit(double primary_mass=Core::NaN, double secondary_mass=Core::NaN, double semimajor=Core::NaN, double eccentricity=Core::NaN)
Create an eccentric orbit.
double orbital_period() const
The orbital period of the system in days.
Eigen::Vector3d secondary_position(double orbital_phase) const
Secondary position vector in a coordinate system centered on the primary, with and ...
double secondary_mass() const
The semimajor axis of the system.
double __semimajor
The semimajor axis of the orbit in solar radii.