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

A zone dissipative to only a single tidal term. More...

#include <SingleTidalTermZone.h>

+ Inheritance diagram for Evolve::SingleTidalTermZone:
+ Collaboration diagram for Evolve::SingleTidalTermZone:

Public Member Functions

 SingleTidalTermZone (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)
 
double modified_phase_lag (int orbital_frequency_multiplier, int spin_frequency_multiplier, double forcing_frequency, Dissipation::QuantityEntry entry, double &above_lock_value) const
 See DissipatingZone::modified_phase_lag() More...
 
bool dissipative () const
 See DissipatingZone::dissipative() More...
 
bool can_lock () const
 See DissipatingZone::can_lock() More...
 
- Public Member Functions inherited from Evolve::PolynomialEvolutionZone
 PolynomialEvolutionZone (const std::valarray< double > &mass_coefficients, const std::valarray< double > &radius_coefficients, const std::valarray< double > &inertia_coefficients)
 Construct a polynomial evolution zone with the given coefficients. More...
 
virtual void configure (bool initialize, double age, double orbital_frequency, double eccentricity, double orbital_angmom, double spin, double inclination, double periapsis, bool spin_is_frequency)
 See DissipatingZone::configure(). More...
 
double outer_mass (int deriv_order=0) const
 See DissipatingZone::outer_mass(int). More...
 
double outer_mass (double age, int deriv_order=0) const
 See DissipatingZone::outer_mass(double, int). More...
 
double outer_radius (int deriv_order=0) const
 See DissipatingZone::outer_radius(int). More...
 
double outer_radius (double age, int deriv_order=0) const
 See DissipatingZone::outer_radius(double, int). More...
 
virtual double moment_of_inertia (int deriv_order=0) const
 See DissipatingZone::moment_of_inertia(int). More...
 
virtual double moment_of_inertia (double age, int deriv_order=0) const
 See DissipatingZone::moment_of_inertia(double, int). More...
 
double love_coefficient (int, int, Dissipation::QuantityEntry) const
 See DissipatingZone::love_coefficient() More...
 
- Public Member Functions inherited from Evolve::DissipatingZone
void set_evolution_rates (double angular_momentum, double inclination, double periapsis)
 Set evolution rates for this zone's properties for storing in the eveloution. More...
 
double forcing_frequency (int orbital_frequency_multiplier, int spin_frequency_multiplier, double orbital_frequency) const
 The tidal forcing frequency for the given term and orbital frequency. More...
 
void set_reference_zone_angmom (double reference_angmom)
 Defines the angular momentum of the reference zone for single body evolution. More...
 
double periapsis_evolution (const Eigen::Vector3d &orbit_torque, const Eigen::Vector3d &zone_torque, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV, const Eigen::Vector3d &orbit_torque_deriv=Eigen::Vector3d(), const Eigen::Vector3d &zone_torque_deriv=Eigen::Vector3d())
 The rate at which the periapsis of the orbit/reference zone in this zone's equatorial plane is changing. More...
 
double inclination_evolution (const Eigen::Vector3d &orbit_torque, const Eigen::Vector3d &zone_torque, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV, const Eigen::Vector3d &orbit_torque_deriv=Eigen::Vector3d(), const Eigen::Vector3d &zone_torque_deriv=Eigen::Vector3d())
 The rate at which the inclination between this zone and the orbit is changing. More...
 
virtual bool locked (int orbital_frequency_multiplier, int spin_frequency_multiplier) const
 Should return true iff the given term is presently locked. More...
 
virtual bool locked () const
 Should return true iff any tidal term is locked. More...
 
const SpinOrbitLockInfolock_held () const
 The currntly held lock. More...
 
void release_lock ()
 Update the zone as necessary when the held lock disappears from the expansion. More...
 
void release_lock (short direction)
 Update the zone as necessary when the held lock is broken. More...
 
void set_lock (int orbital_frequency_multiplier, int spin_frequency_multiplier)
 Locks the zone spin to the orbit in the given ratio. More...
 
double spin_frequency () const
 The spin frequency of the given zone. More...
 
double angular_momentum () const
 The angular momentum of the given zone in \(M_\odot R_\odot^2\). More...
 
