CAPD DynSys Library  5.2.0
capd::poincare::TimeMap< SolverT > Class Template Reference

TimeMap class provides methods for transport of sets (or points) by a given flow over some time interval. More...

#include <capd/poincare/TimeMap.h>

Public Types

typedef SolverT Solver
 
typedef Solver::VectorFieldType VectorFieldType
 
typedef Solver::MatrixType MatrixType
 
typedef Solver::VectorType VectorType
 
typedef Solver::ScalarType ScalarType
 
typedef Solver::SolutionCurve CurveType
 
typedef capd::diffAlgebra::SolutionCurve< CurveTypeSolutionCurve
 
typedef CurveType::HessianType HessianType
 data structure for storing Hessians More...
 
typedef CurveType::JetType JetType
 data structure for storing jets (truncated Taylor series) More...
 
typedef VectorType::size_type size_type
 integral type used to index containers (vectors, matrices, etc) More...
 

Public Member Functions

 TimeMap (Solver &solver)
 
VectorType operator() (ScalarType time, VectorType &v)
 For a vector v it computes its position after time time. More...
 
VectorType operator() (ScalarType time, VectorType &v, ScalarType &in_out_time)
 
VectorType operator() (ScalarType time, VectorType &v, SolutionCurve &solution)
 
VectorType operator() (ScalarType time, VectorType &v, MatrixType &derivative)
 For a vector v it computes its position after time 'time' and derivative with respect to initial conditions. More...
 
VectorType operator() (ScalarType time, VectorType &v, MatrixType &derivative, ScalarType &in_out_time)
 
VectorType operator() (ScalarType time, VectorType &v, MatrixType &derivative, SolutionCurve &solution)
 
VectorType operator() (ScalarType time, VectorType &v, const MatrixType &initMatrix, MatrixType &derivative)
 
VectorType operator() (ScalarType time, VectorType &v, const MatrixType &initMatrix, MatrixType &derivative, ScalarType &in_out_time)
 
VectorType operator() (ScalarType time, VectorType &v, const MatrixType &initMatrix, MatrixType &derivative, SolutionCurve &solution)
 
VectorType operator() (ScalarType time, VectorType &v, MatrixType &derivative, HessianType &hessian)
 Operators for integration of second order variational equations. More...
 
VectorType operator() (ScalarType time, VectorType &v, MatrixType &derivative, HessianType &hessian, ScalarType &in_out_time)
 
VectorType operator() (ScalarType time, VectorType &v, MatrixType &derivative, HessianType &hessian, SolutionCurve &solution)
 
VectorType operator() (ScalarType time, VectorType &v, const MatrixType &initMatrix, const HessianType &initHessian, MatrixType &derivative, HessianType &hessian)
 
VectorType operator() (ScalarType time, VectorType &v, const MatrixType &initMatrix, const HessianType &initHessian, MatrixType &derivative, HessianType &hessian, ScalarType &in_out_time)
 
VectorType operator() (ScalarType time, VectorType &v, const MatrixType &initMatrix, const HessianType &initHessian, MatrixType &derivative, HessianType &hessian, SolutionCurve &solution)
 
VectorType operator() (ScalarType time, VectorType &v, JetType &jet)
 For a vector v it computes its position after time 'time' and higher order derivatives with respect to initial conditions. More...
 
VectorType operator() (ScalarType time, VectorType &v, JetType &jet, ScalarType &in_out_time)
 
VectorType operator() (ScalarType time, VectorType &v, JetType &jet, SolutionCurve &solution)
 
VectorType operator() (ScalarType time, const JetType &initJet, JetType &jet)
 
VectorType operator() (ScalarType time, const JetType &initJet, JetType &jet, ScalarType &in_out_time)
 
VectorType operator() (ScalarType time, const JetType &initJet, JetType &jet, SolutionCurve &solution)
 
template<class CnCoeffType >
VectorType operator() (ScalarType time, VectorType &v, CnCoeffType &result)
 
template<typename SetType >
VectorType operator() (ScalarType time, SetType &theSet, MatrixType &derivative)
 Integrates 'theSet' until time 'time'. More...
 
template<typename SetType >
VectorType operator() (ScalarType time, SetType &theSet)
 Integrates 'theSet' until time 'time'. More...
 
template<typename SetType >
VectorType operator() (ScalarType time, SetType &theSet, SolutionCurve &solution)
 Integrates 'theSet' until time 'time'. More...
 
const SolvergetSolver () const
 Returns read-only reference to solver used to integrate the system. More...
 
SolvergetSolver ()
 Returns reference to solver used to integrate the system. More...
 
const SolvergetDynamicalSystem () const
 Returns read-only reference to solver used to integrate the system. More...
 
SolvergetDynamicalSystem ()
 Returns reference to solver used to integrate the system. More...
 
const VectorFieldTypegetVectorField () const
 Returns read-only reference to current vector field. More...
 
VectorFieldTypegetVectorField ()
 Returns reference to current vector field. More...
 
size_type getOrder () const
 Returns order of numerical method. More...
 
void setOrder (size_type newOrder)
 sets new order of numerical method More...
 
ScalarType getStep () const
 Returns step of numerical method (does make sense only when step control is disabled) More...
 
void setStep (const ScalarType &newStep)
 Sets step of numerical method (does make sense only when step control is disabled) More...
 
void turnOnStepControl ()
 Disables automatic step control. More...
 
void turnOffStepControl ()
 Enables automatic step control. Step control strategy is builded into the dynamical system. More...
 
void onOffStepControl (bool sc)
 Disables or enables automatic step control. More...
 
void stopAfterStep (bool b)
 For dense output. If true, integration procedure returns after each successful step. The computation can be then resumed - see examples. More...
 
bool completed () const
 For dense output. Returns true if the trajectory has been integrated to the requested time. More...
 
const ScalarTypegetCurrentTime () const
 For dense output. Returns current time during integration. More...
 
template<typename SetType >
SolverT::VectorType operator() (ScalarType Time, SetType &originalSet)
 
template<typename SetType >
SolverT::VectorType operator() (ScalarType Time, SetType &originalSet, SolutionCurve &solution)
 
template<typename SetType >
SolverT::VectorType operator() (ScalarType Time, SetType &originalSet, MatrixType &derivative)
 

Protected Member Functions

template<class SetType >
void initComputations (SetType &originalSet, void *current)
 
template<class SetType >
void moveSet (ScalarType time, SetType &originalSet, void *current)
 

Protected Attributes

Solverm_solver
 an abstract solver of dynamical system More...
 
void * m_currentSet
 for dense output. Pointer to an object representing initial condition that is integrated. More...
 
bool m_oneStep
 for dense output. True if the procedure should return after each successful step. More...
 
ScalarType m_currentTime
 Holds current time during integration. More...
 
bool m_completed
 flag: true if trajectory has been integrated until requested time. More...
 
SolutionCurvem_solution
 

Detailed Description

template<typename SolverT>
class capd::poincare::TimeMap< SolverT >

TimeMap class provides methods for transport of sets (or points) by a given flow over some time interval.

Template parameter is an abstract solver of dynamical system. It is assumed that it provides methods for one-step transport (both for discrete and continuous case).

Member Typedef Documentation

◆ CurveType

template<typename SolverT >
typedef Solver::SolutionCurve capd::poincare::TimeMap< SolverT >::CurveType

◆ HessianType

template<typename SolverT >
typedef CurveType::HessianType capd::poincare::TimeMap< SolverT >::HessianType

data structure for storing Hessians

◆ JetType

template<typename SolverT >
typedef CurveType::JetType capd::poincare::TimeMap< SolverT >::JetType

data structure for storing jets (truncated Taylor series)

◆ MatrixType

template<typename SolverT >
typedef Solver::MatrixType capd::poincare::TimeMap< SolverT >::MatrixType

◆ ScalarType

template<typename SolverT >
typedef Solver::ScalarType capd::poincare::TimeMap< SolverT >::ScalarType

◆ size_type

template<typename SolverT >
typedef VectorType::size_type capd::poincare::TimeMap< SolverT >::size_type

integral type used to index containers (vectors, matrices, etc)

◆ SolutionCurve

template<typename SolverT >
typedef capd::diffAlgebra::SolutionCurve<CurveType> capd::poincare::TimeMap< SolverT >::SolutionCurve

◆ Solver

template<typename SolverT >
typedef SolverT capd::poincare::TimeMap< SolverT >::Solver

◆ VectorFieldType

template<typename SolverT >
typedef Solver::VectorFieldType capd::poincare::TimeMap< SolverT >::VectorFieldType

◆ VectorType

template<typename SolverT >
typedef Solver::VectorType capd::poincare::TimeMap< SolverT >::VectorType

Member Function Documentation

◆ getDynamicalSystem()

template<typename SolverT >
Solver& capd::poincare::TimeMap< SolverT >::getDynamicalSystem ( )

Returns reference to solver used to integrate the system.

◆ getSolver()

template<typename SolverT >
Solver& capd::poincare::TimeMap< SolverT >::getSolver ( )

Returns reference to solver used to integrate the system.

◆ getVectorField()

template<typename SolverT >
VectorFieldType& capd::poincare::TimeMap< SolverT >::getVectorField ( )

Returns reference to current vector field.

◆ operator()() [1/3]

template<typename SolverT >
template<typename SetType >
VectorType capd::poincare::TimeMap< SolverT >::operator() ( ScalarType  time,
SetType &  theSet 
)

Integrates 'theSet' until time 'time'.

Parameters
[in,out]theSet- initial condition for integration. 'theSet.getCurrentTime()' should be an initial time for nonautonomous systems. On output 'theSet' represents solution to ODE at time 'time'

◆ operator()() [2/3]

template<typename SolverT >
template<typename SetType >
VectorType capd::poincare::TimeMap< SolverT >::operator() ( ScalarType  time,
SetType &  theSet,
MatrixType derivative 
)

Integrates 'theSet' until time 'time'.

Parameters
[in,out]theSet- initial condition for integration. 'theSet.getCurrentTime()' should be an initial time for nonautonomous systems. On output 'theSet' represents solution to ODE at time 'time'
[out]derivativemonodromy matrix wrt to initial condition at time 'time'.

◆ operator()() [3/3]

template<typename SolverT >
template<typename SetType >
VectorType capd::poincare::TimeMap< SolverT >::operator() ( ScalarType  time,
SetType &  theSet,
SolutionCurve solution 
)

Integrates 'theSet' until time 'time'.

Parameters
[in,out]theSet- initial condition for integration. 'theSet.getCurrentTime()' should be an initial time for nonautonomous systems. On output 'theSet' represents solution to ODE at time 'time'
[out]solution- after successful integration becomes a functional object representing entire solution to ODE that can be evaluated at any intermediate time.

Member Data Documentation

◆ m_completed

template<typename SolverT >
bool capd::poincare::TimeMap< SolverT >::m_completed
protected

flag: true if trajectory has been integrated until requested time.

◆ m_currentSet

template<typename SolverT >
void* capd::poincare::TimeMap< SolverT >::m_currentSet
protected

for dense output. Pointer to an object representing initial condition that is integrated.

◆ m_currentTime

template<typename SolverT >
ScalarType capd::poincare::TimeMap< SolverT >::m_currentTime
protected

Holds current time during integration.

◆ m_oneStep

template<typename SolverT >
bool capd::poincare::TimeMap< SolverT >::m_oneStep
protected

for dense output. True if the procedure should return after each successful step.

◆ m_solution

template<typename SolverT >
SolutionCurve* capd::poincare::TimeMap< SolverT >::m_solution
protected

◆ m_solver

template<typename SolverT >
Solver& capd::poincare::TimeMap< SolverT >::m_solver
protected

an abstract solver of dynamical system