CAPD DynSys Library  5.2.0
capd::diffIncl::DiffInclusion< MapT, DynSysT > Class Template Reference

Base class for rigorous integration of differential inclusions. More...

#include <capd/diffIncl/DiffInclusion.h>

Public Types

typedef MapT MultiMapType
 
typedef MultiMapType MapType
 
typedef MapT::MapType VectorFieldType
 
typedef MapT::FunctionType FunctionType
 
typedef MapType::MatrixType MatrixType
 
typedef MatrixType::RowVectorType VectorType
 
typedef MatrixType::ScalarType ScalarType
 
typedef capd::vectalg::Norm< VectorType, MatrixTypeNormType
 
typedef DynSysT DynSysType
 
typedef DynSysType::SolutionCurve SolutionCurve
 
typedef DynSysT::StepControlType StepControlType
 

Public Member Functions

 DiffInclusion (MultiMapType &diffInclusion, int order, NormType const &norm)
 
virtual ~DiffInclusion ()
 
virtual VectorType diffInclusionEnclosure (const ScalarType &t, const VectorType &x)
 eclosure of solution of diff. inclusion during one time step starting at x More...
 
virtual VectorType dynamicalSystemEnclosure (const ScalarType &t, const VectorType &x)
 eclosure of solution of selected ODE during one time step starting at x More...
 
virtual VectorType enclosure (const ScalarType &t, const VectorType &x)
 eclosure of solution of diff. inclusion during one time step starting at x More...
 
const MapTypegetVectorField () const
 returns RHS of a diff. inclusion More...
 
MapTypegetVectorField ()
 returns RHS of a diff. inclusion More...
 
int getOrder () const
 returns order of numerical method More...
 
void setOrder (int newOrder)
 sets order of numerical method More...
 
ScalarType getStep () const
 returns current time step More...
 
void setStep (const ScalarType &newStep)
 sets currect time step More...
 
void adjustTimeStep (const ScalarType &newStep)
 
DynSysTypegetDynamicalSystem ()
 returns dynamical system (numerical ODE integrator) More...
 
const DynSysTypegetDynamicalSystem () const
 returns dynamical system (numerical ODE integrator) More...
 
int dimension () const
 
const SolutionCurvegetCurve ()
 
virtual ScalarType getCoeffNorm (unsigned i, int degree) const
 
void clearCoefficients ()
 
template<class SetType >
ScalarType computeNextTimeStep (const SetType &x, const ScalarType &maxStep)
 
template<class SetType >
ScalarType getFirstTimeStep (const SetType &x, const ScalarType &maxStep)
 
void turnOnStepControl ()
 
void turnOffStepControl ()
 
void onOffStepControl (bool _onOffStepControl)
 
const StepControlTypegetStepControl () const
 
void setStepControl (const StepControlType &stepControl)
 
bool isStepChangeAllowed () const
 
void setAbsoluteTolerance (double tol)
 
void setRelativeTolerance (double tol)
 
double getAbsoluteTolerance () const
 
double getRelativeTolerance () const
 
ScalarType getMaxStep () const
 
void setMaxStep (ScalarType maxStep)
 

Static Public Member Functions

template<class Solver , class SetType >
static double getEffectiveTolerance (Solver &solver, const SetType &s)
 

Protected Attributes

NormTypem_norm
 norm used in perturbation estimations More...
 
MultiMapTypem_diffIncl
 RHS of differential inclusion. More...
 
DynSysType m_dynamicalSystem
 dynamical system of selected ODE (numerical integrator) More...
 

Detailed Description

template<typename MapT, typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
class capd::diffIncl::DiffInclusion< MapT, DynSysT >

Base class for rigorous integration of differential inclusions.

Template arguments:

  • MapT - MultiMap that stores RHS of the differential inclusion in the form : selection + 'error bounds' (we assume that it implements all methods that class capd::diffIncl::MultiMap has).
  • DynSysT - numerical method for ODE integration
See also
capd::diffIncl::DiffInclusionLN,
capd::diffIncl::DiffInclusionCW

Member Typedef Documentation

◆ DynSysType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef DynSysT capd::diffIncl::DiffInclusion< MapT, DynSysT >::DynSysType

