A skumanich wind body with a single zone dissipative to only a single tidal term. More...
#include <SingleTidalTermBody.h>
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 DissipatingZone & | zone (unsigned zone_index) const |
See DissipatingBody::zone(int) const. More... | |
DissipatingZone & | zone (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::CombinedStoppingCondition * | stopping_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 |
A skumanich wind body with a single zone dissipative to only a single tidal term.
Definition at line 21 of file SingleTidalTermBody.h.
|
inline |
Initialize the body's single zone and the wind with the given arguments.
wind_strength | The strength of the wind. |
saturation_frequency | The frequency at which the wind loss saturates in rad/day. |
orbital_frequency_multiplier | The multiplier of the orbital frequency of the only dissipative term. |
spin_frequency_multiplier | The multiplier of the spin frequency of the only dissipative term. |
phase_lag | The phase lag of the only dissipative term. |
mass_coefficients | The coefficients of the polynomial for the mass evolution. |
radius_coefficients | The coefficients of the polynomial for the radius evolution. |
inertia_coefficients | The coefficients of the polynomial for the moment of inertia evolution. |
Definition at line 27 of file SingleTidalTermBody.h.
|
inlinevirtual |
See DissipatingBody::angular_momentum_coupling().
Implements Evolve::DissipatingBody.
Definition at line 93 of file SingleTidalTermBody.h.
|
inlinevirtual |
See DissipatingBody::number_zones().
Implements Evolve::DissipatingBody.
Definition at line 66 of file SingleTidalTermBody.h.
|
inlinevirtual |
See DissipatingBody::zone(int) const.
Implements Evolve::DissipatingBody.
Definition at line 69 of file SingleTidalTermBody.h.
|
inlinevirtual |
See DissipatingBody::zone(int).
Implements Evolve::DissipatingBody.
Definition at line 81 of file SingleTidalTermBody.h.