Public Member Functions | |
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 SpinOrbitLockInfo & | lock_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... | |
virtual double | modified_phase_lag (int orbital_frequency_multiplier, int spin_frequency_multiplier, double forcing_frequency, Dissipation::QuantityEntry entry, double &above_lock_value) const =0 |
Should return the tidal phase lag time the love number for the given tidal term (or one of its derivatives). 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 bool | dissipative () const =0 |
Should return true iff the zone has some non-zero dissipation. More... | |
virtual bool | can_lock () const =0 |
Should return true iff the zone's dissipation is discontinuous at zero frequency. More... | |
virtual CombinedStoppingCondition * | stopping_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 SpinOrbitLockInfo & | lock_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 Member Functions | |
double | evaluate_polynomial (const std::valarray< double > &coefficients, double age, int deriv_order) const |
Evaluate either the given order derivative of either the mass or the radius polynomial. More... | |
Private Attributes | |
std::valarray< double > | __mass_coefficients |
The coefficients of the polynomial for the mass evolution. More... | |
std::valarray< double > | __radius_coefficients |
The coefficients of the polynomial for the radius evolution. More... | |
std::valarray< double > | __inertia_coefficients |
The coefficients of the polynomial for the moment of inertia evolution. More... | |
std::valarray< double > | __current_mass |
The outer mass ofthe zone at the age of the last call to configure() and its first and second derivatives. More... | |
std::valarray< double > | __current_radius |
The outer radius ofthe zone at the age of the last call to configure() and its first and second derivatives. More... | |
std::valarray< double > | __current_inertia |
The moment of inertia ofthe zone at the age of the last call to configure() and its first and second derivatives. 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... | |
Definition at line 18 of file PolynomialEvolutionZone.h.
|
inline |
Construct a polynomial evolution zone with the given coefficients.
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 58 of file PolynomialEvolutionZone.h.
|
virtual |
See DissipatingZone::configure().
Reimplemented from Evolve::DissipatingZone.
Definition at line 11 of file PolynomialEvolutionZone.cpp.
|
private |
Evaluate either the given order derivative of either the mass or the radius polynomial.
coefficients | The coefficienst of the polynomial to evaluate. |
age | The age at which to evaluate the polynomial. |
deriv_order | The derivative order desired. |
Definition at line 41 of file PolynomialEvolutionZone.cpp.
|
inlinevirtual |
See DissipatingZone::love_coefficient()
Implements Evolve::DissipatingZone.
Definition at line 113 of file PolynomialEvolutionZone.h.
|
inlinevirtual |
See DissipatingZone::moment_of_inertia(int).
Implements Evolve::DissipatingZone.
Definition at line 105 of file PolynomialEvolutionZone.h.
|
inlinevirtual |
See DissipatingZone::moment_of_inertia(double, int).
Implements Evolve::DissipatingZone.
Definition at line 109 of file PolynomialEvolutionZone.h.
|
inlinevirtual |
See DissipatingZone::outer_mass(int).
Implements Evolve::DissipatingZone.
Definition at line 89 of file PolynomialEvolutionZone.h.
|
inlinevirtual |
See DissipatingZone::outer_mass(double, int).
Implements Evolve::DissipatingZone.
Definition at line 93 of file PolynomialEvolutionZone.h.
|
inlinevirtual |
See DissipatingZone::outer_radius(int).
Implements Evolve::DissipatingZone.
Definition at line 97 of file PolynomialEvolutionZone.h.
|
inlinevirtual |
See DissipatingZone::outer_radius(double, int).
Implements Evolve::DissipatingZone.
Definition at line 101 of file PolynomialEvolutionZone.h.
|
private |
The moment of inertia ofthe zone at the age of the last call to configure() and its first and second derivatives.
Definition at line 34 of file PolynomialEvolutionZone.h.
|
private |
The outer mass ofthe zone at the age of the last call to configure() and its first and second derivatives.
Definition at line 34 of file PolynomialEvolutionZone.h.
|
private |
The outer radius ofthe zone at the age of the last call to configure() and its first and second derivatives.
Definition at line 34 of file PolynomialEvolutionZone.h.
|
private |
The coefficients of the polynomial for the moment of inertia evolution.
Definition at line 22 of file PolynomialEvolutionZone.h.
|
private |
The coefficients of the polynomial for the mass evolution.
Definition at line 22 of file PolynomialEvolutionZone.h.
|
private |
The coefficients of the polynomial for the radius evolution.
Definition at line 22 of file PolynomialEvolutionZone.h.