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>
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 DissipatingBody & | primary () const |
Returns the primary body in the system (const). More... | |
const DissipatingBody & | secondary () 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 CombinedStoppingCondition * | stopping_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... | |
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.
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.
body1 | The first body in the system. Assumed to always be there, so for a star-planet system this should be the star. |
body2 | The second body in the system, must already have all its zones configured as it will appear. |
initial_semimajor | The semimajor axis of the orbit at which the secondary forms. |
initial_eccentricity | The eccentricity of the orbit at which the secondary forms. |
initial_inclination | Inclination between surface zone of primary and initial orbit. |
disk_lock_frequency | Frequency of the surface spin of the primary when disk is present. |
Definition at line 67 of file DiskBinarySystem.cpp.
|
private |
Adds the secondary to the system in its initial orbit.
Definition at line 23 of file DiskBinarySystem.cpp.
|
inline |
The age when the disk dissipates.
Definition at line 83 of file DiskBinarySystem.h.
|
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.
|
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.
|
private |
Releases the surface spin of the star when the disk dissipates.
Definition at line 6 of file DiskBinarySystem.cpp.
|
private |
Age when disk dissipates.
Definition at line 29 of file DiskBinarySystem.h.
|
private |
Frequency of the surface spin of the primary when disk is present.
Definition at line 29 of file DiskBinarySystem.h.
|
private |
The eccentricity of the orbit at which the secondary forms.
Definition at line 29 of file DiskBinarySystem.h.
|
private |
Inclination between surface zone of primary and initial orbit.
Definition at line 29 of file DiskBinarySystem.h.
|
private |
The semimajor axis of the orbit at which the secondary forms.
Definition at line 29 of file DiskBinarySystem.h.
|
private |
Age when the secondary forms.
Definition at line 29 of file DiskBinarySystem.h.