9 #ifndef __UNIT_TESTS_TIDAL_POTENTIAL_EXPANSION_H 10 #define __UNIT_TESTS_TIDAL_POTENTIAL_EXPANSION_H 14 #include "../../Evolve/TidalPotentialTerms.h" 16 #include <boost/math/special_functions/spherical_harmonic.hpp> 56 double radial_distance,
59 double azimuthal_angle,
71 double primary_mass=Core::NaN,
74 double secondary_mass=Core::NaN,
77 double semimajor=Core::NaN,
80 double eccentricity=Core::NaN,
83 double inclination=Core::NaN,
86 double arg_of_periapsis=Core::NaN
89 __secondary_mass(secondary_mass),
90 __semimajor(semimajor),
91 __eccentricity(eccentricity),
92 __inclination(inclination),
93 __arg_of_periapsis(arg_of_periapsis)
101 double radial_distance,
105 double azimuthal_angle,
120 template<
class POSITION_TYPE>
129 const POSITION_TYPE &position,
146 template<
class POSITION_TYPE>
148 const POSITION_TYPE &position,
153 double radial_distance = position.norm(),
157 : std::acos(position[2]/radial_distance)
159 azimuthal_angle = std::atan2(position[1], position[0]);
161 if(azimuthal_angle < 0)
162 azimuthal_angle += 2.0 * M_PI;
double get_expansion_precision() const
Return the expansion precision target for the expansion terms.
double __semimajor
The semimajor axis of the orbit in solar radii.
double __eccentricity
The eccentricity of the orbit.
Evaluate the tidal potential using the expansion.
double operator()(const POSITION_TYPE &position, double time, int expansion_order)
Return the tidal potential at a specific position and time in SI.
Orientations of zones of bodies in a binary system.
double __arg_of_periapsis
TidalPotentialTerms __expansion_coef
The coefficients of the expansion of the tidal potential. ( )
TidalPotentialExpansion(double primary_mass=Core::NaN, double secondary_mass=Core::NaN, double semimajor=Core::NaN, double eccentricity=Core::NaN, double inclination=Core::NaN, double arg_of_periapsis=Core::NaN)
double get_expansion_precision() const
Return the expansion precision target for the expansion terms.
double __secondary_mass
The mass of the perturber object in solar masses.
double tidal_term(int mprime, double radial_distance, double azimuthal_angle, double polar_angle, double orbital_phase) const
Return a single tidal term: .
double evaluate_spherical_coords(double radial_distance, double azimuthal_angle, double polar_angle, double time, int expansion_order)
double __primary_mass
The mass of the tidally perturbed object in solar masses.
Declare an interface for working with eccentric orbits.