CAPD DynSys Library
5.2.0
|
#include <capd/dynsys/FadOdeSolver.h>
Public Types | |
typedef FadMapT | VectorFieldType |
typedef BasicFadOdeSolver< FadMapT, StepControlT > | BaseTaylor |
typedef StepControlT | StepControlType |
typedef BaseTaylor::ScalarType | ScalarType |
typedef BaseTaylor::FScalar | FScalar |
typedef BaseTaylor::TFScalar | TFScalar |
typedef BaseTaylor::MatrixType | MatrixType |
typedef BaseTaylor::VectorType | VectorType |
typedef BaseTaylor::FVector | FVector |
typedef BaseTaylor::TFVector | TFVector |
typedef BaseTaylor::FunctionType | FunctionType |
typedef MatrixType::size_type | size_type |
typedef capd::vectalg::Norm< VectorType, MatrixType > | NormType |
typedef fadbad::T< ScalarType > | TScalar |
typedef VectorType::template rebind< TScalar >::other | TVector |
typedef capd::diffAlgebra::Curve< capd::diffAlgebra::FadCurve< typename FadMapT::MatrixType > > | SolutionCurve |
typedef TypeTraits< ScalarType >::Real | Real |
typedef Hessian< ScalarType, VectorType::csDim, VectorType::csDim > | HessianType |
typedef Jet< MatrixType, 0 > | JetType |
typedef __difference_type | difference_type |
Public Member Functions | |
FadOdeSolver (VectorFieldType &f, size_type _order, const StepControlT &_stepControl=StepControlT()) | |
VectorType | Phi (const ScalarType &t, const VectorType &iv) |
MatrixType | JacPhi (const ScalarType &t, const VectorType &iv) |
VectorType | enclosure (const ScalarType &t, const VectorType &x) |
VectorType | Remainder (const ScalarType &t, const VectorType &iv, VectorType &o_enc) |
void | computeTaylorCoefficients (ScalarType t, const VectorType &x, const VectorType &xx) |
void | encloseC0Map (const ScalarType &t, const VectorType &x0, const VectorType &x, VectorType &o_phi, VectorType &o_rem, VectorType &o_enc, MatrixType &o_jacPhi) |
MatrixType | jacEnclosure (const ScalarType &t, const VectorType &enc) |
void | JacRemainder (const ScalarType &t, const VectorType &vecEnclosure, const MatrixType &jacEnclosure, VectorType &Remainder, MatrixType &jRemainder) |
void | encloseC1Map (const ScalarType &t, const VectorType &x0, const VectorType &x, VectorType &o_phi, VectorType &o_rem, VectorType &o_enc, MatrixType &o_jacPhi, MatrixType &o_jacRem, MatrixType &o_jacEnc) |
template<typename SetType > | |
void | operator() (SetType &set) |
This operator computes image of the set (in given representation) using set.move function, see capd/dynsys/Move.h for details This template together with SetTraits prevent usage of various types of jets with incompatible solvers. The user will get an exception at runtime with clear message instead of unreadable compiler error. In this case a specialization C1SetMove is used meaning that this solver can integrate C^0 and C^1 sets only. Moreover, it cannot integrate nonrigorous jets (for user safety). More... | |
template<typename SetType > | |
void | operator() (SetType &set, SetType &result) |
Computes image of the set (in set's representation) and stores it in the result set. More... | |
ScalarType | getCoeffNorm (size_type i, size_type degree) const |
ScalarType | getStep () const |
void | computeRemainderCoefficients (const VectorType &x) |
void | computeRemainderCoefficients (const VectorType &x, const MatrixType &M) |
void | computeRemainderCoefficients (ScalarType t, const VectorType &x) |
void | computeRemainderCoefficients (ScalarType t, const VectorType &x, const MatrixType &M) |
void | initRemainderCoefficients (ScalarType t, const VectorType &x, unsigned degree) |
virtual void | encloseC1Map (const ScalarType &t, const VectorType &x, const VectorType &xx, VectorType &o_phi, VectorType &o_rem, VectorType &o_enc, FadMapT::MatrixType &o_jacPhi, FadMapT::MatrixType &o_jacRem, FadMapT::MatrixType &o_jacEnc)=0 |
virtual VectorType | Phi (const ScalarType &t, const VectorType &iv)=0 |
Computes value of function (usually numerical scheme for an ODE) at time t and point iv. More... | |
virtual MatrixType | JacPhi (const ScalarType &t, const VectorType &iv)=0 |
Computes derivative of function (usually numerical scheme for an ODE) at time t and point iv. More... | |
virtual VectorType | Remainder (const ScalarType &t, const VectorType &iv, VectorType &out_enc)=0 |
Computes and returns bound for local error of a function (for instance if Phi is finite Taylor series of a map then this method computes bound for Lagrange remainder). If DynSys is an ODE, then out_enc contains enclosure of trajectories over the time step. If the function cannot validate existence of solutions to ODE over the time step, out_enc might be in an inconsistent state. More... | |
virtual ScalarType | Lipschitz (const ScalarType &t, const VectorType &iv, NormType &n) |
this function returns Lipschitz contants for maps. It should be overriden in classes implementing flows. More... | |
virtual VectorType | enclosure (const ScalarType &t, const VectorType &x)=0 |
Used for ODEs. It verifies the existence of solutions to IVP at time t and set of initial conditions x over the time step. If the function succeeds, a rigorous bound for the trajectories is returned. Otherwise, an exception is thrown. More... | |
virtual void | encloseC0Map (const ScalarType &t, const VectorType &x, const VectorType &xx, VectorType &o_phi, VectorType &o_rem, VectorType &o_enc, MatrixType &o_jacPhi)=0 |
For given set xx, time t and a point x from the set xx It simultaneously computes and returns enclosures for: More... | |
virtual ScalarType | getStep () const |
Returns time step of the dynamical system. By default it returns one - time step for discrete DS (maps). Shall be overridden in classes that implement numerical schemes for ODEs. More... | |
VectorType | operator() (VectorType) |
Computes image of vector v after one time step. More... | |
VectorType | operator() (ScalarType &t, VectorType) |
Computes image of vector v after one time step. The argument t is updated in this procedure. More... | |
VectorType | operator() (VectorType v, MatrixType &o_resultDerivative) |
Computes image of vector v and derivatives of the flow with respect to init condition (v,identity). Version for autonomous systems. More... | |
VectorType | operator() (ScalarType &t, VectorType v, MatrixType &o_resultDerivative) |
Computes image of vector v and derivatives of the flow with respect to init condition (v,identity). Version for nonautonomous systems. The argument t is updated in this procedure. More... | |
VectorType | operator() (VectorType v, const MatrixType &derivative, MatrixType &o_resultDerivative) |
Computes image of vector v and derivatives of a flow with respect to init condition (v, derivative) More... | |
VectorType | operator() (ScalarType &t, VectorType v, const MatrixType &derivative, MatrixType &o_resultDerivative) |
Computes image of vector v and derivatives of a flow with respect to init condition (v, derivative). The argument t is updated in this procedure. More... | |
void | operator() (JetT &jet) |
This operator computes image of the set (in given representation) using set.move function, see capd/dynsys/Move.h for details This template together with SetTraits prevent usage of various types of jets with incompatible solvers. The user will get an exception at runtime with clear message instead of unreadable compiler error. In this case a specialization C1JetMove is used meaning that this solver can integrate C^0 and C^1 jets only. More... | |
VectorType | operator() (const ScalarType &h) const |
const VectorFieldType & | getVectorField () const |
Returns vector field. More... | |
VectorFieldType & | getVectorField () |
ScalarType | getStep () const |
Returns current time step. More... | |
void | setStep (const ScalarType &newStep) |
Sets time step for the next step of integration and turns off step control. More... | |
virtual ScalarType | getCoeffNorm (size_type i, size_type degree) const |
const SolutionCurve & | getCurve () |
void | setParameter (Description name, const ScalarType &value) |
void | computeCoefficientsAtCenter (const VectorType &x, size_type order) |
void | computeCoefficientsAtCenter (ScalarType t, const VectorType &x, size_type order) |
void | computeCoefficients (const VectorType &x, size_type order) |
void | computeCoefficients (ScalarType t, const VectorType &x, size_type order) |
void | computeCoefficients (const VectorType &x, const MatrixType &M, size_type order) |
void | computeCoefficients (ScalarType t, const VectorType &x, const MatrixType &M, size_type order) |
VectorType | enclosure (const ScalarType &, const VectorType &) |
void | adjustTimeStep (const ScalarType &newStep) |
sets time step but does not change step control settings (compare setStep) More... | |
void | turnOnStepControl () |
void | turnOffStepControl () |
void | onOffStepControl (bool _onOffStepControl) |
const StepControlType & | getStepControl () const |
void | setStepControl (const StepControlType &stepControl) |
bool | isStepChangeAllowed () const |
void | setAbsoluteTolerance (TolScalarType tol) |
void | setRelativeTolerance (TolScalarType tol) |
TolScalarType | getAbsoluteTolerance () const |
TolScalarType | getRelativeTolerance () const |
FadMapT::ScalarType | getMaxStep () const |
void | setMaxStep (FadMapT::ScalarType maxStep) |
VectorType | timeDerivative (const ScalarType &h) const |
MatrixType | derivative (const ScalarType &h) const |
MatrixType | operator[] (const ScalarType &h) const |
virtual void | setOrder (size_type order) |
Sets the order of Taylor interpolation. More... | |
size_type | getOrder () const |
Returns the order of Taylor interpolation. More... | |
size_type | getAllocatedOrder () const |
Returns maximal allocated order - used to avoid memory reallocation. More... | |
size_type | dimension () const |
Returns the dimension in which the parametric curve is embedded. More... | |
void | clearCoefficients () |
sets all coefficients to zero More... | |
const ScalarType & | centerCoefficient (size_type i, size_type j) const |
ScalarType & | centerCoefficient (size_type i, size_type j) |
const ScalarType & | coefficient (size_type i, size_type j) const |
const ScalarType & | coefficient (size_type i, size_type j, size_type k) const |
ScalarType & | coefficient (size_type i, size_type j) |
ScalarType & | coefficient (size_type i, size_type j, size_type k) |
const ScalarType & | remainderCoefficient (size_type i, size_type j) const |
const ScalarType & | remainderCoefficient (size_type i, size_type j, size_type k) const |
ScalarType & | remainderCoefficient (size_type i, size_type j) |
ScalarType & | remainderCoefficient (size_type i, size_type j, size_type k) |
void | setInitMatrix (const MatrixType &) |
void | setInitHessian (const HessianType &) |
void | setInitJet (const JetType &) |
std::runtime_error | domainErrorMessage (std::string msg, ScalarType h, Real left, Real right) const |
virtual HessianType | hessian (const ScalarType &) const |
virtual JetType | jet (const ScalarType &) const |
virtual void | eval (ScalarType, JetType &) const |
virtual void | setDomain (Real left, Real right) |
virtual Real | getLeftDomain () const |
virtual Real | getRightDomain () const |
Static Public Member Functions | |
static TolScalarType | getEffectiveTolerance (Solver &solver, const SetType &s) |
Protected Member Functions | |
void | saveCurrentSet (const capd::diffAlgebra::TimeRange< ScalarType > &) |
void | saveCurrentSet (const capd::dynset::C1Set< MatrixType > &set) |
void | computeTimeStep (const ScalarType &t, const VectorType &x) |
void | setCurrentTime (const ScalarType &a_time) const |
const ScalarType & | getCurrentTime () const |
void | computeTimeStep (VectorType &v) |
void | recordDags () |
void | reset () |
void | computeCoeff (AVector &in, AVector &out, size_type order) |
void | setInitialCondition (const VectorType &u, TVector &in) |
void | setInitialCondition (const VectorType &u, TFVector &in) |
void | setInitialCondition (const VectorType &u, const MatrixType &M, TFVector &in) |
void | sumTaylorSeries (VectorType &u, TVector &in, size_type order) |
void | sumTaylorSeries (MatrixType &M, TFVector &in, size_type order) |
void | sumTaylorSeries (VectorType &u, MatrixType &M, TFVector &in, size_type order) |
typedef BasicFadOdeSolver<FadMapT,StepControlT> capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::BaseTaylor |
|
inherited |
typedef BaseTaylor::FScalar capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::FScalar |
typedef BaseTaylor::FunctionType capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::FunctionType |
typedef BaseTaylor::FVector capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::FVector |
|
inherited |
|
inherited |
typedef BaseTaylor::MatrixType capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::MatrixType |
typedef capd::vectalg::Norm<VectorType,MatrixType> capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::NormType |
|
inherited |
typedef BaseTaylor::ScalarType capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::ScalarType |
typedef MatrixType::size_type capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::size_type |
|
inherited |
typedef StepControlT capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::StepControlType |
typedef BaseTaylor::TFScalar capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::TFScalar |
typedef BaseTaylor::TFVector capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::TFVector |
|
inherited |
|
inherited |
typedef FadMapT capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::VectorFieldType |
typedef BaseTaylor::VectorType capd::dynsys::FadOdeSolver< FadMapT, StepControlT >::VectorType |
|
inlineinherited |
sets time step but does not change step control settings (compare setStep)
|
inlineinherited |
|
inlineinherited |
|
inherited |
sets all coefficients to zero
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
protectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotected |
|
inlineprotectedinherited |
|
virtualinherited |
|
inlineinherited |
Returns the dimension in which the parametric curve is embedded.
|
inlineinherited |
|
pure virtualinherited |
For given set xx, time t and a point x from the set xx It simultaneously computes and returns enclosures for:
|
pure virtualinherited |
|
inlineinherited |
|
pure virtualinherited |
Used for ODEs. It verifies the existence of solutions to IVP at time t and set of initial conditions x over the time step. If the function succeeds, a rigorous bound for the trajectories is returned. Otherwise, an exception is thrown.
|
inlinevirtualinherited |
|
inlineinherited |
|
inlineinherited |
Returns maximal allocated order - used to avoid memory reallocation.
|
virtualinherited |
|
inlineprotectedinherited |
|
inherited |
|
inlinestaticinherited |
|
inlinevirtualinherited |
|
inlineinherited |
|
inlineinherited |
Returns the order of Taylor interpolation.
|
inlineinherited |
|
inlinevirtualinherited |
|
inlineinherited |
Returns current time step.
|
inlinevirtualinherited |
Returns time step of the dynamical system. By default it returns one - time step for discrete DS (maps). Shall be overridden in classes that implement numerical schemes for ODEs.
|
inline |
|
inlineinherited |
|
inherited |
|
inlineinherited |
Returns vector field.
|
inlinevirtualinherited |
|
inline |
|
inlineinherited |
|
pure virtualinherited |
Computes derivative of function (usually numerical scheme for an ODE) at time t and point iv.
|
inlinevirtualinherited |
|
virtualinherited |
this function returns Lipschitz contants for maps. It should be overriden in classes implementing flows.
|
inlineinherited |
|
virtualinherited |
|
inlineinherited |
This operator computes image of the set (in given representation) using set.move function, see capd/dynsys/Move.h for details This template together with SetTraits prevent usage of various types of jets with incompatible solvers. The user will get an exception at runtime with clear message instead of unreadable compiler error. In this case a specialization C1JetMove is used meaning that this solver can integrate C^0 and C^1 jets only.
|
inlineinherited |
Computes image of vector v and derivatives of a flow with respect to init condition (v, derivative). The argument t is updated in this procedure.
|
inlineinherited |
Computes image of vector v and derivatives of the flow with respect to init condition (v,identity). Version for nonautonomous systems. The argument t is updated in this procedure.
|
inlineinherited |
Computes image of vector v after one time step. The argument t is updated in this procedure.
|
inline |
This operator computes image of the set (in given representation) using set.move function, see capd/dynsys/Move.h for details This template together with SetTraits prevent usage of various types of jets with incompatible solvers. The user will get an exception at runtime with clear message instead of unreadable compiler error. In this case a specialization C1SetMove is used meaning that this solver can integrate C^0 and C^1 sets only. Moreover, it cannot integrate nonrigorous jets (for user safety).
|
inline |
Computes image of the set (in set's representation) and stores it in the result set.
[in] | set | C^0, C^1 set representing initial conditions |
[out] | result | on return contains image of the set |
|
inherited |
Computes image of vector v and derivatives of a flow with respect to init condition (v, derivative)
|
inherited |
Computes image of vector v and derivatives of the flow with respect to init condition (v,identity). Version for autonomous systems.
|
inherited |
Computes image of vector v after one time step.
|
inlinevirtualinherited |
|
pure virtualinherited |
Computes value of function (usually numerical scheme for an ODE) at time t and point iv.
|
protectedinherited |
|
pure virtualinherited |
Computes and returns bound for local error of a function (for instance if Phi is finite Taylor series of a map then this method computes bound for Lagrange remainder). If DynSys is an ODE, then out_enc contains enclosure of trajectories over the time step. If the function cannot validate existence of solutions to ODE over the time step, out_enc might be in an inconsistent state.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
protectedinherited |
|
inlineprotected |
|
inlineprotected |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlinevirtualinherited |
|
inlineinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
virtualinherited |
Sets the order of Taylor interpolation.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Sets time step for the next step of integration and turns off step control.
|
inlineinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
domain
|
protectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |