9 #ifndef __EVOLVING_STAR_H 10 #define __EVOLVING_STAR_H 12 #include "../Core/SharedLibraryExportMacros.h" 15 #include "../StellarEvolution/Interpolator.h" 54 double wind_saturation_frequency,
57 double diff_rot_coupling_timescale,
63 wind_saturation_frequency),
66 __lifetime(__luminosity->range_high()),
74 __core(
std::max(__envelope.min_interp_age(),
87 assert(zone_index<=1);
89 if(zone_index == 0)
return __envelope;
108 assert(zone_index<=1);
110 if(zone_index==0)
return __envelope;
118 double luminosity(
double age)
const {
return (*__luminosity)(age);}
Declaration of the class representing stellar cores.
double lifetime() const
The lifetime of the star (where tracks end).
RADIUS
The derivative w.r.t. the radius of the body in .
Declares a DissipatingBody with exponentially decaying differential rotation coupling.
double core_formation_age(const EvolvingStar *star)
The age at which the core of a star forms.
EvolvingStellarCore __core
The core of the star (NULL if high mass).
const Evolve::DissipatingZone & zone(unsigned zone_index) const
See Evolve::DissipatingBody::zone().
EvolvingStellarCore & core()
The core of the star.
Declares a class representing convective zones in low mass evolving stars or the whole star for high ...
const int LUM
Identifier for the stellar luminosity as an interpolation quantity.
Evolve::DissipatingZone & zone(unsigned zone_index)
See Evolve::DissipatingBody::zone().
Radiative core for low mass evolving stars.
EvolvingStellarEnvelope __envelope
The surface zone of the star (the entire star if high mass).
const EvolvingStellarCore & core() const
The core of the star.
A class for stellar properties that depend on age.
virtual void select_interpolation_region(double age) const
Prepare the zone quantities for interpolation around the given age.
A class that interpolates among stellar evolution tracks.
double next_stop_age() const
The next age when the evolution needs to be stopped for a change in one of the bodies.
Decrales a body subject to angular momentum loss .
A layer of a system body for which the tidal bulge is not exactly in phase with the tidal potential...
InterpolatedEvolutionStar(double mass, double feh, double wind_strength, double wind_saturation_frequency, double diff_rot_coupling_timescale, const StellarEvolution::Interpolator &interpolator)
void reached_critical_age(double age)
Change the body as necessary at the given age.
Surface convective zone for low mass evolving stars or the entire star for high mass stars...
const StellarEvolution::EvolvingStellarQuantity * __luminosity
The luminosity of the star in as a function of age in Gyr.
unsigned number_zones() const
The number of zones the body consists of.
Moment of inertia of the radiative zone of the star (low mass stars only) in .
const EvolvingStellarEnvelope & envelope() const
The envelope of the star - inmodifiable.
Moment of inertia of the convective zone of the star (low mass stars only) in .
~InterpolatedEvolutionStar()
Cleanup after the star.
double __lifetime
The age at which the star leaves the main sequence in Gyrs.
virtual void reached_critical_age(double age)
Change the star as necessary at the given age.
EvolvingStellarEnvelope & envelope()
The envelope of the star - modifiable.
Radius of the stellar core in (low mass stars only).
double luminosity(double age) const
The luminosity of the star at the given age.
A DissipatingBody which loses angular momentum at a rate .
A body with differential rotation torque between two zones given by: .
Mass of the stellar core in (low mass stars only).
virtual double next_stop_age() const
The next age when the evolution needs to be stopped for a change in one of the bodies.
virtual void select_interpolation_region(double age) const
Prepare the stellar quantities for interpolation around the given age.