Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
Star::InterpolatedEvolutionStar Class Reference
+ Inheritance diagram for Star::InterpolatedEvolutionStar:
+ Collaboration diagram for Star::InterpolatedEvolutionStar:

Public Member Functions

 InterpolatedEvolutionStar (double mass, double feh, double wind_strength, double wind_saturation_frequency, double diff_rot_coupling_timescale, const StellarEvolution::Interpolator &interpolator)
 
unsigned number_zones () const
 The number of zones the body consists of. More...
 
Evolve::DissipatingZonezone (unsigned zone_index)
 See Evolve::DissipatingBody::zone(). More...
 
const EvolvingStellarEnvelopeenvelope () const
 The envelope of the star - inmodifiable. More...
 
EvolvingStellarEnvelopeenvelope ()
 The envelope of the star - modifiable. More...
 
const EvolvingStellarCorecore () const
 The core of the star. More...
 
EvolvingStellarCorecore ()
 The core of the star. More...
 
const Evolve::DissipatingZonezone (unsigned zone_index) const
 See Evolve::DissipatingBody::zone(). More...
 
double lifetime () const
 The lifetime of the star (where tracks end). More...
 
double luminosity (double age) const
 The luminosity of the star at the given age. More...
 
 ~InterpolatedEvolutionStar ()
 Cleanup after the star. More...
 
virtual void reached_critical_age (double age)
 Change the star as necessary at the given age. More...
 
virtual double next_stop_age () const
 The next age when the evolution needs to be stopped for a change in one of the bodies. More...
 
virtual void select_interpolation_region (double age) const
 Prepare the stellar quantities for interpolation around the given age. More...
 
- Public Member Functions inherited from Star::SaturatingSkumanichWindBody
 SaturatingSkumanichWindBody (double wind_strength, double saturation_frequency)
 
double angular_momentum_loss (Evolve::Dissipation::QuantityEntry entry=Evolve::Dissipation::NO_DERIV) const
 See DissipatingBody::angular_momentum_loss(). More...
 
double saturation_frequency ()
 The frequency at which the wind loss saturates in rad/day. More...
 
void detect_saturation ()
 Sets the saturation based on the currently configured spin frequency. More...
 
bool saturated ()
 Is the wind loss currently saturated? More...
 
void saturation_freq_crossed (short deriv_sign)
 Called by the stopping condition monitoring wind saturation. More...
 
virtual void add_to_evolution ()
 Appends the state defined by last configure(), to the evolution. More...
 
virtual void rewind_evolution (unsigned nsteps)
 Discards the last steps from the evolution. More...
 
virtual void reset_evolution ()
 Discards all evolution. More...
 
virtual Evolve::CombinedStoppingConditionstopping_conditions (Evolve::BinarySystem &system, bool primary)
 Conditions detecting the next possible discontinuities in the evolution due to this body. More...
 
const std::list< bool > & wind_saturation_evolution () const
 The tabulated wind saturation states so far. More...
 
void spin_jumped ()
 Resets its saturation state after a discontinous spin jump. More...
 
- Public Member Functions inherited from Evolve::DissipatingBody
 DissipatingBody ()
 Some initializations for new objects. More...
 
void lock_zone_spin (unsigned zone_index, int orbital_frequency_multiplier, int spin_frequency_multiplier)
 
void unlock_zone_spin (unsigned zone_index, short direction)
 Releases the given zone from a spin-orbit lock. More...
 
unsigned number_locked_zones () const
 The number of zones currently in a spin-orbit lock. More...
 
Eigen::Vector3d nontidal_torque (unsigned zone_index, Dissipation::QuantityEntry deriv=Dissipation::NO_DERIV, int deriv_zone=0) const
 External torque acting on a single zone (last calculate_torques_power()). More...
 
