9 #ifndef __CRITICAL_FORCING_FREQUENCY_CONDITION_H 10 #define __CRITICAL_FORCING_FREQUENCY_CONDITION_H 12 #include "../Core/SharedLibraryExportMacros.h" 15 #include "../Core/OrbitalExpressions.h" 16 #include "../Core/Error.h" 29 __orbital_frequency_multiplier,
47 std::vector< std::vector<double>::size_type >::size_type
58 void set_num_subconditions();
74 int orbital_frequency_multiplier,
78 int spin_frequency_multiplier
89 std::valarray<double> operator()(
91 const std::valarray<double> &orbit,
92 const std::valarray<double> &derivatives,
93 std::valarray<double> &stop_deriv
101 virtual void reached(
short deriv_sign,
unsigned index = 0);
106 {
return __num_subconditions;}
113 virtual short expected_crossing_deriv_sign(
119 virtual std::string describe(
int index = -1)
const;
124 std::cerr <<
"Destroying: " << describe() << std::endl;
const DissipatingBody & __other_body
The other body in the system.
A base class for any body contributing to tidal dissipation.
struct LIB_PUBLIC BrokenPowerlawPhaseLagZone
Opaque struct to cant to/from Evolve::BrokenPowerlawPhasLagZone.
StoppingConditionType
The reasons for stopping the evolution currently supported.
Orientations of zones of bodies in a binary system.
A base class for all stopping conditions.
unsigned __num_subconditions
See num_subcondition().
Declares the DissipatingBody class.
A DissipatingZone where the phase lag is described by a broken powerlaw.
EvolModeType
The various evolution modes.
Defines the various stopping conditions needed by OrbitSolver.
BrokenPowerlawPhaseLagZone & __zone
The zone being monitored (for more convenient access).
satisfied when a forcing frequency reaches a critical value.
std::vector< std::vector< double >::size_type >::size_type __term_index
The index of the monitored tidal term within __zone.__tidal_indices.
std::vector< double >::size_type __powerlaw_index
The index of the currently active powerlaw within __zone.__tidal_frequency_powers.
virtual StoppingConditionType type(unsigned=0) const
Define stopping condition type as EXTERNAL.
virtual size_t num_subconditions() const
The number of subconditions (1 if all critical spins are below or above the current spin...
int __spin_frequency_multiplier