9 #ifndef __CRITICAL_SPIN_CONDITION_H 10 #define __CRITICAL_SPIN_CONDITION_H 12 #include "../Core/SharedLibraryExportMacros.h" 15 #include "../Core/Error.h" 23 class LIB_LOCAL LagSpinBreakCondition :
public StoppingCondition {
40 unsigned __zone_index;
44 std::vector<double>::size_type __powerlaw_index;
47 unsigned __num_subconditions;
50 void set_num_subconditions();
56 double surf_angmom_deriv,
67 void fill_locked_derivs(
69 const std::valarray<double> &orbit,
70 const std::valarray<double> &derivatives,
71 std::valarray<double> &stop_deriv
79 void fill_unlocked_derivs(
81 const std::valarray<double> &orbit,
82 const std::valarray<double> &derivatives,
83 std::valarray<double> &stop_deriv
88 LagSpinBreakCondition(
93 const DissipatingBody &body,
96 const DissipatingBody &other_body,
114 std::valarray<double> operator()(
116 const std::valarray<double> &orbit,
117 const std::valarray<double> &derivatives,
118 std::valarray<double> &stop_deriv
126 virtual void reached(
short deriv_sign,
unsigned index = 0);
130 virtual size_t num_subconditions()
const 131 {
return __num_subconditions;}
138 virtual short expected_crossing_deriv_sign(
144 virtual std::string describe(
int index = -1)
const;
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.
Declares the DissipatingBody class.
EvolModeType
The various evolution modes.
Defines the various stopping conditions needed by OrbitSolver.