SlowDown Algorithmic Regularization (SDAR)
Algorithmic Regularization with slowdown method for integrating few-body motions
COMM::Binary Class Reference

Binary parameter class. More...

#include <binary_tree.h>

Inheritance diagram for COMM::Binary:
[legend]
Collaboration diagram for COMM::Binary:
[legend]

Public Member Functions

template<class Tpi , class Tpj >
void particleToSemiEccPeriod (const Tpi &_p1, const Tpj &_p2, const Float _G)
 calcualte semi, ecc and period More...
 
Float calcEccAnomaly (const Float _r)
 calculate eccentric anomaly from separation (0-pi) More...
 
template<class Tptcl >
void calcOrbit (const Tptcl &_p1, const Tptcl &_p2, const Float _G)
 calculate kepler Orbit from particles More...
 
template<class Tptcl >
void calcParticles (Tptcl &_p1, Tptcl &_p2, const Float &_G)
 calculate two components from kepler Orbit More...
 
void calcSemiFromPeriod (const Float &_G)
 from period calculate semi-major axis More...
 
template<class Tptcl >
void calcParticlesEcca (Tptcl &_p1, Tptcl &_p2, const Float _ecca, const Float _G) const
 calculate two components from kepler Orbit with input eccentricity anomaly More...
 
void rotateToOriginalFrame (Float *_vec)
 rotate position vector from binary rest-frame to original frame based on three angles More...
 
void evolve (const Float _dt)
 Solve kepler motion for dt. More...
 
void print (std::ostream &_os) const
 
void printColumn (std::ostream &_fout, const int _width=20)
 print data of class members using column style More...
 
void writeBinary (FILE *_fp) const
 write class data to file with binary format More...
 
void readBinary (FILE *_fin)
 read class data to file with binary format More...
 
void writeAscii (std::ostream &_fout) const
 write class data to file with ASCII format More...
 
void readAscii (std::istream &_fin)
 read class data to file with ASCII format More...
 

Static Public Member Functions

template<class Tptcl >
static void orbitToParticle (Tptcl &_p1, Tptcl &_p2, const Binary &_bin, const Float &_ecca, const Float _G)
 Orbit to position and velocity. More...
 
template<class Tptcl >
static void particleToOrbit (Binary &_bin, const Tptcl &_p1, const Tptcl &_p2, const Float _G)
 position velocity to orbit More...
 
static Float periodToSemi (const Float &_period, const Float &_mtot, const Float &_G)
 from period calculate semi-major axis More...
 
static Float semiToPeriod (const Float &_semi, const Float &_mtot, const Float &_G)
 from semi-major axis calculate period; More...
 
template<class Tpi , class Tpj >
static void particleToSemiEcc (Float &_semi, Float &_ecc, Float &_r, Float &_rv, const Tpi &_p1, const Tpj &_p2, const Float _G)
 position velocity to orbit semi-major axis and eccentricity More...
 
static Float calcMeanAnomaly (const Float _ecca, const Float _ecc)
 calculate mean anomaly from eccentric anomaly (0-pi) More...
 
static Float calcEccAnomaly (const Float _mean_anomaly, const Float _ecc)
 calculate eccentric anomaly from mean anomaly More...
 
static void solveKepler (Binary &_bin, const Float _dt)
 solve kepler orbit after dt More...
 
static void printColumnTitle (std::ostream &_fout, const int _width=20)
 print titles of class members using column style More...
 

Public Attributes

Float semi
 
Float ecc
 
Float incline
 
Float rot_horizon
 
Float rot_self
 
Float t_peri
 
Float period
 
Float ecca
 
Float m1
 
Float m2
 
Float r
 
Vector3< Floatam
 
Float stab
 

Detailed Description

Binary parameter class.

Member Function Documentation

◆ calcEccAnomaly() [1/2]

static Float COMM::Binary::calcEccAnomaly ( const Float  _mean_anomaly,
const Float  _ecc 
)
inlinestatic

calculate eccentric anomaly from mean anomaly

◆ calcEccAnomaly() [2/2]

Float COMM::Binary::calcEccAnomaly ( const Float  _r)
inline

calculate eccentric anomaly from separation (0-pi)

Parameters
[in]_rseperation
Returns
eccentric anomaly
Here is the caller graph for this function:

◆ calcMeanAnomaly()

static Float COMM::Binary::calcMeanAnomaly ( const Float  _ecca,
const Float  _ecc 
)
inlinestatic

calculate mean anomaly from eccentric anomaly (0-pi)

Parameters
[in]_eccaeccentric anomaly
[in]_ecceccentricity
Returns
mean anomaly

◆ calcOrbit()

template<class Tptcl >
void COMM::Binary::calcOrbit ( const Tptcl &  _p1,
const Tptcl &  _p2,
const Float  _G 
)
inline

calculate kepler Orbit from particles

Parameters
[out]_p1particle 1
[out]_p2particle 2
[in]_Ggravitational constant
Here is the call graph for this function:

◆ calcParticles()

template<class Tptcl >
void COMM::Binary::calcParticles ( Tptcl &  _p1,
Tptcl &  _p2,
const Float _G 
)
inline

calculate two components from kepler Orbit

Parameters
[out]_p1particle 1
[out]_p2particle 2
[in]_Ggravitational constant
Here is the call graph for this function:

◆ calcParticlesEcca()

template<class Tptcl >
void COMM::Binary::calcParticlesEcca ( Tptcl &  _p1,
Tptcl &  _p2,
const Float  _ecca,
const Float  _G 
) const
inline

calculate two components from kepler Orbit with input eccentricity anomaly

Parameters
[out]_p1particle 1
[out]_p2particle 2
[in]_eccaeccentricity anomaly
[in]_Ggravitational constant
Here is the call graph for this function:

◆ calcSemiFromPeriod()

void COMM::Binary::calcSemiFromPeriod ( const Float _G)
inline

from period calculate semi-major axis

Parameters
[in]_Ggravitational constant
Here is the call graph for this function:

◆ evolve()

void COMM::Binary::evolve ( const Float  _dt)
inline

Solve kepler motion for dt.

Evolve current orbit for dt

Parameters
[in]_dtevolution time
Here is the call graph for this function:

◆ orbitToParticle()

template<class Tptcl >
static void COMM::Binary::orbitToParticle ( Tptcl &  _p1,
Tptcl &  _p2,
const Binary _bin,
const Float _ecca,
const Float  _G 
)
inlinestatic

Orbit to position and velocity.

refer to the P3T code developed by Iwasawa M.

Parameters
[out]_p1particle 1
[out]_p2particle 2
[in]_binbinary parameter
[in]_eccaeccentric anomaly (-pi, pi)
[in]_Ggravitational constant
Here is the call graph for this function:
Here is the caller graph for this function:

◆ particleToOrbit()

template<class Tptcl >
static void COMM::Binary::particleToOrbit ( Binary _bin,
const Tptcl &  _p1,
const Tptcl &  _p2,
const Float  _G 
)
inlinestatic

position velocity to orbit

Here is the caller graph for this function:

◆ particleToSemiEcc()

template<class Tpi , class Tpj >
static void COMM::Binary::particleToSemiEcc ( Float _semi,
Float _ecc,
Float _r,
Float _rv,
const Tpi &  _p1,
const Tpj &  _p2,
const Float  _G 
)
inlinestatic

position velocity to orbit semi-major axis and eccentricity

Parameters
[out]_semisemi-major axis
[out]_ecceccentricity
[out]_rdistance between two particles
[out]_rvrelative position dot velocity
[in]_p1particle 1
[in]_p2particle 2
[in]_Ggravitational constant
Here is the caller graph for this function:

◆ particleToSemiEccPeriod()

template<class Tpi , class Tpj >
void COMM::Binary::particleToSemiEccPeriod ( const Tpi &  _p1,
const Tpj &  _p2,
const Float  _G 
)
inline

calcualte semi, ecc and period

Parameters
[in,out]_p1particle 1
[in,out]_p2particle 2
[in]_Ggravitational constant
Here is the call graph for this function:

◆ periodToSemi()

static Float COMM::Binary::periodToSemi ( const Float _period,
const Float _mtot,
const Float _G 
)
inlinestatic

from period calculate semi-major axis

Parameters
[in]_periodperiod
[in]_mtottotal mass of binary
[in]_Ggravitational constant
Here is the caller graph for this function:

◆ print()

void COMM::Binary::print ( std::ostream &  _os) const
inline

◆ printColumn()

void COMM::Binary::printColumn ( std::ostream &  _fout,
const int  _width = 20 
)
inline

print data of class members using column style

print data of class members in one line for column style. Notice no newline is printed at the end

Parameters
[out]_foutstd::ostream output object
[in]_widthprint width (defaulted 20)

◆ printColumnTitle()

static void COMM::Binary::printColumnTitle ( std::ostream &  _fout,
const int  _width = 20 
)
inlinestatic

print titles of class members using column style

print titles of class members in one line for column style

Parameters
[out]_foutstd::ostream output object
[in]_widthprint width (defaulted 20)
Here is the caller graph for this function:

◆ readAscii()

void COMM::Binary::readAscii ( std::istream &  _fin)
inline

read class data to file with ASCII format

Parameters
[in]_finstd::istream file for input

◆ readBinary()

void COMM::Binary::readBinary ( FILE *  _fin)
inline

read class data to file with binary format

Parameters
[in]_finFILE type file for reading

◆ rotateToOriginalFrame()

void COMM::Binary::rotateToOriginalFrame ( Float _vec)
inline

rotate position vector from binary rest-frame to original frame based on three angles

Parameters
[out]_vecvector to rotate
Here is the call graph for this function:

◆ semiToPeriod()

static Float COMM::Binary::semiToPeriod ( const Float _semi,
const Float _mtot,
const Float _G 
)
inlinestatic

from semi-major axis calculate period;

Parameters
[in]_semisemi-major axis
[in]_mtottotal mass of binary
[in]_Ggravitational constant
Here is the caller graph for this function:

◆ solveKepler()

static void COMM::Binary::solveKepler ( Binary _bin,
const Float  _dt 
)
inlinestatic

solve kepler orbit after dt

refer to the P3T code developed by Iwasawa M.

Parameters
[in,out]_binbinary orbit
[in]_dtevolution time
Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeAscii()

void COMM::Binary::writeAscii ( std::ostream &  _fout) const
inline

write class data to file with ASCII format

Parameters
[in]_foutstd:osteram file for output

◆ writeBinary()

void COMM::Binary::writeBinary ( FILE *  _fp) const
inline

write class data to file with binary format

Parameters
[in]_fpFILE type file for output

Member Data Documentation

◆ am

Vector3<Float> COMM::Binary::am

◆ ecc

Float COMM::Binary::ecc

◆ ecca

Float COMM::Binary::ecca

◆ incline

Float COMM::Binary::incline

◆ m1

Float COMM::Binary::m1

◆ m2

Float COMM::Binary::m2

◆ period

Float COMM::Binary::period

◆ r

Float COMM::Binary::r

◆ rot_horizon

Float COMM::Binary::rot_horizon

◆ rot_self

Float COMM::Binary::rot_self

◆ semi

Float COMM::Binary::semi

◆ stab

Float COMM::Binary::stab

◆ t_peri

Float COMM::Binary::t_peri

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