const Eigen::Vector3d & tidal_torque (unsigned zone_index, bool above, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 Tidal torque acting on the given zone (last calculate_torques_power()). More...
 
double tidal_power (unsigned zone_index, bool above, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 Tidal power dissipated in the given zone. More...
 
void set_above_lock_fractions (std::valarray< Eigen::VectorXd > &above_lock_fractions)
 Corrects the tidal orbit energy gain and angular momentum gain for locked zones. More...
 
double tidal_orbit_power (Dissipation::QuantityEntry entry=Dissipation::NO_DERIV, unsigned deriv_zone_index=0, const Eigen::VectorXd &above_lock_fraction_deriv=Eigen::VectorXd()) const
 Rate of increase of the orbital energy due to tides in this body (last calculate_torques_power()). More...
 
Eigen::Vector3d tidal_orbit_torque (Dissipation::QuantityEntry deriv=Dissipation::NO_DERIV, unsigned deriv_zone_index=0, const Eigen::VectorXd &above_lock_fraction_deriv=Eigen::VectorXd()) const
 The torque on the orbit due to tidal dissipation in the body. More...
 
Eigen::Vector3d tidal_orbit_torque (const DissipatingZone &reference_zone, Dissipation::QuantityEntry deriv=Dissipation::NO_DERIV, unsigned deriv_zone_index=0, const Eigen::VectorXd &above_lock_fraction_deriv=Eigen::VectorXd()) const
 Same as tidal_orbit_torque(Dissipation::QuantityEntry, unsigned, const Eigen::VectorXd &) but allow specifying the zone whose coordinate system to use. More...
 
virtual Eigen::Vector3d angular_momentum_coupling (unsigned top_zone_index, Dissipation::QuantityEntry deriv=Dissipation::NO_DERIV, bool with_respect_to_top=false) const =0
 Coupling torque for two neighboring zones in the coordinate system of the top zone. More...
 
virtual double angular_momentum_loss (Dissipation::QuantityEntry deriv=Dissipation::NO_DERIV) const =0
 Rate of angular momentum loss by the top zone of the body and its derivatives. More...
 
double radius (int deriv_order=0) const
 The current radius or its derivative with age of the body. More...
 
double mass () const
 The mass of the body (constant with age). More...
 
double spin_frequency () const
 The surface spin freuqency of the body. More...
 
double surface_lock_frequency () const
 Angular velocity of the surface zone when locked (assumed constant). More...
 
void set_surface_lock_frequency (double frequency)
 Sets the frequency at which the surface is locked (if any). More...
 
virtual void change_e_order (unsigned new_e_order, BinarySystem &system, bool primary)
 Change the eccentricity expansion order for all dissipative zones. More...
 
virtual ~DissipatingBody ()
 Virtual destructor. More...
 
- Public Member Functions inherited from Star::ExponentialDecayDiffRotBody
 ExponentialDecayDiffRotBody (double coupling_timescale)
 Construct a body with default differential rotatino torque. More...
 
virtual void configure (bool initialize, double age, double companion_mass, double semimajor, double eccentricity, const double *spin_angmom, const double *inclination=NULL, const double *periapsis=NULL, bool locked_surface=false, bool zero_outer_inclination=false, bool zero_outer_periapsis=false)
 See DissipatingBody::configure(). More...
 
Eigen::Vector3d angular_momentum_coupling (unsigned top_zone_index, Evolve::Dissipation::QuantityEntry entry=Evolve::Dissipation::NO_DERIV, bool with_respect_to_top=false) const
 See DissipatingBody::angular_momentum_coupling(). More...
 

Private Attributes

const StellarEvolution::EvolvingStellarQuantity__luminosity
 The luminosity of the star in \(L_\odot\) as a function of age in Gyr. More...
 
double __lifetime
 The age at which the star leaves the main sequence in Gyrs. More...
 
EvolvingStellarEnvelope __envelope
 The surface zone of the star (the entire star if high mass). More...
 
EvolvingStellarCore __core
 The core of the star (NULL if high mass). More...
 

Detailed Description

Definition at line 21 of file EvolvingStar.h.

Constructor & Destructor Documentation

◆ InterpolatedEvolutionStar()

Star::InterpolatedEvolutionStar::InterpolatedEvolutionStar ( double  mass,
double  feh,
double  wind_strength,
double  wind_saturation_frequency,
double  diff_rot_coupling_timescale,
const StellarEvolution::Interpolator interpolator 
)
inline
Parameters
massMass of the star
fehThe [Fe/H] of the star
wind_strengthThe strength of the wind.
wind_saturation_frequencyThe frequency at which the wind loss saturates in rad/day.
diff_rot_coupling_timescaleThe timescale for differential rotation coupling.
interpolatorA StellarEvolution interpolator.

Definition at line 43 of file EvolvingStar.h.

◆ ~InterpolatedEvolutionStar()

Star::InterpolatedEvolutionStar::~InterpolatedEvolutionStar ( )
inline

Cleanup after the star.

Definition at line 121 of file EvolvingStar.h.

Member Function Documentation

◆ core() [1/2]

const EvolvingStellarCore& Star::InterpolatedEvolutionStar::core ( ) const
inline

The core of the star.

Definition at line 100 of file EvolvingStar.h.

◆ core() [2/2]

EvolvingStellarCore& Star::InterpolatedEvolutionStar::core ( )
inline

The core of the star.

Definition at line 103 of file EvolvingStar.h.

◆ envelope() [1/2]

const EvolvingStellarEnvelope& Star::InterpolatedEvolutionStar::envelope ( ) const
inline

The envelope of the star - inmodifiable.

Definition at line 94 of file EvolvingStar.h.

◆ envelope() [2/2]

EvolvingStellarEnvelope& Star::InterpolatedEvolutionStar::envelope ( )
inline

The envelope of the star - modifiable.

Definition at line 97 of file EvolvingStar.h.

◆ lifetime()

double Star::InterpolatedEvolutionStar::lifetime ( ) const
inline

The lifetime of the star (where tracks end).

Definition at line 115 of file EvolvingStar.h.

◆ luminosity()

double Star::InterpolatedEvolutionStar::luminosity ( double  age) const
inline

The luminosity of the star at the given age.

Definition at line 118 of file EvolvingStar.h.

◆ next_stop_age()

virtual double Star::InterpolatedEvolutionStar::next_stop_age ( ) const
inlinevirtual

The next age when the evolution needs to be stopped for a change in one of the bodies.

Reimplemented from Evolve::DissipatingBody.

Definition at line 134 of file EvolvingStar.h.

◆ number_zones()

unsigned Star::InterpolatedEvolutionStar::number_zones ( ) const
inlinevirtual

The number of zones the body consists of.

Implements Evolve::DissipatingBody.

Definition at line 82 of file EvolvingStar.h.

◆ reached_critical_age()

virtual void Star::InterpolatedEvolutionStar::reached_critical_age ( double  age)
inlinevirtual

Change the star as necessary at the given age.

Handles things like interpolation discontinuities.

Reimplemented from Evolve::DissipatingBody.

Definition at line 126 of file EvolvingStar.h.

◆ select_interpolation_region()

virtual void Star::InterpolatedEvolutionStar::select_interpolation_region ( double  age) const
inlinevirtual

Prepare the stellar quantities for interpolation around the given age.

After calling this method, requesting values or derivatives outside the range of the continuous region containing this age (see ::discontinuities) fails an assert.

Definition at line 144 of file EvolvingStar.h.

◆ zone() [1/2]

Evolve::DissipatingZone& Star::InterpolatedEvolutionStar::zone ( unsigned  zone_index)
inlinevirtual

See Evolve::DissipatingBody::zone().

Implements Evolve::DissipatingBody.

Definition at line 85 of file EvolvingStar.h.

◆ zone() [2/2]

const Evolve::DissipatingZone& Star::InterpolatedEvolutionStar::zone ( unsigned  zone_index) const
inlinevirtual

See Evolve::DissipatingBody::zone().

Implements Evolve::DissipatingBody.

Definition at line 106 of file EvolvingStar.h.

Member Data Documentation

◆ __core

EvolvingStellarCore Star::InterpolatedEvolutionStar::__core
private

The core of the star (NULL if high mass).

Definition at line 40 of file EvolvingStar.h.

◆ __envelope

EvolvingStellarEnvelope Star::InterpolatedEvolutionStar::__envelope
private

The surface zone of the star (the entire star if high mass).

Definition at line 37 of file EvolvingStar.h.

◆ __lifetime

double Star::InterpolatedEvolutionStar::__lifetime
private

The age at which the star leaves the main sequence in Gyrs.

Definition at line 34 of file EvolvingStar.h.

◆ __luminosity

const StellarEvolution::EvolvingStellarQuantity* Star::InterpolatedEvolutionStar::__luminosity
private

The luminosity of the star in \(L_\odot\) as a function of age in Gyr.

Since the luminosity does not enter in the equations solved it might not be defined. If that is the case, this member should be NULL.

Definition at line 31 of file EvolvingStar.h.


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