Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
TransformedSolution.h
Go to the documentation of this file.
1 
11 #ifndef __TRANSFORMED_SOLUTION_H
12 #define __TRANSFORMED_SOLUTION_H
13 
14 #include "RealEvolutionQuantity.h"
15 #include "../../Core/Functions.h"
16 #include <vector>
17 #include <list>
18 
19 namespace Evolve {
20 
33  private:
35  std::vector< const std::list<double> *> __transformed_orbit;
36 
38 // std::vector< const std::list<double> *> __transformed_deriv;
39 
45  std::vector< std::list<const Core::OneArgumentDiffFunction *> >
47 
49  std::list<double> __change_ages;
50 
51  public:
55  __transformed_orbit(NUM_REAL_QUANTITIES, NULL),
56 // __transformed_deriv(NUM_REAL_QUANTITIES)
58  {};
59 
63  const std::vector<const Core::OneArgumentDiffFunction *> &
64  transforms,
65 
67  double start_age
68  ) :
69  __transformed_orbit(NUM_REAL_QUANTITIES, NULL),
70 // __transformed_deriv(NUM_REAL_QUANTITIES)
72  {
73  add_transformation(transforms, start_age);
74  }
75 
77  void add_transformation(
79  //The order is defined by RealEvolutionQuantity.
80  const std::vector<const Core::OneArgumentDiffFunction *> &
81  transforms,
82 
84  double change_age
85  );
86 
91  const std::vector< const std::list<double> * > &operator()(
93  const std::vector< const std::list<double> * > &solution
94  );
95 
100  const std::vector< const std::list<double> * >
102  {return __transformed_orbit;}
103 
105 /* const std::list<double> *get_tabulated_var_deriv(
106  EvolVarType var_type) const;*/
107 
109  };
110 
111 } //End Evolve namespace.
112 
113 #endif
const std::vector< const std::list< double > *> & operator()(const std::vector< const std::list< double > * > &solution)
Apply this transformatiot to the given solution.
TransformedSolution()
Default constructor, use add_transformation repeatedly to build the final solution.
std::vector< const std::list< double > * > __transformed_orbit
The transformed orbit values.
Orientations of zones of bodies in a binary system.
Declare an inumeration for the various quantities tracked by the evolution and checked.
const std::vector< const std::list< double > *> & get_transformed_solution() const
The last transformed solution.
AGE
The derivative w.r.t. age, excluding the dependence through the body&#39;s radius and the moments of iner...
TransformedSolution(const std::vector< const Core::OneArgumentDiffFunction *> &transforms, double start_age)
Create a single piece transformed solution.
std::list< double > __change_ages
The boundaries between consecutive trasformation functions.
std::vector< std::list< const Core::OneArgumentDiffFunction * > > __transforms
The transformed derivatives.
~TransformedSolution()
The derivative of a transformed variable at the tabulated ages.
A class that can be passed to the solution testing function instead of the solver that transforms the...
void add_transformation(const std::vector< const Core::OneArgumentDiffFunction *> &transforms, double change_age)
Add more pieces to the transformation.