Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
ConstPhaseLagZone.h
Go to the documentation of this file.
1 
9 #ifndef __CONST_PHASE_LAG_H
10 #define __CONST_PHASE_LAG_H
11 
13 
14 namespace Evolve {
15 
21  private:
23  double __phase_lag;
24  public:
27  double phase_lag,
28 
30  const std::valarray<double> &mass_coefficients,
31 
33  const std::valarray<double> &radius_coefficients,
34 
37  const std::valarray<double> &inertia_coefficients
38  ) :
39  PolynomialEvolutionZone(mass_coefficients,
40  radius_coefficients,
41  inertia_coefficients),
42  __phase_lag(phase_lag)
43  {}
44 
46  double modified_phase_lag(int,
47  int spin_frequency_multiplier,
48  double forcing_frequency,
49  Dissipation::QuantityEntry entry,
50  double &above_lock_value) const
51  {
52  double result;
53 
54  if(entry != Dissipation::NO_DERIV)
55  result = 0.0;
56  else
57  result = __phase_lag;
58 
59  if(forcing_frequency == 0) {
60  return 0.0;
61  if(spin_frequency_multiplier >= 0) {
62  above_lock_value = -result;
63  return result;
64  } else {
65  above_lock_value = result;
66  return -result;
67  }
68  } else {
69  return (forcing_frequency > 0 ? result : -result);
70  }
71  }
72 
74  bool dissipative() const {return true;}
75 
77  bool can_lock() const {return true;}
78  };//End ConstPhaseLagZone class.
79 }//End Evolve namespace.
80 
81 #endif
A zone with constant phase lag for all tidal terms.
Orientations of zones of bodies in a binary system.
double __phase_lag
The constant value of the phase lag.
bool can_lock() const
See DissipatingZone::can_lock()
Declare a dissipative zone class where the mass and radius evolution are given by a polynomial...
NO_DERIV
The quantity itself, undifferentiated.
ConstPhaseLagZone(double phase_lag, const std::valarray< double > &mass_coefficients, const std::valarray< double > &radius_coefficients, const std::valarray< double > &inertia_coefficients)
double forcing_frequency(int orbital_frequency_multiplier, int spin_frequency_multiplier, double orbital_frequency) const
The tidal forcing frequency for the given term and orbital frequency.
double modified_phase_lag(int, int spin_frequency_multiplier, double forcing_frequency, Dissipation::QuantityEntry entry, double &above_lock_value) const
See DissipatingZone::modified_phase_lag()
bool dissipative() const
See DissipatingZone::dissipative()