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

Single zone non-evolving planets with huge dissipation, so they always remain locked to the disk. More...

#include <Planet.h>

+ Inheritance diagram for Planet::Planet:
+ Collaboration diagram for Planet::Planet:

Public Member Functions

 Planet (double mass, double radius, double inertia_factor=0.3)
 Create a planet with a constant mass and radius. More...
 
unsigned number_zones () const
 The number of zones the body consists of. More...
 
const Evolve::DissipatingZonezone (unsigned zone_index) const
 Returns the only zone. More...
 
Evolve::DissipatingZonezone (unsigned zone_index)
 Returns the only zone. More...
 
const PlanetZonezone () const
 Returns the only zone. More...
 
PlanetZonezone ()
 Returns the only zone. More...
 
Eigen::Vector3d angular_momentum_coupling (unsigned, Evolve::Dissipation::QuantityEntry=Evolve::Dissipation::NO_DERIV, bool=false) const
 Should never be called. More...
 
double angular_momentum_loss (Evolve::Dissipation::QuantityEntry=Evolve::Dissipation::NO_DERIV) const
 Always zero. More...
 
void reached_critical_age (double)
 No critical ages for non-evolving non-dissipating planets. 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 Eigen::Vector3d angular_momentum_coupling (unsigned top_zone_index, Dissipation::QuantityEntry deriv=Dissipation::NO_DERIV, bool with_respect_to_top=false) const =0
 Coupling torque for two neighboring zones in the coordinate system of the top zone. 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 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 CombinedStoppingConditionstopping_conditions (BinarySystem &system, bool primary)
 Conditions detecting the next possible discontinuities in the evolution due to this body. More...
 
virtual void spin_jumped ()
 Notifies the body that its spin just discontinously jumped. 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

PlanetZone __zone
 The only zone of the planet. More...
 

Detailed Description

Single zone non-evolving planets with huge dissipation, so they always remain locked to the disk.

Definition at line 21 of file Planet.h.

Constructor & Destructor Documentation

◆ Planet()

Planet::Planet::Planet ( double  mass,
double  radius,
double  inertia_factor = 0.3 
)
inline

Create a planet with a constant mass and radius.

Definition at line 27 of file Planet.h.

Member Function Documentation

◆ angular_momentum_coupling()

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

Should never be called.

Definition at line 67 of file Planet.h.

◆ angular_momentum_loss()

double Planet::Planet::angular_momentum_loss ( Evolve::Dissipation::QuantityEntry  = Evolve::Dissipation::NO_DERIV) const
inline

Always zero.

Definition at line 78 of file Planet.h.

◆ number_zones()

unsigned Planet::Planet::number_zones ( ) const
inlinevirtual

The number of zones the body consists of.

Implements Evolve::DissipatingBody.

Definition at line 34 of file Planet.h.

◆ reached_critical_age()

void Planet::Planet::reached_critical_age ( double  )
inlinevirtual

No critical ages for non-evolving non-dissipating planets.

Reimplemented from Evolve::DissipatingBody.

Definition at line 84 of file Planet.h.

◆ zone() [1/4]

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

Returns the only zone.

Implements Evolve::DissipatingBody.

Definition at line 37 of file Planet.h.

◆ zone() [2/4]

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

Returns the only zone.

Implements Evolve::DissipatingBody.

Definition at line 49 of file Planet.h.

◆ zone() [3/4]

const PlanetZone& Planet::Planet::zone ( ) const
inline

Returns the only zone.

Definition at line 61 of file Planet.h.

◆ zone() [4/4]

PlanetZone& Planet::Planet::zone ( )
inline

Returns the only zone.

Definition at line 64 of file Planet.h.

Member Data Documentation

◆ __zone

PlanetZone Planet::Planet::__zone
private

The only zone of the planet.

Definition at line 24 of file Planet.h.


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