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

satisfied when a forcing frequency reaches a critical value. More...

#include <LagForcingFrequencyBreakCondition.h>

+ Inheritance diagram for Evolve::LagForcingFrequencyBreakCondition:
+ Collaboration diagram for Evolve::LagForcingFrequencyBreakCondition:

Public Member Functions

 LagForcingFrequencyBreakCondition (BrokenPowerlawPhaseLagZone &zone, const DissipatingBody &body, const DissipatingBody &other_body, int orbital_frequency_multiplier, int spin_frequency_multiplier)
 Monitor a single forcing term of a single zone for a number of critical forcing frequencies. More...
 
std::valarray< double > operator() (Core::EvolModeType evol_mode, const std::valarray< double > &orbit, const std::valarray< double > &derivatives, std::valarray< double > &stop_deriv) const
 Return the differences between the current forcing frequency of the zone monitored and the two closest critical frequencies divided by the corresponding critical frequency. More...
 
virtual void reached (short deriv_sign, unsigned index=0)
 Adjust the above and below critical frequencies being monitored. More...
 
virtual size_t num_subconditions () const
 The number of subconditions (1 if all critical spins are below or above the current spin, 2 otherwise). More...
 
virtual StoppingConditionType type (unsigned=0) const
 Define stopping condition type as EXTERNAL. More...
 
virtual short expected_crossing_deriv_sign (unsigned index=0) const
 See StoppingCondition::expected_crossing_deriv_sign(). More...
 
virtual std::string describe (int index=-1) const
 See StoppingCondition::describe(). More...
 
- Public Member Functions inherited from Evolve::StoppingCondition
 StoppingCondition (short expected_crossing_deriv_sign=0)
 Create a generic stopping condition. More...
 

Private Member Functions

void set_num_subconditions ()
 Set the appropriate value of __num_subcondition. More...
 

Private Attributes

int __orbital_frequency_multiplier
 
int __spin_frequency_multiplier
 
BrokenPowerlawPhaseLagZone__zone
 The zone being monitored (for more convenient access). More...
 
const DissipatingBody__body
 The body this condition is monitoring. More...
 
const DissipatingBody__other_body
 The other body in the system. More...
 
std::vector< std::vector< double >::size_type >::size_type __term_index
 The index of the monitored tidal term within __zone.__tidal_indices. More...
 
std::vector< double >::size_type __powerlaw_index
 The index of the currently active powerlaw within __zone.__tidal_frequency_powers. More...
 
unsigned __num_subconditions
 See num_subcondition(). More...
 

Detailed Description

satisfied when a forcing frequency reaches a critical value.

Definition at line 23 of file LagForcingFrequencyBreakCondition.h.

Constructor & Destructor Documentation

◆ LagForcingFrequencyBreakCondition()

Evolve::LagForcingFrequencyBreakCondition::LagForcingFrequencyBreakCondition ( BrokenPowerlawPhaseLagZone zone,
const DissipatingBody body,
const DissipatingBody other_body,
int  orbital_frequency_multiplier,
int  spin_frequency_multiplier 
)

Monitor a single forcing term of a single zone for a number of critical forcing frequencies.

Parameters
zoneThe zone being monitored.
bodyThe body whose spin to monitor.
other_bodyThe other body in the system.
orbital_frequency_multiplierThe orbital frequency multiplier of the forcing term being monitored.
spin_frequency_multiplierThe spin frequency multiplier of the forcing term being monitored.

Definition at line 27 of file LagForcingFrequencyBreakCondition.cpp.

Member Function Documentation

◆ describe()

std::string Evolve::LagForcingFrequencyBreakCondition::describe ( int  index = -1) const
virtual

◆ expected_crossing_deriv_sign()

short Evolve::LagForcingFrequencyBreakCondition::expected_crossing_deriv_sign ( unsigned  index = 0) const
virtual

See StoppingCondition::expected_crossing_deriv_sign().

Parameters
indexWhich sub-condition.

Reimplemented from Evolve::StoppingCondition.

