CAPD::DynSys Library
6.0.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) |
Computes value of function (usually numerical scheme for an ODE) at time t and point iv. More... | |
MatrixType | JacPhi (const ScalarType &t, const VectorType &iv) |
Computes derivative of function (usually numerical scheme for an ODE) at time t and point iv. More... | |
VectorType | enclosure (const ScalarType &t, const VectorType &x) |
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... | |
VectorType | Remainder (const ScalarType &t, const VectorType &iv, VectorType &o_enc) |
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... | |
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) |
For given set xx, time t and a point x from the set xx It simultaneously computes and returns enclosures for: More... | |
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 |
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... | |
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 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... | |
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 () |
void | setStep (const ScalarType &newStep) |
Sets time step for the next step of integration and turns off step control. More... | |
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) |
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 |
Scalar | getMaxStep () const |
void | setMaxStep (Scalar 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 | |
template<class Solver , class SetType > | |
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) |
Protected Attributes | |
VectorFieldType & | m_vectorField |
TVector | m_centerOut |
TFVector | m_out |
TVector | m_remOut |
TFVector | m_jacRemOut |
TScalar | m_time |
TFScalar | m_ftime |
ScalarType | m_fixedTimeStep |
ScalarType | m_step |
StepControlType | m_stepControl |
bool | m_onOffStepControl |
TolScalarType | m_absoluteTolerance |
TolScalarType | m_relativeTolerance |
Scalar | m_maxStep |
size_type | m_order |
size_type | m_dimension |
TVector | m_center |
TFVector | m_in |
TVector | m_rem |
TFVector | m_jacRem |
Real | m_left |
Real | m_right |
domain More... | |
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)
|
protectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotected |
|
inlineprotectedinherited |
|
virtualinherited |
|
inlineinherited |
|
pure virtualinherited |
|
inlinevirtualinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inherited |
|
inlinestaticinherited |
|
inlinevirtualinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinevirtualinherited |
|
inlinevirtual |
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.
Reimplemented from capd::dynsys::DynSys< MatrixT >.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Returns vector field.
|
inlinevirtualinherited |
Reimplemented in capd::diffAlgebra::CnCurve< BaseCurveT, true >, capd::diffAlgebra::CnCurve< BaseCurveT, isInterval >, capd::diffAlgebra::CnCurve< capd::diffAlgebra::BasicCnCurve< typename MapT::MatrixType > >, capd::diffAlgebra::C2Curve< BaseCurveT, true >, and capd::diffAlgebra::C2Curve< BaseCurveT, isInterval >.
|
inline |
|
inlineinherited |
|
inlinevirtualinherited |
|
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 |
|
protectedinherited |
|
protectedinherited |
|
inlineprotected |
|
inlineprotected |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlinevirtualinherited |
|
inlineinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
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 |