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 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.