Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
Evolve::ConstSolutionIterator Class Reference

Iterates over the tabulated solution after an evolution calculation. More...

#include <ConstSolutionIterator.h>

+ Collaboration diagram for Evolve::ConstSolutionIterator:

Public Member Functions

 ConstSolutionIterator (const OrbitSolver &solver, const BinarySystem &system, const InterpolatedEvolutionStar &star, double start_age, double end_age, double timestep, const std::list< double > &required_ages=std::list< double >())
 Start iterating over a solution. More...
 
const ConstSolutionIteratoroperator++ ()
 Move to the next tabulated point. More...
 
 operator bool ()
 Did we move past the last tabulated evolution point. More...
 
double real_quantity (OutCol::OutputColumns quantity)
 Get a real value quantity for the current step. More...
 
Core::EvolModeType evolution_mode ()
 Get the evolution mode for the current step. More...
 
bool wind_saturation ()
 Was the wind saturated for the current step? More...
 

Private Member Functions

void create_missing_lists (const std::list< double > &tabulation_ages)
 Creates lists for non-orbital quantities and sets the corresponding iterators. More...
 
void fix_no_evolution (double start_age, double end_age, double timestep, const std::list< double > &required_ages=std::list< double >())
 Handles the case when no evolution was actually calculated. More...
 

Private Attributes

std::vector< std::list< double >::const_iterator > __real_iterators
 Iterators to the tabulated real values quantities. More...
 
std::list< Core::EvolModeType >::const_iterator __mode
 Iterator over the tabulated evolution mode. More...
 
std::list< bool >::const_iterator __wind_saturation
 Iterator over the tabulated wind saturation state. More...
 
std::list< double >::const_iterator __last_age
 One past the last tabulated age. More...
 
double __mstar
 The mass of the star. More...
 
double __mplanet
 The mass of the planet. More...
 
Eigen::Vector3d __stellar_angmom
 Total angular momentum vector of the star in the reference frame of the surface zone. More...
 
const InterpolatedEvolutionStar & __star
 The star in the system. More...
 

Static Private Attributes

static std::list< double > __placeholder_list
 Location for undefined iterators to point to. More...
 
static std::list< double >::const_iterator __placeholder_iterator =__placeholder_list.end()
 All undefined entries in __real_iterators are set to this. More...
 

Detailed Description

Iterates over the tabulated solution after an evolution calculation.

Definition at line 20 of file ConstSolutionIterator.h.

Constructor & Destructor Documentation

◆ ConstSolutionIterator()

Evolve::ConstSolutionIterator::ConstSolutionIterator ( const OrbitSolver solver,
const BinarySystem system,
const InterpolatedEvolutionStar &  star,
double  start_age,
double  end_age,
double  timestep,
const std::list< double > &  required_ages = std::list<double>() 
)

Start iterating over a solution.

Parameters
solverThe solver which calculated the evolution.
systemThe binary system that was evolved.
starThe star that was evolved need modification privileges only if no evolution was calculated.
start_ageThe starting age if no orbit was calculated. Ignored if solver contains an orbit.
end_ageThe starting age if no orbit was calculated. Ignored if solver contains an orbit.
timestepThe time step if no orbit was calculated. Ignored if solver contains an orbit.
required_agesA list of ages for which an output line must be written. Ignored if solver contains an orbit

Definition at line 117 of file ConstSolutionIterator.cpp.

Member Function Documentation

◆ create_missing_lists()

void Evolve::ConstSolutionIterator::create_missing_lists ( const std::list< double > &  tabulation_ages)
private

Creates lists for non-orbital quantities and sets the corresponding iterators.

Parameters
tabulation_agesThe ages at which to tabulate quantities.

Definition at line 9 of file ConstSolutionIterator.cpp.

◆ evolution_mode()

Core::EvolModeType Evolve::ConstSolutionIterator::evolution_mode ( )
inline

Get the evolution mode for the current step.

Definition at line 120 of file ConstSolutionIterator.h.

◆ fix_no_evolution()

void Evolve::ConstSolutionIterator::fix_no_evolution ( double  start_age,
double  end_age,
double  timestep,
const std::list< double > &  required_ages = std::list<double>() 
)
private

Handles the case when no evolution was actually calculated.

Parameters
start_ageThe starting age if no orbit was calculated. Ignored if solver contains an orbit.
end_ageThe starting age if no orbit was calculated. Ignored if solver contains an orbit.
timestepThe time step if no orbit was calculated. Ignored if solver contains an orbit.
required_agesA list of ages for which an output line must be written. Ignored if solver contains an orbit

Definition at line 65 of file ConstSolutionIterator.cpp.

◆ operator bool()

Evolve::ConstSolutionIterator::operator bool ( )
inline

Did we move past the last tabulated evolution point.

Definition at line 114 of file ConstSolutionIterator.h.

◆ operator++()

const ConstSolutionIterator & Evolve::ConstSolutionIterator::operator++ ( )

Move to the next tabulated point.

Definition at line 204 of file ConstSolutionIterator.cpp.

◆ real_quantity()

double Evolve::ConstSolutionIterator::real_quantity ( OutCol::OutputColumns  quantity)

Get a real value quantity for the current step.

Definition at line 225 of file ConstSolutionIterator.cpp.

◆ wind_saturation()

bool Evolve::ConstSolutionIterator::wind_saturation ( )
inline

Was the wind saturated for the current step?

Definition at line 123 of file ConstSolutionIterator.h.

Member Data Documentation

◆ __last_age

std::list<double>::const_iterator Evolve::ConstSolutionIterator::__last_age
private

One past the last tabulated age.

Definition at line 40 of file ConstSolutionIterator.h.

◆ __mode

std::list<Core::EvolModeType>::const_iterator Evolve::ConstSolutionIterator::__mode
private

Iterator over the tabulated evolution mode.

Definition at line 34 of file ConstSolutionIterator.h.

◆ __mplanet

double Evolve::ConstSolutionIterator::__mplanet
private

The mass of the planet.

Definition at line 43 of file ConstSolutionIterator.h.

◆ __mstar

double Evolve::ConstSolutionIterator::__mstar
private

The mass of the star.

Definition at line 43 of file ConstSolutionIterator.h.

◆ __placeholder_iterator

std::list< double >::const_iterator Evolve::ConstSolutionIterator::__placeholder_iterator =__placeholder_list.end()
staticprivate

All undefined entries in __real_iterators are set to this.

Definition at line 31 of file ConstSolutionIterator.h.

◆ __placeholder_list

std::list< double > Evolve::ConstSolutionIterator::__placeholder_list
staticprivate

Location for undefined iterators to point to.

Definition at line 28 of file ConstSolutionIterator.h.

◆ __real_iterators

std::vector< std::list<double>::const_iterator > Evolve::ConstSolutionIterator::__real_iterators
private

Iterators to the tabulated real values quantities.

The order is defined by OutCol::OutputColumns:

Definition at line 25 of file ConstSolutionIterator.h.

◆ __star

const InterpolatedEvolutionStar& Evolve::ConstSolutionIterator::__star
private

The star in the system.

Definition at line 53 of file ConstSolutionIterator.h.

◆ __stellar_angmom

Eigen::Vector3d Evolve::ConstSolutionIterator::__stellar_angmom
private

Total angular momentum vector of the star in the reference frame of the surface zone.

Definition at line 50 of file ConstSolutionIterator.h.

◆ __wind_saturation

std::list<bool>::const_iterator Evolve::ConstSolutionIterator::__wind_saturation
private

Iterator over the tabulated wind saturation state.

Definition at line 37 of file ConstSolutionIterator.h.


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