◆ FunctionType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef MapT::FunctionType capd::diffIncl::DiffInclusion< MapT, DynSysT >::FunctionType

◆ MapType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef MultiMapType capd::diffIncl::DiffInclusion< MapT, DynSysT >::MapType

◆ MatrixType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef MapType::MatrixType capd::diffIncl::DiffInclusion< MapT, DynSysT >::MatrixType

◆ MultiMapType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef MapT capd::diffIncl::DiffInclusion< MapT, DynSysT >::MultiMapType

◆ NormType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef capd::vectalg::Norm<VectorType, MatrixType> capd::diffIncl::DiffInclusion< MapT, DynSysT >::NormType

◆ ScalarType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef MatrixType::ScalarType capd::diffIncl::DiffInclusion< MapT, DynSysT >::ScalarType

◆ SolutionCurve

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef DynSysType::SolutionCurve capd::diffIncl::DiffInclusion< MapT, DynSysT >::SolutionCurve

◆ StepControlType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef DynSysT::StepControlType capd::diffIncl::DiffInclusion< MapT, DynSysT >::StepControlType

◆ VectorFieldType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef MapT::MapType capd::diffIncl::DiffInclusion< MapT, DynSysT >::VectorFieldType

◆ VectorType

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
typedef MatrixType::RowVectorType capd::diffIncl::DiffInclusion< MapT, DynSysT >::VectorType

Constructor & Destructor Documentation

◆ DiffInclusion()

template<typename MapT , typename DynSysT >
capd::diffIncl::DiffInclusion< MapT, DynSysT >::DiffInclusion ( MultiMapType diffInclusion,
int  order,
NormType const &  norm 
)

◆ ~DiffInclusion()

template<typename MapT , typename DynSysT >
capd::diffIncl::DiffInclusion< MapT, DynSysT >::~DiffInclusion
virtual

Member Function Documentation

◆ adjustTimeStep()

template<typename MapT , typename DynSysT >
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::adjustTimeStep ( const ScalarType newStep)
inline

< sets time step but does not change step control settings (compare setStep)

◆ clearCoefficients()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::clearCoefficients ( )
inline

◆ computeNextTimeStep()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
template<class SetType >
ScalarType capd::diffIncl::DiffInclusion< MapT, DynSysT >::computeNextTimeStep ( const SetType &  x,
const ScalarType maxStep 
)
inline

◆ diffInclusionEnclosure()

template<typename MapT , typename DynSysT >
DiffInclusion< MapT, DynSysT >::VectorType capd::diffIncl::DiffInclusion< MapT, DynSysT >::diffInclusionEnclosure ( const ScalarType t,
const VectorType x 
)
inlinevirtual

eclosure of solution of diff. inclusion during one time step starting at x

Computes enclosure of image of given set for differential inclusion during whole time step.

◆ dimension()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
int capd::diffIncl::DiffInclusion< MapT, DynSysT >::dimension ( ) const
inline

◆ dynamicalSystemEnclosure()

template<typename MapT , typename DynSysT >
DiffInclusion< MapT, DynSysT >::VectorType capd::diffIncl::DiffInclusion< MapT, DynSysT >::dynamicalSystemEnclosure ( const ScalarType t,
const VectorType x 
)
inlinevirtual

eclosure of solution of selected ODE during one time step starting at x

◆ enclosure()

template<typename MapT , typename DynSysT >
DiffInclusion< MapT, DynSysT >::VectorType capd::diffIncl::DiffInclusion< MapT, DynSysT >::enclosure ( const ScalarType t,
const VectorType x 
)
inlinevirtual

eclosure of solution of diff. inclusion during one time step starting at x

◆ getAbsoluteTolerance()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
double capd::diffIncl::DiffInclusion< MapT, DynSysT >::getAbsoluteTolerance ( ) const
inline

◆ getCoeffNorm()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
virtual ScalarType capd::diffIncl::DiffInclusion< MapT, DynSysT >::getCoeffNorm ( unsigned  i,
int  degree 
) const
inlinevirtual

◆ getCurve()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
const SolutionCurve& capd::diffIncl::DiffInclusion< MapT, DynSysT >::getCurve ( )
inline