Definition at line 142 of file LagForcingFrequencyBreakCondition.cpp.

◆ num_subconditions()

virtual size_t Evolve::LagForcingFrequencyBreakCondition::num_subconditions ( ) const
inlinevirtual

The number of subconditions (1 if all critical spins are below or above the current spin, 2 otherwise).

Reimplemented from Evolve::StoppingCondition.

Definition at line 105 of file LagForcingFrequencyBreakCondition.h.

◆ operator()()

std::valarray< double > Evolve::LagForcingFrequencyBreakCondition::operator() ( Core::EvolModeType  evol_mode,
const std::valarray< double > &  orbit,
const std::valarray< double > &  derivatives,
std::valarray< double > &  stop_deriv 
) const
virtual

Return the differences between the current forcing frequency of the zone monitored and the two closest critical frequencies divided by the corresponding critical frequency.

See StoppingCondition::operator()() for a description of the arguments.

All evolution modes allowed.

Implements Evolve::StoppingCondition.

Definition at line 48 of file LagForcingFrequencyBreakCondition.cpp.

◆ reached()

void Evolve::LagForcingFrequencyBreakCondition::reached ( short  deriv_sign,
unsigned  index = 0 
)
virtual

Adjust the above and below critical frequencies being monitored.

See StoppingCondition::reached() for a description of the arguments.

Reimplemented from Evolve::StoppingCondition.

Definition at line 111 of file LagForcingFrequencyBreakCondition.cpp.

◆ set_num_subconditions()

void Evolve::LagForcingFrequencyBreakCondition::set_num_subconditions ( )
private

Set the appropriate value of __num_subcondition.

Definition at line 15 of file LagForcingFrequencyBreakCondition.cpp.

◆ type()

virtual StoppingConditionType Evolve::LagForcingFrequencyBreakCondition::type ( unsigned  = 0) const
inlinevirtual

Define stopping condition type as EXTERNAL.

Implements Evolve::StoppingCondition.

Definition at line 109 of file LagForcingFrequencyBreakCondition.h.

Member Data Documentation

◆ __body

const DissipatingBody& Evolve::LagForcingFrequencyBreakCondition::__body
private

The body this condition is monitoring.

Definition at line 40 of file LagForcingFrequencyBreakCondition.h.

◆ __num_subconditions

unsigned Evolve::LagForcingFrequencyBreakCondition::__num_subconditions
private

See num_subcondition().

Definition at line 55 of file LagForcingFrequencyBreakCondition.h.

◆ __orbital_frequency_multiplier

int Evolve::LagForcingFrequencyBreakCondition::__orbital_frequency_multiplier
private

The orbital frequency multiplier of the forcing term being monitored.

Definition at line 29 of file LagForcingFrequencyBreakCondition.h.

◆ __other_body

const DissipatingBody & Evolve::LagForcingFrequencyBreakCondition::__other_body
private

The other body in the system.

Definition at line 40 of file LagForcingFrequencyBreakCondition.h.

◆ __powerlaw_index

std::vector<double>::size_type Evolve::LagForcingFrequencyBreakCondition::__powerlaw_index
private

The index of the currently active powerlaw within __zone.__tidal_frequency_powers.

Definition at line 52 of file LagForcingFrequencyBreakCondition.h.

◆ __spin_frequency_multiplier

int Evolve::LagForcingFrequencyBreakCondition::__spin_frequency_multiplier
private

The spin frequency multiplier of the forcing term being monitored.

Definition at line 29 of file LagForcingFrequencyBreakCondition.h.

◆ __term_index

std::vector< std::vector<double>::size_type >::size_type Evolve::LagForcingFrequencyBreakCondition::__term_index
private

The index of the monitored tidal term within __zone.__tidal_indices.

Definition at line 48 of file LagForcingFrequencyBreakCondition.h.

◆ __zone

BrokenPowerlawPhaseLagZone& Evolve::LagForcingFrequencyBreakCondition::__zone
private

The zone being monitored (for more convenient access).

Definition at line 36 of file LagForcingFrequencyBreakCondition.h.


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