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

For some prescribed amount of time the surface of the pramary spins at a prescribed rate, it is then released and (at a possibly different age) a secondary body forms in a prescribed initial orbit. More...

#include <DiskBinarySystem.h>

+ Inheritance diagram for Evolve::DiskBinarySystem:
+ Collaboration diagram for Evolve::DiskBinarySystem:

Public Member Functions

 DiskBinarySystem (DissipatingBody &body1, DissipatingBody &body2, double initial_semimajor, double initial_eccentricity, double initial_inclination, double disk_lock_frequency, double disk_dissipation_age, double secondary_formation_age)
 Create the system. More...
 
double disk_dissipation_age ()
 The age when the disk dissipates. More...
 
virtual void reached_critical_age (double age)
 Change the system 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 system change. More...
 
- Public Member Functions inherited from Evolve::BinarySystem
 BinarySystem (DissipatingBody &body1, DissipatingBody &body2, const std::string &system_name="")
 Construct a binary system. More...
 
const std::string get_name () const
 Returns the name of the system. More...
 
virtual int configure (bool initialize, double age, double semimajor, double eccentricity, const double *spin_angmom, const double *inclination, const double *periapsis, Core::EvolModeType evolution_mode)
 Sets the current state of the system. More...
 
int configure (bool initialize, double age, const double *parameters, Core::EvolModeType evolution_mode)
 
double age () const
 Returns the present age of the system in Gyr. More...
 
const DissipatingBodyprimary () const
 Returns the primary body in the system (const). More...
 
const DissipatingBodysecondary () const
 Returns the secondary body in the system (const). More...
 
unsigned number_zones () const
 The total number of zones in both system bodies. More...
 
unsigned number_locked_zones () const
 How many zones on either body are currently locked. More...
 
double semimajor () const
 The current semimajor axis of the system. More...
 
double eccentricity () const
 The current eccentricity of the system. More...
 
Core::EvolModeType fill_orbit (std::valarray< double > &orbit) const
 Fills an array with the parameters expected by differential_equations() and jacobian(), returning the evolution mode. More...
 
double above_lock_fraction (unsigned locked_zone_index, Dissipation::QuantityEntry entry=Dissipation::NO_DERIV, unsigned deriv_zone_index=0, bool secondary_radius=false)
 The fraction of an infinitesimal timestep that a zone spends spinning faster than the lock it is in. More...
 
int differential_equations (double age, const double *parameters, Core::EvolModeType evolution_mode, double *differential_equations, bool expansion_error=false)
 The differential equation and jacobian for the evolution of the system. More...
 
int jacobian (double age, const double *parameters, Core::EvolModeType evolution_mode, double *param_derivs, double *age_derivs)
 
void check_for_lock (int orbital_freq_mult, int spin_freq_mult, unsigned short body_index, unsigned zone_index, short direction)
 Check if a spin-orbit lock can be held and updates the system as necessary to calculate subsequent evolution. More...
 
virtual double minimum_separation (bool deriv=false) const
 Smallest semimajor axis at which the secondary can survive for the latest system configuration. More...
 
Core::EvolModeType evolution_mode ()
 The evolution mode of last call to configure(). More...
 
virtual void secondary_died ()
 Update the system to account for the death of the secondary. More...
 
virtual void release_lock (unsigned locked_zone_index, short direction)
 Releases the lock to one of the locked zones. More...
 
virtual void add_to_evolution ()
 Appends the state defined by last configure(), to the evolution. More...
 
virtual void reset_evolution ()
 Resets the evolution of the system. More...
 
virtual void rewind_evolution (unsigned nsteps)
 Discards the last steps from the evolution. More...
 
virtual CombinedStoppingConditionstopping_conditions ()
 Conditions detecting the next possible doscontinuity in the evolution. More...
 
const std::list< double > & semimajor_evolution () const
 The tabulated evolution of the semimajor axis so far. More...
 
const std::list< double > & semimajor_evolution_rate () const
 The tabulated evolution of the semimajor axis so far. More...
 
const std::list< double > & eccentricity_evolution () const
 The tabulated evolution of the eccentricity so far. More...
 
const std::list< double > & eccentricity_evolution_rate () const
 The tabulated evolution of the eccentricity so far. More...
 
virtual void change_e_order (unsigned new_e_order)
 Change the eccentricity expansion order for all dissipative zones. More...
 
virtual unsigned eccentricity_order () const
 

Private Member Functions

void release_surface_spin ()
 Releases the surface spin of the star when the disk dissipates. More...
 
void add_secondary ()
 Adds the secondary to the system in its initial orbit. More...
 

Private Attributes

double __initial_semimajor
 The semimajor axis of the orbit at which the secondary forms. More...
 
double __initial_eccentricity
 The eccentricity of the orbit at which the secondary forms. More...
 
double __initial_inclination
 Inclination between surface zone of primary and initial orbit. More...
 
double __disk_lock_frequency
 Frequency of the surface spin of the primary when disk is present. More...
 
double __disk_dissipation_age
 Age when disk dissipates. More...
 
double __secondary_formation_age
 Age when the secondary forms. More...
 

Detailed Description

For some prescribed amount of time the surface of the pramary spins at a prescribed rate, it is then released and (at a possibly different age) a secondary body forms in a prescribed initial orbit.

Definition at line 26 of file DiskBinarySystem.h.

Constructor & Destructor Documentation

◆ DiskBinarySystem()

Evolve::DiskBinarySystem::DiskBinarySystem ( DissipatingBody body1,
DissipatingBody body2,
double  initial_semimajor,
double  initial_eccentricity,
double  initial_inclination,
double  disk_lock_frequency,
double  disk_dissipation_age,
double  secondary_formation_age 
)

Create the system.

Parameters
body1The first body in the system. Assumed to always be there, so for a star-planet system this should be the star.
body2The second body in the system, must already have all its zones configured as it will appear.
initial_semimajorThe semimajor axis of the orbit at which the secondary forms.
initial_eccentricityThe eccentricity of the orbit at which the secondary forms.
initial_inclinationInclination between surface zone of primary and initial orbit.
disk_lock_frequencyFrequency of the surface spin of the primary when disk is present.

Definition at line 67 of file DiskBinarySystem.cpp.

Member Function Documentation

◆ add_secondary()

void Evolve::DiskBinarySystem::add_secondary ( )
private

Adds the secondary to the system in its initial orbit.

Definition at line 23 of file DiskBinarySystem.cpp.

◆ disk_dissipation_age()

double Evolve::DiskBinarySystem::disk_dissipation_age ( )
inline

The age when the disk dissipates.

Definition at line 83 of file DiskBinarySystem.h.

◆ next_stop_age()

double Evolve::DiskBinarySystem::next_stop_age ( ) const
virtual

The next age when the evolution needs to be stopped for a system change.

Reimplemented from Evolve::BinarySystem.

Definition at line 112 of file DiskBinarySystem.cpp.

◆ reached_critical_age()

void Evolve::DiskBinarySystem::reached_critical_age ( double  age)
virtual

Change the system as necessary at the given age.

Handles things like the disk dissipating and the secondary forming.

Reimplemented from Evolve::BinarySystem.

Definition at line 103 of file DiskBinarySystem.cpp.

◆ release_surface_spin()

void Evolve::DiskBinarySystem::release_surface_spin ( )
private

Releases the surface spin of the star when the disk dissipates.

Definition at line 6 of file DiskBinarySystem.cpp.

Member Data Documentation

◆ __disk_dissipation_age

double Evolve::DiskBinarySystem::__disk_dissipation_age
private

Age when disk dissipates.

Definition at line 29 of file DiskBinarySystem.h.

◆ __disk_lock_frequency

double Evolve::DiskBinarySystem::__disk_lock_frequency
private

Frequency of the surface spin of the primary when disk is present.

Definition at line 29 of file DiskBinarySystem.h.

◆ __initial_eccentricity

double Evolve::DiskBinarySystem::__initial_eccentricity
private

The eccentricity of the orbit at which the secondary forms.

Definition at line 29 of file DiskBinarySystem.h.

◆ __initial_inclination

double Evolve::DiskBinarySystem::__initial_inclination
private

Inclination between surface zone of primary and initial orbit.

Definition at line 29 of file DiskBinarySystem.h.

◆ __initial_semimajor

double Evolve::DiskBinarySystem::__initial_semimajor
private

The semimajor axis of the orbit at which the secondary forms.

Definition at line 29 of file DiskBinarySystem.h.

◆ __secondary_formation_age

double Evolve::DiskBinarySystem::__secondary_formation_age
private

Age when the secondary forms.

Definition at line 29 of file DiskBinarySystem.h.


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