Program Listing for File TidalPotentialTerms.h¶
↰ Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/Evolve/TidalPotentialTerms.h)
#ifndef __TIDAL_POTENTIAL_TERMS_H
#define __TIDAL_POTENTIAL_TERMS_H
#include <cmath>
#include <valarray>
#include "EccentricityExpansionCoefficients.h"
#include "../Core/Common.h"
namespace Evolve {
class LIB_PUBLIC TidalPotentialTerms {
private:
unsigned __e_order;
static EccentricityExpansionCoefficients __pms;
static const double __Umm_coef[][3];
double __Ummp_inclination;
double __arg_of_periapsis;
std::valarray< std::valarray<double> >
__Ummp,
__Ummp_deriv;
public:
TidalPotentialTerms();
void change_e_order(unsigned new_e_order)
{__e_order = new_e_order;}
unsigned current_e_order() const
{return __e_order;}
void configure(double inclination, double arg_of_periapsis = 0);
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;
void operator()(
double e,
int m,
int mp,
double &no_deriv,
double &inclination_deriv,
double &eccentricity_deriv,
double &highest_e_order_term
) const;
static void read_eccentricity_expansion(const std::string &fname)
{__pms.read(fname);}
static unsigned max_e_order()
{return __pms.max_e_power();}
}; //End TidalPotentialTerms class.
} //End Evolve namespace
#endif