6 std::list<double>::const_iterator
10 const std::list<double> &tabulation_ages
15 static std::vector< std::list<double> >
19 std::list<double>::const_iterator t_i=tabulation_ages.begin();
20 t_i!=tabulation_ages.end();
25 std::cerr <<
"Tabulating quantities at age = " << age << std::endl;
31 radiative.moment_of_inertia(age)
34 quantities[
OutCol::RRAD].push_back(radiative.outer_radius(age));
35 quantities[
OutCol::MRAD].push_back(radiative.outer_mass(age));
40 radiative.moment_of_inertia(age, 1)
46 radiative.outer_radius(age, 1)
49 radiative.outer_mass(age, 1)
55 radiative.moment_of_inertia(age, 2)
58 radiative.outer_radius(age, 2)
69 const std::list<double> &required_ages
73 std::cerr <<
"Fixing no evolution output." << std::endl;
75 static std::list<double> age_list;
77 std::list<double>::const_iterator
78 required_ages_iter=required_ages.begin();
79 for(
double age=start_age; age<=end_age; age+=timestep) {
80 for(;required_ages_iter!=required_ages.end() &&
81 *required_ages_iter<age; ++required_ages_iter) {
83 std::cerr <<
"Adding required age: " 84 << *required_ages_iter
87 age_list.push_back(*required_ages_iter);
90 std::cerr <<
"Adding max step age: " 91 << *required_ages_iter
94 age_list.push_back(age);
97 std::cerr <<
"Adding final age: " << end_age << std::endl;
99 age_list.push_back(end_age);
120 const InterpolatedEvolutionStar &star,
124 const std::list<double> &required_ages
127 __mode(solver.mode_evolution().begin()),
135 &radiative=star.zone(1);
172 radiative.get_evolution_real(
199 std::min(end_age,
__star.lifetime()),
217 radiative_orientation,
218 convective_orientation,
242 case OutCol::WORB :
return Core::orbital_angular_velocity(
248 case OutCol::LORB :
return Core::orbital_angular_momentum(
static std::list< double >::const_iterator __placeholder_iterator
All undefined entries in __real_iterators are set to this.
Age derivative of MOMENT_OF_INERTIA.
Second derivative of the moment of inertia of the entire star.
The orbital periapsis in the reference frame of the stellar radiative zone in radians.
Age of the system in Gyr.
static std::list< double > __placeholder_list
Location for undefined iterators to point to.
Spin period of the stellar surface in days.
Age derivative of the convective moment of inertia in .
Second derivative of the moment of ivertia of the radiative zone.
Age derivative of the stellar radius in .
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.
The eccentricity of the orbit.
Angular velocity of the stellar surface in rad/day.
Age derivative of the moment of inertia of the entire star in .
The orbital frequency in rad/day.
The number of real valued output quantities.
Second derivative of the core-envelope boundary.
Angular momentum of the radiative zone of the star in (low mass stars only)
Second derivative of the moment of ivertia of the convective zone.
std::list< bool >::const_iterator __wind_saturation
Iterator over the tabulated wind saturation state.
The angle between the stellar core spin and orbital angular momentum in radians.
The angle between the stellar surface spin and orbital angular momentum in radians.
Outer radius boundary of the zone.
Eigen::Vector3d zone_to_zone_transform(const ZoneOrientation &from_zone, const ZoneOrientation &to_zone, const Eigen::Vector3d &vector, Dissipation::QuantityEntry deriv, bool with_respect_to_from)
Transforms a vector betwen the coordinates systems of two zones.
Orientations of zones of bodies in a binary system.
Spin period of the stellar core in days (low mass stars only).
const ConstSolutionIterator & operator++()
Move to the next tabulated point.
Angular velocity of the stellar core in rad/day (low mass stars only).
double real_quantity(OutCol::OutputColumns quantity)
Get a real value quantity for the current step.
Isolates the tags for the output columns.
First age derivative of OUTER_MASS.
virtual double moment_of_inertia(int deriv_order=0) const =0
Moment of inertia of the zone or its age derivative at the age of last configure() call...
Eigen::Vector3d __stellar_angmom
Total angular momentum vector of the star in the reference frame of the surface zone.
A layer of a system body for which the tidal bulge is not exactly in phase with the tidal potential...
Iterates over the tabulated solution after an evolution calculation.
Age derivative of the mass of the radiative core in .
Angular momentum of the entire star in .
std::list< Core::EvolModeType >::const_iterator __mode
Iterator over the tabulated evolution mode.
Age derivative of the radiative moment of inertia in .
Angular momentum of the convective zone of the star in (low mass stars only)
std::vector< std::list< double >::const_iterator > __real_iterators
Iterators to the tabulated real values quantities.
double semimajor_evolution(double orbit_power, double orbit_power_deriv=Core::NaN) const
Returns the rate of evolution of the semimajor axis or one of its derivatives.
Moment of inertia of the radiative zone of the star (low mass stars only) in .
Moment of inertia of the zone.
Moment of inertia of the convective zone of the star (low mass stars only) in .
Outer mass boundary of the zone.
Second age deriv of OUTER_RADIUS.
double __mplanet
The mass of the planet.
const std::list< double > & get_evolution_real(ZoneEvolutionQuantities quantity) const
The tabulated evolution of a real valued quantity so far.
Angular momentum of the zone.
First age deriv of OUTER_RADIUS.
const InterpolatedEvolutionStar & __star
The star in the system.
Luminosity of the star in .
Solves the system of ODEs describing the evolution of a single planet around a single star...
Age second deriv of MOMENT_OF_INERTIA.
double __mstar
The mass of the star.
Radius of the stellar core in (low mass stars only).
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.
OutputColumns
Tags for the possible columns to output.
The orbital periapsis in the reference frame of the stellar convective zone in radians.
The index of the last quantity requiring no orbital evolution.
Defines the SolutionIterator class.
void create_missing_lists(const std::list< double > &tabulation_ages)
Creates lists for non-orbital quantities and sets the corresponding iterators.
Mass of the stellar core in (low mass stars only).
Describes a system of two bodies orbiting each other.
std::list< double >::const_iterator __last_age
One past the last tabulated age.
Semimajor axis of the orbit in AU.
virtual double outer_radius(int deriv_order=0) const =0
Outer radius of the zone or its derivative (per last.
const std::list< double > & evolution_ages() const
The ages at which evolution has been tabulated so far.
const std::vector< std::string > & output_column_names()
Define the names of the output columns.
Total moment of inertia of the star in .