double tidal_power (bool above, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 The dimensionless tidal power or one of its derivatives. More...
 
double tidal_power (double above_fraction, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 Same as tidal_power(bool, Dissipation::QuantityEntry), but using the predefined mix of below/above contributions. More...
 
double tidal_torque_x (bool above, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 The dimensionless tidal torque along x. More...
 
double tidal_torque_x (double above_fraction, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 Same as tidal_torque_x(bool, Dissipation::QuantityEntry) but below and above contributions mixed. More...
 
double tidal_torque_y (bool above, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 The dimensionless torque along y. More...
 
double tidal_torque_y (double above_fraction, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 Same as tidal_torque_y(bool, Dissipation::QuantityEntry) but below and above contributions mixed. More...
 
double tidal_torque_z (bool above, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 The dimensionless tidal torque along z. More...
 
double tidal_torque_z (double above_fraction, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV) const
 Same as tidal_torque_z(bool, Dissipation::QuantityEntry) but below and above contributions mixed. More...
 
virtual unsigned eccentricity_order () const
 
virtual void change_e_order (unsigned new_e_order, BinarySystem &system, bool primary, unsigned zone_index)
 Changes the order of the eccentricity expansion performed. 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...
 
const std::list< double > & get_evolution_real (ZoneEvolutionQuantities quantity) const
 The tabulated evolution of a real valued quantity so far. More...
 
const std::list< int > & get_evolution_integer (ZoneEvolutionQuantities quantity) const
 The tabulated evolution of an integer quantity so far. More...
 
unsigned locked_zone_index () const
 The index of this zone in the list of locked zones (valid only if locked). More...
 
unsigned & locked_zone_index ()
 Reference to the locked_zone_index() of this zone. More...
 
virtual CombinedStoppingConditionstopping_conditions (BinarySystem &system, bool primary, unsigned zone_index)
 Conditions detecting the next possible discontinuities in the evolution due to this zone. More...
 
virtual void spin_jumped ()
 Notifies the zone that its spin just jumped discontinously. 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...
 
const SpinOrbitLockInfolock_monitored (bool other=false) const
 Useful for debugging. More...
 
- Public Member Functions inherited from Evolve::ZoneOrientation
 ZoneOrientation (double inclination=Core::NaN, double periapsis=Core::NaN)
 
void configure (double inclination, double periapsis)
 Changes the zone orientation. More...
 
void set_evolution_rates (double inclination, double periapsis)
 
double inclination (bool evolution_rate=false) const
 The angle between the angular momenta of the zone and the orbit. More...
 
double periapsis (bool evolution_rate=false) const
 The argument of periapsis of this zone minus the reference zone's. More...
 

Private Attributes

int __orbital_frequency_multiplier
 See orbital_frequency_multiplier argument to constructor. More...
 
int __spin_frequency_multiplier
 See spin_frequency_multiplier argument to constructor. More...
 
double __phase_lag
 See phase_lag argument to constructor. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Evolve::DissipatingZone
void initializing (bool flag)
 Notify the zone that it is in the process of initializing or not. More...
 
void configure_spin (double spin, bool spin_is_frequency)
 Configures only the spin of the zone. More...
 

Detailed Description

A zone dissipative to only a single tidal term.

Definition at line 20 of file SingleTidalTermZone.h.

Constructor & Destructor Documentation

◆ SingleTidalTermZone()

Evolve::SingleTidalTermZone::SingleTidalTermZone ( 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
Parameters
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 32 of file SingleTidalTermZone.h.

Member Function Documentation

◆ can_lock()

bool Evolve::SingleTidalTermZone::can_lock ( ) const
inlinevirtual

◆ dissipative()

bool Evolve::SingleTidalTermZone::dissipative ( ) const
inlinevirtual

◆ modified_phase_lag()

double Evolve::SingleTidalTermZone::modified_phase_lag ( int  orbital_frequency_multiplier,
int  spin_frequency_multiplier,
double  forcing_frequency,
Dissipation::QuantityEntry  entry,
double &  above_lock_value 
) const
inlinevirtual

Member Data Documentation

◆ __orbital_frequency_multiplier

int Evolve::SingleTidalTermZone::__orbital_frequency_multiplier
private

See orbital_frequency_multiplier argument to constructor.

Definition at line 24 of file SingleTidalTermZone.h.

◆ __phase_lag

double Evolve::SingleTidalTermZone::__phase_lag
private

See phase_lag argument to constructor.

Definition at line 30 of file SingleTidalTermZone.h.

◆ __spin_frequency_multiplier

int Evolve::SingleTidalTermZone::__spin_frequency_multiplier
private

See spin_frequency_multiplier argument to constructor.

Definition at line 24 of file SingleTidalTermZone.h.


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