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

A skumanich wind body with a single zone dissipative to only a single tidal term. More...

#include <SingleTidalTermBody.h>

+ Inheritance diagram for Evolve::SingleTidalTermBody:
+ Collaboration diagram for Evolve::SingleTidalTermBody:

Public Member Functions

 SingleTidalTermBody (double wind_strength, double saturation_frequency, int orbital_frequency_multiplier, int spin_frequency_multiplier, double phase_lag, const std::valarray< double > &mass_coefficients, const std::valarray< double > &radius_coefficients, const std::valarray< double > &inertia_coefficients)
 Initialize the body's single zone and the wind with the given arguments. More...
 
unsigned number_zones () const
 See DissipatingBody::number_zones(). More...
 
const DissipatingZonezone (unsigned zone_index) const
 See DissipatingBody::zone(int) const. More...
 
DissipatingZonezone (unsigned zone_index)
 See DissipatingBody::zone(int). More...
 
Eigen::Vector3d angular_momentum_coupling (unsigned, Dissipation::QuantityEntry=Dissipation::NO_DERIV, bool=false) const
 See DissipatingBody::angular_momentum_coupling(). 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...
 
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)
 Defines the orbit this body is in. 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 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 reached_critical_age (double)
 Change the body 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 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...
 

Private Attributes

SingleTidalTermZone __zone
 

Detailed Description

A skumanich wind body with a single zone dissipative to only a single tidal term.

Definition at line 21 of file SingleTidalTermBody.h.

Constructor & Destructor Documentation

◆ SingleTidalTermBody()

Evolve::SingleTidalTermBody::SingleTidalTermBody ( double  wind_strength,
double  saturation_frequency,
int  orbital_frequency_multiplier,
int  spin_frequency_multiplier,
double  phase_lag,
const std::valarray< double > &  mass_coefficients,
const std::valarray< double > &  radius_coefficients,
const std::valarray< double > &  inertia_coefficients 
)
inline

Initialize the body's single zone and the wind with the given arguments.

Parameters
wind_strengthThe strength of the wind.
saturation_frequencyThe frequency at which the wind loss saturates in rad/day.
orbital_frequency_multiplierThe multiplier of the orbital frequency of the only dissipative term.
spin_frequency_multiplierThe multiplier of the spin frequency of the only dissipative term.
phase_lagThe phase lag of the only dissipative term.
mass_coefficientsThe coefficients of the polynomial for the mass evolution.
radius_coefficientsThe coefficients of the polynomial for the radius evolution.
inertia_coefficientsThe coefficients of the polynomial for the moment of inertia evolution.

Definition at line 27 of file SingleTidalTermBody.h.

Member Function Documentation

◆ angular_momentum_coupling()

Eigen::Vector3d Evolve::SingleTidalTermBody::angular_momentum_coupling ( unsigned  ,
Dissipation::QuantityEntry  = Dissipation::NO_DERIV,
bool  = false 
) const
inlinevirtual

◆ number_zones()

unsigned Evolve::SingleTidalTermBody::number_zones ( ) const
inlinevirtual

◆ zone() [1/2]

const DissipatingZone& Evolve::SingleTidalTermBody::zone ( unsigned  zone_index) const
inlinevirtual

See DissipatingBody::zone(int) const.

Implements Evolve::DissipatingBody.

Definition at line 69 of file SingleTidalTermBody.h.

◆ zone() [2/2]

DissipatingZone& Evolve::SingleTidalTermBody::zone ( unsigned  zone_index)
inlinevirtual

See DissipatingBody::zone(int).

Implements Evolve::DissipatingBody.

Definition at line 81 of file SingleTidalTermBody.h.


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