Program Listing for File EccentricOrbit.h¶
↰ Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/unit_tests/testEvolve/EccentricOrbit.h)
#ifndef __UNIT_TESTS_ECCENTRIC_ORBIT_H
#define __UNIT_TESTS_ECCENTRIC_ORBIT_H
#include "../../Core/Common.h"
#include "../../Core/AstronomicalConstants.h"
#include "Eigen/Dense"
#include <gsl/gsl_errno.h>
#include <gsl/gsl_roots.h>
#include <iostream>
#include <iomanip>
namespace Evolve {
class EccentricOrbit {
private:
double
__primary_mass,
__secondary_mass,
__semimajor,
__eccentricity;
double reduced_mass() const;
public:
EccentricOrbit(
double primary_mass=Core::NaN,
double secondary_mass=Core::NaN,
double semimajor=Core::NaN,
double eccentricity=Core::NaN
) :
__primary_mass(primary_mass),
__secondary_mass(secondary_mass),
__semimajor(semimajor),
__eccentricity(eccentricity)
{}
double primary_mass() const {return __primary_mass;}
double &primary_mass() {return __primary_mass;}
double secondary_mass() const {return __secondary_mass;}
double &secondary_mass() {return __secondary_mass;}
double semimajor() const {return __semimajor;}
double &semimajor() {return __semimajor;}
double eccentricity() const {return __eccentricity;}
double &eccentricity() {return __eccentricity;}
double eccentric_anomaly(
double orbital_phase
) const;
Eigen::Vector3d secondary_position(
double orbital_phase
) const;
double orbital_angmom() const;
double orbital_energy() const;
double orbital_period() const;
}; //End EccentricOrbit class
}//End Evolve namespace
#endif