CAPD DynSys Library  5.2.0
capd::pdes::DissipativeVectorField< SeriesT > Class Template Referenceabstract

The class provides a common interface for a dissipative vector required by the class PdeSolver. More...

#include <capd/pdes/DissipativeVectorField.h>

Public Types

typedef capd::interval ScalarType
 
typedef SeriesT VectorType
 
typedef capd::IMatrix MatrixType
 
typedef MatrixType::RowVectorType FiniteVectorType
 
typedef capd::IVector::size_type size_type
 
typedef std::vector< VectorTypeVectorArray
 
typedef std::vector< VectorArrayMatrixArray
 

Public Member Functions

virtual VectorType operator() (ScalarType h, const VectorType &v)=0
 
virtual VectorType operator() (ScalarType h, const VectorType &v, MatrixType &DF)=0
 
virtual MatrixType derivative (ScalarType h, const VectorType &v)=0
 
virtual void computeODECoefficients (VectorArray &a, size_type order)=0
 This function should compute ODE coefficients up to given order at the set a. More...
 
virtual void computeODECoefficients (const VectorArray &a, VectorArray &c, size_type order)=0
 Given coefficients for C^0 part, it computes Taylor coefficient for one column of variational equation Initial condition for this column is 'c'. More...
 
void computeODECoefficients (VectorArray &a, MatrixArray &J, size_type p, size_type numberOfColumns)
 This function should compute ODE coefficients up to given order at the set a Moreover, block derivative of first group of variables has to be computed. More...
 
virtual void makeSelfConsistentBound (VectorArray &a)=0
 This function should refine the tail so that the vector field is pointing inwards the tail. More...
 
virtual void makeSelfConsistentBound (VectorArray &a, MatrixArray &J1, MatrixArray &J2, size_type numberOfColumns)=0
 This function should refine the tail so that the vector field for variational equation is pointing inwards the tail. Here we assume two different initial conditions J1=(Id,0) and J2=(0,something) More...
 
virtual size_type dimension () const =0
 
virtual size_type firstDissipativeIndex () const =0
 
virtual void updateTail (VectorType &x, const VectorArray &enc, ScalarType h) const =0
 Update tail for C^0 part using linear differential inequality. More...
 
virtual void updateTail (VectorArray &DyxId, VectorArray &Dyx, const MatrixArray &Enc, const MatrixArray &DyxEnc, ScalarType h) const =0
 Update tail for two C^1 blocks using linear differential inequality. More...
 
virtual MatrixType blockNorms (const VectorType &a, size_type m) const =0
 This function should compute a matrix M such that M_ii is logarithmic norm of the diagonal block M_ij is a norm of ij block The infinite dimensional space is split onto m+1 blocks. More...
 

Detailed Description

template<class SeriesT>
class capd::pdes::DissipativeVectorField< SeriesT >

The class provides a common interface for a dissipative vector required by the class PdeSolver.

Each particular system should inherit and implement abstract methods.

Member Typedef Documentation

◆ FiniteVectorType

◆ MatrixArray

template<class SeriesT >
typedef std::vector<VectorArray> capd::pdes::DissipativeVectorField< SeriesT >::MatrixArray

◆ MatrixType

template<class SeriesT >
typedef capd::IMatrix capd::pdes::DissipativeVectorField< SeriesT >::MatrixType

◆ ScalarType

template<class SeriesT >
typedef capd::interval capd::pdes::DissipativeVectorField< SeriesT >::ScalarType

◆ size_type

template<class SeriesT >
typedef capd::IVector::size_type capd::pdes::DissipativeVectorField< SeriesT >::size_type

◆ VectorArray

template<class SeriesT >
typedef std::vector<VectorType> capd::pdes::DissipativeVectorField< SeriesT >::VectorArray

◆ VectorType

template<class SeriesT >
typedef SeriesT capd::pdes::DissipativeVectorField< SeriesT >::VectorType

Member Function Documentation

◆ blockNorms()

template<class SeriesT >
virtual MatrixType capd::pdes::DissipativeVectorField< SeriesT >::blockNorms ( const VectorType a,
size_type  m 
) const
pure virtual