◆ getDynamicalSystem() [1/2]

template<typename MapT , typename DynSysT >
const DiffInclusion< MapT, DynSysT >::DynSysType & capd::diffIncl::DiffInclusion< MapT, DynSysT >::getDynamicalSystem
inline

returns dynamical system (numerical ODE integrator)

◆ getDynamicalSystem() [2/2]

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
const DynSysType& capd::diffIncl::DiffInclusion< MapT, DynSysT >::getDynamicalSystem ( ) const

returns dynamical system (numerical ODE integrator)

◆ getEffectiveTolerance()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
template<class Solver , class SetType >
static double capd::diffIncl::DiffInclusion< MapT, DynSysT >::getEffectiveTolerance ( Solver solver,
const SetType &  s 
)
inlinestatic

◆ getFirstTimeStep()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
template<class SetType >
ScalarType capd::diffIncl::DiffInclusion< MapT, DynSysT >::getFirstTimeStep ( const SetType &  x,
const ScalarType maxStep 
)
inline

◆ getMaxStep()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
ScalarType capd::diffIncl::DiffInclusion< MapT, DynSysT >::getMaxStep ( ) const
inline

◆ getOrder()

template<typename MapT , typename DynSysT >
int capd::diffIncl::DiffInclusion< MapT, DynSysT >::getOrder
inline

returns order of numerical method

◆ getRelativeTolerance()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
double capd::diffIncl::DiffInclusion< MapT, DynSysT >::getRelativeTolerance ( ) const
inline

◆ getStep()

template<typename MapT , typename DynSysT >
DiffInclusion< MapT, DynSysT >::ScalarType capd::diffIncl::DiffInclusion< MapT, DynSysT >::getStep
inline

returns current time step

◆ getStepControl()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
const StepControlType& capd::diffIncl::DiffInclusion< MapT, DynSysT >::getStepControl ( ) const
inline

◆ getVectorField() [1/2]

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
MapType& capd::diffIncl::DiffInclusion< MapT, DynSysT >::getVectorField ( )

returns RHS of a diff. inclusion

◆ getVectorField() [2/2]

template<typename MapT , typename DynSysT >
MapT & capd::diffIncl::DiffInclusion< MapT, DynSysT >::getVectorField
inline

returns RHS of a diff. inclusion

◆ isStepChangeAllowed()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
bool capd::diffIncl::DiffInclusion< MapT, DynSysT >::isStepChangeAllowed ( ) const
inline

◆ onOffStepControl()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::onOffStepControl ( bool  _onOffStepControl)
inline

◆ setAbsoluteTolerance()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::setAbsoluteTolerance ( double  tol)
inline

◆ setMaxStep()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::setMaxStep ( ScalarType  maxStep)
inline

◆ setOrder()

template<typename MapT , typename DynSysT >
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::setOrder ( int  newOrder)
inline

sets order of numerical method

◆ setRelativeTolerance()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::setRelativeTolerance ( double  tol)
inline

◆ setStep()

template<typename MapT , typename DynSysT >
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::setStep ( const ScalarType newStep)
inline

sets currect time step

sets time step but does not change step control settings (compare setStep)

◆ setStepControl()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::setStepControl ( const StepControlType stepControl)
inline

◆ turnOffStepControl()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::turnOffStepControl ( )
inline

◆ turnOnStepControl()

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
void capd::diffIncl::DiffInclusion< MapT, DynSysT >::turnOnStepControl ( )
inline

Member Data Documentation

◆ m_diffIncl

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
MultiMapType& capd::diffIncl::DiffInclusion< MapT, DynSysT >::m_diffIncl
protected

RHS of differential inclusion.

◆ m_dynamicalSystem

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
DynSysType capd::diffIncl::DiffInclusion< MapT, DynSysT >::m_dynamicalSystem
protected

dynamical system of selected ODE (numerical integrator)

◆ m_norm

template<typename MapT , typename DynSysT = capd::dynsys::OdeSolver< typename MapT::MapType >>
NormType* capd::diffIncl::DiffInclusion< MapT, DynSysT >::m_norm
protected

norm used in perturbation estimations