Planetary Orbital Evolution due to Tides
Orbital evolution of two objects experiencing tides
Evolve::TransformedSolution Class Reference

A class that can be passed to the solution testing function instead of the solver that transforms the solutions before testing. More...

#include <TransformedSolution.h>

+ Collaboration diagram for Evolve::TransformedSolution:

Public Member Functions

 TransformedSolution ()
 Default constructor, use add_transformation repeatedly to build the final solution. More...
 
 TransformedSolution (const std::vector< const Core::OneArgumentDiffFunction *> &transforms, double start_age)
 Create a single piece transformed solution. More...
 
void add_transformation (const std::vector< const Core::OneArgumentDiffFunction *> &transforms, double change_age)
 Add more pieces to the transformation. More...
 
const std::vector< const std::list< double > *> & operator() (const std::vector< const std::list< double > * > &solution)
 Apply this transformatiot to the given solution. More...
 
const std::vector< const std::list< double > *> & get_transformed_solution () const
 The last transformed solution. More...
 
 ~TransformedSolution ()
 The derivative of a transformed variable at the tabulated ages. More...
 

Private Attributes

std::vector< const std::list< double > * > __transformed_orbit
 The transformed orbit values. More...
 
std::vector< std::list< const Core::OneArgumentDiffFunction * > > __transforms
 The transformed derivatives. More...
 
std::list< double > __change_ages
 The boundaries between consecutive trasformation functions. More...
 

Detailed Description

A class that can be passed to the solution testing function instead of the solver that transforms the solutions before testing.

The tranformed orbit is obtained by applying a list of OneArgumentDiffFunction objects to each of the tabulated variables. Each transformation function is used only in a pre-specified age range.

Definition at line 32 of file TransformedSolution.h.

Constructor & Destructor Documentation

◆ TransformedSolution() [1/2]

Evolve::TransformedSolution::TransformedSolution ( )
inline

Default constructor, use add_transformation repeatedly to build the final solution.

Definition at line 54 of file TransformedSolution.h.

◆ TransformedSolution() [2/2]

Evolve::TransformedSolution::TransformedSolution ( const std::vector< const Core::OneArgumentDiffFunction *> &  transforms,
double  start_age 
)
inline

Create a single piece transformed solution.

Parameters
transformsSee transforms argument to add_transformation()
start_ageThe age at which this transformation starts to apply

Definition at line 61 of file TransformedSolution.h.

◆ ~TransformedSolution()

Evolve::TransformedSolution::~TransformedSolution ( )

The derivative of a transformed variable at the tabulated ages.

Definition at line 65 of file TransformedSolution.cpp.

Member Function Documentation

◆ add_transformation()

void Evolve::TransformedSolution::add_transformation ( const std::vector< const Core::OneArgumentDiffFunction *> &  transforms,
double  change_age 
)

Add more pieces to the transformation.

Parameters
transformsThe functions to use to transform the real valued quantities.
change_ageThe age up to which this transformation applies.

Definition at line 5 of file TransformedSolution.cpp.

◆ get_transformed_solution()

const std::vector< const std::list<double> * >& Evolve::TransformedSolution::get_transformed_solution ( ) const
inline

The last transformed solution.

Returns a reference to member variable, so either copy the result or do not destroy this object before use.

Definition at line 101 of file TransformedSolution.h.

◆ operator()()

const std::vector< const std::list< double > *> & Evolve::TransformedSolution::operator() ( const std::vector< const std::list< double > * > &  solution)

Apply this transformatiot to the given solution.

Returns a reference to member variable, so either copy the result or do not destroy this object before use.

Parameters
solutionEntries are assumed ordered by RealEvolutionQuantity

Definition at line 17 of file TransformedSolution.cpp.

Member Data Documentation

◆ __change_ages

std::list<double> Evolve::TransformedSolution::__change_ages
private

The boundaries between consecutive trasformation functions.

Definition at line 49 of file TransformedSolution.h.

◆ __transformed_orbit

std::vector< const std::list<double> *> Evolve::TransformedSolution::__transformed_orbit
private

The transformed orbit values.

Definition at line 35 of file TransformedSolution.h.

◆ __transforms

std::vector< std::list<const Core::OneArgumentDiffFunction *> > Evolve::TransformedSolution::__transforms
private

The transformed derivatives.

The functions to use to transform the solution.

Each vector entry corresponds to one quantity in the order defined by RealEvolutionQuantity and the inner list contains the various patches to apply.

Definition at line 46 of file TransformedSolution.h.


The documentation for this class was generated from the following files: