Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
PowerlawPhaseLagZone.cpp
1 #include "PowerlawPhaseLagZone.h"
2 
4  int orbital_frequency_multiplier,
5  int spin_frequency_multiplier,
6  double forcing_frequency,
7  Dissipation::QuantityEntry entry,
8  double &above_lock_value) const
9 {
10  if(entry == Dissipation::AGE || entry == Dissipation::EXPANSION_ERROR)
11  return 0;
12 
13  double result = (__phase_lag_one_day
14  *
15  std::pow(std::abs(forcing_frequency) / (2.0 * M_PI),
17 
18  if(result > __max_phase_lag) {
19  if(entry == Dissipation::NO_DERIV) result = __max_phase_lag;
20  else result = 0.0;
21  } else if(entry != Dissipation::NO_DERIV) {
22  result *= __phase_lag_powerlaw_index / forcing_frequency;
23  if(entry == Dissipation::SPIN_FREQUENCY)
24  result *= -spin_frequency_multiplier;
26  result *= orbital_frequency_multiplier;
27  }
28 
29  if(forcing_frequency == 0) above_lock_value = -result;
30  return (forcing_frequency > 0 ? result : -result);
31 }
double __phase_lag_one_day
The phase lag at a forcing frequency of one day.
SPIN_FREQUENCY
The derivative w.r.t. the spin frequency of a dissipating zone.
Declares the class that provides the phase lag function to DissipatingZone objects.
double __max_phase_lag
The maximum phase lag achieved for any frequency.
AGE
The derivative w.r.t. age, excluding the dependence through the body's radius and the moments of iner...
double __phase_lag_powerlaw_index
The powerlaw index of the phase lag period dependence.
NO_DERIV
The quantity itself, undifferentiated.
ORBITAL_FREQUENCY
The derivative w.r.t. the orbital frequency.
virtual double modified_phase_lag(int orbital_frequency_multiplier, int spin_frequency_multiplier, double forcing_frequency, Dissipation::QuantityEntry entry, double &above_lock_value) const
Should return the tidal phase lag time the love number for the given tidal term (or one of its deriva...