Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
ZoneOrientation.h
Go to the documentation of this file.
1 #ifndef __ZONE_ORIENTATION_H
2 #define __ZONE_ORIENTATION_H
3 
17 #include "../Core/SharedLibraryExportMacros.h"
18 #include "DissipationQuantities.h"
19 #include "../Core/Common.h"
20 #include "../Core/IncludeEigen.h"
21 
22 namespace Evolve {
23 
24  class LIB_PUBLIC ZoneOrientation {
25  private:
26 
27  double
29  __inclination,
30 
32  __inclination_rate,
33 
35  __periapsis,
36 
39  public:
40  ZoneOrientation(double inclination = Core::NaN,
41  double periapsis = Core::NaN) :
42  __inclination(inclination),
43  __periapsis(periapsis)
44  {}
45 
47  void configure(double inclination, double periapsis)
48  {__inclination = inclination; __periapsis = periapsis;}
49 
50  void set_evolution_rates(double inclination, double periapsis)
51  {__inclination_rate = inclination; __periapsis_rate = periapsis;}
52 
54  double inclination(bool evolution_rate=false) const {
55  return (evolution_rate ? __inclination_rate: __inclination);
56  }
57 
59  double periapsis(bool evolution_rate=false) const {
60  return (evolution_rate ? __periapsis_rate : __periapsis);
61  }
62 
63  }; //End ZoneOrientation class.
64 
66  LIB_PUBLIC Eigen::Vector3d zone_to_zone_transform(
68  const ZoneOrientation &from_zone,
69 
72  const ZoneOrientation &to_zone,
73 
75  const Eigen::Vector3d &vector,
76 
81  Dissipation::QuantityEntry deriv=Dissipation::NO_DERIV,
82 
86  bool with_respect_to_from=false
87  );
88 
89  /*
91  void transform_zone_orientation(
93  const ZoneOrientation &zone,
94 
97  const ZoneOrientation &reference,
98 
100  double &inclination,
101 
103  double &periapsis
104  );*/
105 
106 }//End Evolve namespace.
107 
108 #endif
double periapsis(bool evolution_rate=false) const
The argument of periapsis of this zone minus the reference zone's.
Eigen::Vector3d zone_to_zone_transform(const ZoneOrientation &from_zone, const ZoneOrientation &to_zone, const Eigen::Vector3d &vector, Dissipation::QuantityEntry deriv, bool with_respect_to_from)
Transforms a vector betwen the coordinates systems of two zones.
Orientations of zones of bodies in a binary system.
void configure(double inclination, double periapsis)
Changes the zone orientation.
double __periapsis_rate
The rate at which the periapsis of the zone is evolving.
Declaration of enumerations of dissipation quantities and derivatives.
double inclination(bool evolution_rate=false) const
The angle between the angular momenta of the zone and the orbit.
NO_DERIV
The quantity itself, undifferentiated.