This function should compute a matrix M such that M_ii is logarithmic norm of the diagonal block M_ij is a norm of ij block The infinite dimensional space is split onto m+1 blocks.

Implemented in capd::pdes::OneDimKSSineVectorField.

◆ computeODECoefficients() [1/3]

template<class SeriesT >
virtual void capd::pdes::DissipativeVectorField< SeriesT >::computeODECoefficients ( const VectorArray a,
VectorArray c,
size_type  order 
)
pure virtual

Given coefficients for C^0 part, it computes Taylor coefficient for one column of variational equation Initial condition for this column is 'c'.

Implemented in capd::pdes::OneDimKSSineVectorField.

◆ computeODECoefficients() [2/3]

template<class SeriesT >
void capd::pdes::DissipativeVectorField< SeriesT >::computeODECoefficients ( VectorArray a,
MatrixArray J,
size_type  p,
size_type  numberOfColumns 
)
inline

This function should compute ODE coefficients up to given order at the set a Moreover, block derivative of first group of variables has to be computed.

◆ computeODECoefficients() [3/3]

template<class SeriesT >
virtual void capd::pdes::DissipativeVectorField< SeriesT >::computeODECoefficients ( VectorArray a,
size_type  order 
)
pure virtual

This function should compute ODE coefficients up to given order at the set a.

Implemented in capd::pdes::OneDimKSSineVectorField.

◆ derivative()

template<class SeriesT >
virtual MatrixType capd::pdes::DissipativeVectorField< SeriesT >::derivative ( ScalarType  h,
const VectorType v 
)
pure virtual

◆ dimension()

template<class SeriesT >
virtual size_type capd::pdes::DissipativeVectorField< SeriesT >::dimension ( ) const
pure virtual

◆ firstDissipativeIndex()

template<class SeriesT >
virtual size_type capd::pdes::DissipativeVectorField< SeriesT >::firstDissipativeIndex ( ) const
pure virtual

◆ makeSelfConsistentBound() [1/2]

template<class SeriesT >
virtual void capd::pdes::DissipativeVectorField< SeriesT >::makeSelfConsistentBound ( VectorArray a)
pure virtual

This function should refine the tail so that the vector field is pointing inwards the tail.

Implemented in capd::pdes::OneDimKSSineVectorField.

◆ makeSelfConsistentBound() [2/2]

template<class SeriesT >
virtual void capd::pdes::DissipativeVectorField< SeriesT >::makeSelfConsistentBound ( VectorArray a,
MatrixArray J1,
MatrixArray J2,
size_type  numberOfColumns 
)
pure virtual

This function should refine the tail so that the vector field for variational equation is pointing inwards the tail. Here we assume two different initial conditions J1=(Id,0) and J2=(0,something)

Implemented in capd::pdes::OneDimKSSineVectorField.

◆ operator()() [1/2]

template<class SeriesT >
virtual VectorType capd::pdes::DissipativeVectorField< SeriesT >::operator() ( ScalarType  h,
const VectorType v 
)
pure virtual

◆ operator()() [2/2]

template<class SeriesT >
virtual VectorType capd::pdes::DissipativeVectorField< SeriesT >::operator() ( ScalarType  h,
const VectorType v,
MatrixType DF 
)
pure virtual

◆ updateTail() [1/2]

template<class SeriesT >
virtual void capd::pdes::DissipativeVectorField< SeriesT >::updateTail ( VectorArray DyxId,
VectorArray Dyx,
const MatrixArray Enc,
const MatrixArray DyxEnc,
ScalarType  h 
) const
pure virtual

Update tail for two C^1 blocks using linear differential inequality.

Implemented in capd::pdes::OneDimKSSineVectorField.

◆ updateTail() [2/2]

template<class SeriesT >
virtual void capd::pdes::DissipativeVectorField< SeriesT >::updateTail ( VectorType x,
const VectorArray enc,
ScalarType  h 
) const
pure virtual

Update tail for C^0 part using linear differential inequality.

Implemented in capd::pdes::OneDimKSSineVectorField.