Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
Evolve::TidalPotentialTerms Class Reference
+ Collaboration diagram for Evolve::TidalPotentialTerms:

Public Member Functions

void change_e_order (unsigned new_e_order)
 Change the eccentricity expansion order. More...
 
unsigned current_e_order () const
 
void configure (double inclination, double arg_of_periapsis=0)
 Set the inclination relative to the orbit. More...
 
void operator() (double e, int m, int mp, std::complex< double > &no_deriv, std::complex< double > &inclination_deriv, std::complex< double > &eccentricity_deriv, std::complex< double > &highest_e_order_term) const
 Calculates \(\sum_s W_{2,s}D_{m,s}(\Theta)p_{s,m'}\) (see documentation) and its derivatives w.r.t. e and \(\Theta\). More...
 
void operator() (double e, int m, int mp, double &no_deriv, double &inclination_deriv, double &eccentricity_deriv, double &highest_e_order_term) const
 Return only the real parts of the complex version of the operator, since only the real part enters the tidal torque and power. More...
 

Static Public Member Functions

static void read_eccentricity_expansion (const std::string &fname)
 Reads the eccentricity expansion coefficients of \(p_{m,s}\). More...
 
static unsigned max_e_order ()
 The maximum eccentricity expansion order for which the expansion is known. More...
 

Private Attributes

unsigned __e_order
 The expansion order in eccentricity to use. More...
 
double __Ummp_inclination
 The inclination with which __Ummp was last filled. More...
 
double __arg_of_periapsis
 The argument of periaspsis set by the last call to configure(). More...
 
std::valarray< std::valarray< double > > __Ummp
 The \(\mathcal{U}_{m,m'}\) quantities defined in Lai (2012). More...
 
std::valarray< std::valarray< double > > __Ummp_deriv
 The derivatives of the \(\mathcal{U}_{m,m'}\) quantities w.r.t. the inclination. More...
 

Static Private Attributes

static EccentricityExpansionCoefficients __pms
 The eccentricity expansion of \(p_{m,s}\). More...
 
static const double __Umm_coef [][3]
 The constant coefficiients in \(\mathcal{U}_{m,m'}\) of Lai (2012). More...
 

Detailed Description

Definition at line 18 of file TidalPotentialTerms.h.

Member Function Documentation

◆ change_e_order()

void Evolve::TidalPotentialTerms::change_e_order ( unsigned  new_e_order)
inline

Change the eccentricity expansion order.

Definition at line 52 of file TidalPotentialTerms.h.

◆ configure()

void Evolve::TidalPotentialTerms::configure ( double  inclination,
double  arg_of_periapsis = 0 
)

Set the inclination relative to the orbit.

Definition at line 42 of file TidalPotentialTerms.cpp.

◆ max_e_order()

static unsigned Evolve::TidalPotentialTerms::max_e_order ( )
inlinestatic

The maximum eccentricity expansion order for which the expansion is known.

Definition at line 127 of file TidalPotentialTerms.h.

◆ operator()() [1/2]

void Evolve::TidalPotentialTerms::operator() ( double  e,
int  m,
int  mp,
std::complex< double > &  no_deriv,
std::complex< double > &  inclination_deriv,
std::complex< double > &  eccentricity_deriv,
std::complex< double > &  highest_e_order_term 
) const

Calculates \(\sum_s W_{2,s}D_{m,s}(\Theta)p_{s,m'}\) (see documentation) and its derivatives w.r.t. e and \(\Theta\).

fill_Umm should already have been called with the appropriate inclination and argument of periapsis.

Parameters
eThe eccentricity.
mThe m index.
mpThe m' index.
no_derivSet to the undifferentiated value.
inclination_derivSet to the inclination derivative.
eccentricity_derivSet to the eccentricity_derivative.
highest_e_order_termThe contribution of only the term with the highest eccentricity power. Useful for detemining when the expansion order should be increased.

Definition at line 121 of file TidalPotentialTerms.cpp.

◆ operator()() [2/2]

void Evolve::TidalPotentialTerms::operator() ( double  e,
int  m,
int  mp,
double &  no_deriv,
double &  inclination_deriv,
double &  eccentricity_deriv,
double &  highest_e_order_term 
) const

Return only the real parts of the complex version of the operator, since only the real part enters the tidal torque and power.

Parameters
eThe eccentricity.
mThe m index.
mpThe m' index.
no_derivSet to the undifferentiated value.
inclination_derivSet to the inclination derivative.
eccentricity_derivSet to the eccentricity_derivative.
highest_e_order_termThe contribution of only the term with the highest eccentricity power. Useful for detemining when the expansion order should be increased.

Definition at line 164 of file TidalPotentialTerms.cpp.

◆ read_eccentricity_expansion()

static void Evolve::TidalPotentialTerms::read_eccentricity_expansion ( const std::string &  fname)
inlinestatic

Reads the eccentricity expansion coefficients of \(p_{m,s}\).

The given file should have been generated by tabulate_eccentricity_expansion_coefficients.py.

Definition at line 122 of file TidalPotentialTerms.h.

Member Data Documentation

◆ __arg_of_periapsis

double Evolve::TidalPotentialTerms::__arg_of_periapsis
private

The argument of periaspsis set by the last call to configure().

Definition at line 37 of file TidalPotentialTerms.h.

◆ __e_order

unsigned Evolve::TidalPotentialTerms::__e_order
private

The expansion order in eccentricity to use.

Definition at line 21 of file TidalPotentialTerms.h.

◆ __pms

EccentricityExpansionCoefficients Evolve::TidalPotentialTerms::__pms
staticprivate

The eccentricity expansion of \(p_{m,s}\).

Definition at line 24 of file TidalPotentialTerms.h.

◆ __Umm_coef

const double Evolve::TidalPotentialTerms::__Umm_coef
staticprivate
Initial value:
={
{
std::sqrt(3.0 * M_PI / 10.0) / 4.0,
-std::sqrt(6.0 * M_PI / 5.0) / 4.0,
std::sqrt(3.0 * M_PI / 10.0) / 4.0
},
{
-std::sqrt(3.0 * M_PI / 10.0) / 2.0,
-std::sqrt(6.0 * M_PI / 5.0) / 2.0,
std::sqrt(3.0 * M_PI / 10.0) / 2.0
},
{
3.0 * std::sqrt(M_PI / 5.0) / 4.0,
-std::sqrt(M_PI / 5.0) / 2.0,
3.0 * std::sqrt(M_PI / 5.0) / 4.0
},
{
-std::sqrt(3.0 * M_PI / 10.0) / 2.0,
std::sqrt(6.0 * M_PI / 5.0) / 2.0,
std::sqrt(3.0 * M_PI / 10.0) / 2.0
},
{
std::sqrt(3.0 * M_PI / 10.0) / 4.0,
-std::sqrt(6.0 * M_PI / 5.0) / 4.0,
std::sqrt(3.0 * M_PI / 10.0) / 4.0
}
}

The constant coefficiients in \(\mathcal{U}_{m,m'}\) of Lai (2012).

The first index is m+2 (since m starts from -2) and the second index is m'/2+1 since the only allowed values are -2, 0 and 1.

Definition at line 31 of file TidalPotentialTerms.h.

◆ __Ummp

std::valarray< std::valarray<double> > Evolve::TidalPotentialTerms::__Ummp
private

The \(\mathcal{U}_{m,m'}\) quantities defined in Lai (2012).

Definition at line 41 of file TidalPotentialTerms.h.

◆ __Ummp_deriv

std::valarray< std::valarray<double> > Evolve::TidalPotentialTerms::__Ummp_deriv
private

The derivatives of the \(\mathcal{U}_{m,m'}\) quantities w.r.t. the inclination.

Definition at line 41 of file TidalPotentialTerms.h.

◆ __Ummp_inclination

double Evolve::TidalPotentialTerms::__Ummp_inclination
private

The inclination with which __Ummp was last filled.

Definition at line 34 of file TidalPotentialTerms.h.


The documentation for this class was generated from the following files: