Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
SingleTidalTermBody.h
Go to the documentation of this file.
1 
8 #ifndef __SINGLE_TIDAL_TERM_BODY_H
9 #define __SINGLE_TIDAL_TERM_BODY_H
10 
11 #include "../../Star/SaturatingSkumanichWindBody.h"
12 #include "SingleTidalTermZone.h"
13 
14 namespace Evolve {
15 
22  private:
23  SingleTidalTermZone __zone;
24  public:
29  double wind_strength,
30 
32  double saturation_frequency,
33 
36  int orbital_frequency_multiplier,
37 
40  int spin_frequency_multiplier,
41 
43  double phase_lag,
44 
46  const std::valarray<double> &mass_coefficients,
47 
49  const std::valarray<double> &radius_coefficients,
50 
53  const std::valarray<double> &inertia_coefficients
54  ) :
55  SaturatingSkumanichWindBody(wind_strength,
56  saturation_frequency),
57  __zone(orbital_frequency_multiplier,
58  spin_frequency_multiplier,
59  phase_lag,
60  mass_coefficients,
61  radius_coefficients,
62  inertia_coefficients)
63  {}
64 
66  unsigned number_zones() const {return 1;}
67 
70  unsigned
71 #ifndef NDEBUG
72  zone_index
73 #endif
74  ) const
75  {
76  assert(zone_index == 0);
77  return __zone;
78  }
79 
82  unsigned
83 #ifndef NDEBUG
84  zone_index
85 #endif
86  )
87  {
88  assert(zone_index == 0);
89  return __zone;
90  }
91 
93  Eigen::Vector3d angular_momentum_coupling(
94  unsigned,
95  Dissipation::QuantityEntry =Dissipation::NO_DERIV,
96  bool =false
97  ) const
98  {assert(false);}
99  };//End SingleTidalTermBody class.
100 
101 }//End Evolve namespace.
102 
103 #endif
SaturatingSkumanichWindBody(double wind_strength, double saturation_frequency)
double saturation_frequency()
The frequency at which the wind loss saturates in rad/day.
unsigned number_zones() const
See DissipatingBody::number_zones().
A skumanich wind body with a single zone dissipative to only a single tidal term. ...
Declare a dissipative zone class with polynomial evolution with only a single tidel term having non-z...
Orientations of zones of bodies in a binary system.
SingleTidalTermBody(double wind_strength, double saturation_frequency, int orbital_frequency_multiplier, int spin_frequency_multiplier, double phase_lag, const std::valarray< double > &mass_coefficients, const std::valarray< double > &radius_coefficients, const std::valarray< double > &inertia_coefficients)
Initialize the body&#39;s single zone and the wind with the given arguments.
A layer of a system body for which the tidal bulge is not exactly in phase with the tidal potential...
A zone dissipative to only a single tidal term.
const DissipatingZone & zone(unsigned zone_index) const
See DissipatingBody::zone(int) const.
NO_DERIV
The quantity itself, undifferentiated.
DissipatingZone & zone(unsigned zone_index)
See DissipatingBody::zone(int).
A DissipatingBody which loses angular momentum at a rate .
Eigen::Vector3d angular_momentum_coupling(unsigned, Dissipation::QuantityEntry=Dissipation::NO_DERIV, bool=false) const
See DissipatingBody::angular_momentum_coupling().