Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
SynchronizedCondition.h
Go to the documentation of this file.
1 
9 #ifndef __SYNCHRONIZED_CONDITION_H
10 #define __SYNCHRONIZED_CONDITION_H
11 
12 #include "../Core/SharedLibraryExportMacros.h"
13 #include "StoppingCondition.h"
14 
15 namespace Evolve {
16 
17  class DissipatingZone;
18  class BinarySystem;
19 
22  class LIB_LOCAL SynchronizedCondition : public StoppingCondition{
23  private:
25  int __orbital_freq_mult,
26 
29 
31  bool __primary;
32 
34  unsigned __zone_index;
35 
38 
41 
42  public:
46  int orbital_freq_mult,
47 
49  int spin_freq_mult,
50 
53  short deriv_sign,
54 
56  bool primary,
57 
59  unsigned zone_index,
60 
62  BinarySystem &system
63  );
64 
74  std::valarray<double> operator()(
75  Core::EvolModeType evol_mode,
76  const std::valarray<double> &orbit,
77  const std::valarray<double> &derivatives,
78  std::valarray<double> &stop_deriv
79  ) const;
80 
82  StoppingConditionType type(unsigned =0) const {return SYNCHRONIZED;}
83 
85  int orbital_frequency_multiplier() const {return __orbital_freq_mult;}
86 
88  int spin_frequency_multiplier() const {return __spin_freq_mult;}
89 
91  // short body_index() const {return __body_index;}
92 
94  void reached(short deriv_sign, unsigned index=0);
95 
97  virtual std::string describe(int index = -1) const;
98 
99  };//End SynchronizedCondition class.
100 
101 }//End Evolve namespace.
102 
103 #endif
int __spin_freq_mult
The multiplier in front of the spin frequency in the lock.
BinarySystem & __system
The binary system this locking condition is attached to.
Satisfied when some multiples of the orbit and stellar rotation are synchronized. ...
const DissipatingZone & __zone
The zone whose spin is monitored.
int orbital_frequency_multiplier() const
The multiplier in front of the orbital frequency in the lock.
StoppingConditionType
The reasons for stopping the evolution currently supported.
Orientations of zones of bodies in a binary system.
bool __primary
Which body&#39;s spin is checked for locking.
A layer of a system body for which the tidal bulge is not exactly in phase with the tidal potential...
A base class for all stopping conditions.
StoppingConditionType type(unsigned=0) const
Identify this as a SYNCHRONIZED condition.
EvolModeType
The various evolution modes.
Definition: Common.h:42
unsigned __zone_index
Which zone is checked for locking.
Defines the various stopping conditions needed by OrbitSolver.
int spin_frequency_multiplier() const
The multiplier in front of the spin frequency in the lock.
Describes a system of two bodies orbiting each other.
Definition: BinarySystem.h:56