The only zone of a LockedPlanet. More...
#include <PlanetZone.h>
Inheritance diagram for Planet::PlanetZone:
Collaboration diagram for Planet::PlanetZone:Public Member Functions | |
| PlanetZone (double mass, double radius, double moment_of_inertia_factor) | |
| double | love_coefficient (int, int, Evolve::Dissipation::QuantityEntry) const |
| See DissipatingZone::love_coefficient(), always zero. More... | |
| double | moment_of_inertia (int deriv_order=0) const |
| Tiny value ( \(10^{-6} M R^2\)). More... | |
| double | moment_of_inertia (double, int deriv_order=0) const |
| The moment of inertia of the zone or its age derivative at a specified age (no configure necessary). More... | |
| double | outer_radius (int deriv_order=0) const |
| The radius of the planet. More... | |
| double | outer_radius (double, int deriv_order=0) const |
| Same as outer_radius(int) but accept age argument (ignored). More... | |
| double | outer_mass (int deriv_order=0) const |
| The mass of the planet. More... | |
| double | outer_mass (double, int deriv_order=0) const |
| Same as outer_mass(int) but accept age argument (ignored). More... | |
| void | configure (bool initialize, double age, double orbital_frequency, double eccentricity, double orbital_angmom, double spin, double inclination, double periapsis, bool spin_is_frequency) |
| Calls the usual DissipatingZone::configure but with zero inclination and periapsis. More... | |
Public Member Functions inherited from Evolve::BrokenPowerlawPhaseLagZone | |
| BrokenPowerlawPhaseLagZone () | |
| Create a non-dissipative zone. Must call setup() if the zone is dissipative. More... | |
| void | setup (const std::vector< double > &tidal_frequency_breaks, const std::vector< double > &spin_frequency_breaks, const std::vector< double > &tidal_frequency_powers, const std::vector< double > &spin_frequency_powers, double reference_phase_lag, double inertial_mode_enhancement=1.0, double inertial_mode_sharpness=10.0) |
| Seup the zone with the given breaks/powers and inertial mode enhancement. Continuous accress all breaks. Must only be called before use. 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 |
| Should return the tidal phase lag times the love number for the given tidal term (or one of its derivatives). More... | |
| virtual double | love_coefficient (int, int, Dissipation::QuantityEntry) const |
| Should return the corresponding component of the love coefficient (Lai 2012 Equation 24). 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 | change_e_order (unsigned new_e_order, BinarySystem &system, bool primary, unsigned zone_index) |
| Changes the order of the eccentricity expansion performed. More... | |
| virtual bool | dissipative () const |
| Return true iff disspation has been defined for the zone. More... | |
| virtual bool | can_lock () const |
| Should return true iff the zone's dissipation is discontinuous at zero frequency. More... | |
| ~BrokenPowerlawPhaseLagZone () | |
| Cleanup. 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... | |
| 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 | 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 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 Attributes | |
| double | __mass |
| See mass argument to constructor. More... | |
| double | __radius |
| See radius argument to constructor. More... | |
| double | __moment_of_inertia_factor |
| See moment_of_inertia_factor 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... | |
The only zone of a LockedPlanet.
Definition at line 21 of file PlanetZone.h.
|
inline |
| mass | The mass of the planet in solar masses. |
| radius | The radius of the planet is solar radii. |
| moment_of_inertia_factor | The factor to multiply mass * radius^2 to get the moment of inertia. |
Definition at line 35 of file PlanetZone.h.
|
inlinevirtual |
Calls the usual DissipatingZone::configure but with zero inclination and periapsis.
| initialize | Is this the first time configure() is invoked? |
| age | The age to set the zone to. |
| orbital_frequency | The angular velocity of the orbit in rad/day. |
| eccentricity | The eccentricity of the orbit |
| orbital_angmom | The absolute value of the angular momentum of the orbit. |
| spin | The angular momentum/frequency of the spin of the zone (ignored). |
| inclination | The inclination of the zone relative to the orbit. |
| periapsis | The argument of periapsis of the orbit in the equatorial planet of the zone. |
| spin_is_frequency | Is spin_angmom angular momentum of freuqency? (ignored) |
Reimplemented from Evolve::BrokenPowerlawPhaseLagZone.
Definition at line 95 of file PlanetZone.h.
|
inline |
See DissipatingZone::love_coefficient(), always zero.
Definition at line 52 of file PlanetZone.h.
|
inlinevirtual |
Tiny value ( \(10^{-6} M R^2\)).
| deriv_order | What to return:
|
Implements Evolve::DissipatingZone.
Definition at line 58 of file PlanetZone.h.
|
inlinevirtual |
The moment of inertia of the zone or its age derivative at a specified age (no configure necessary).
Implements Evolve::DissipatingZone.
Definition at line 74 of file PlanetZone.h.
|
inlinevirtual |
The mass of the planet.
Implements Evolve::DissipatingZone.
Definition at line 86 of file PlanetZone.h.
|
inlinevirtual |
Same as outer_mass(int) but accept age argument (ignored).
Implements Evolve::DissipatingZone.
Definition at line 90 of file PlanetZone.h.
|
inlinevirtual |
The radius of the planet.
Implements Evolve::DissipatingZone.
Definition at line 78 of file PlanetZone.h.
|
inlinevirtual |
Same as outer_radius(int) but accept age argument (ignored).
Implements Evolve::DissipatingZone.
Definition at line 82 of file PlanetZone.h.
|
private |
See mass argument to constructor.
Definition at line 26 of file PlanetZone.h.
|
private |
See moment_of_inertia_factor to constructor.
Definition at line 26 of file PlanetZone.h.
|
private |
See radius argument to constructor.
Definition at line 26 of file PlanetZone.h.