Go to the documentation of this file.
16 #ifndef SURGSIM_MATH_ODEEQUATION_H
17 #define SURGSIM_MATH_ODEEQUATION_H
134 #endif // SURGSIM_MATH_ODEEQUATION_H
virtual void computeF(const OdeState &state)=0
Evaluation of the RHS function for a given state.
@ ODEEQUATIONUPDATE_F
Definition: OdeEquation.h:36
Definitions of small fixed-size vector types.
The state of an ode of 2nd order of the form with boundary conditions.
Definition: OdeState.h:39
virtual void updateFMDK(const OdeState &state, int options)
Update the OdeEquation (and support data) based on the given state.
Definition: OdeEquation.cpp:51
virtual void computeD(const OdeState &state)=0
Evaluation of for a given state.
@ ODEEQUATIONUPDATE_D
Definition: OdeEquation.h:38
const std::shared_ptr< OdeState > getInitialState() const
Retrieves the ode initial conditions (i.e the initial state)
Definition: OdeEquation.cpp:26
std::shared_ptr< OdeState > m_initialState
The initial state (which defines the ODE initial conditions )
Definition: OdeEquation.h:115
Definitions of small fixed-size square matrix types.
Definitions of useful sparse matrix functions.
Definition: CompoundShapeToGraphics.cpp:30
const SparseMatrix & getM() const
Definition: OdeEquation.cpp:36
const Vector & getF() const
Definition: OdeEquation.cpp:31
virtual void computeK(const OdeState &state)=0
Evaluation of for a given state.
Eigen::SparseMatrix< double > SparseMatrix
A sparse matrix.
Definition: SparseMatrix.h:32
@ ODEEQUATIONUPDATE_K
Definition: OdeEquation.h:39
Ode equation of 2nd order of the form with for initial conditions and a set of boundary conditions.
Definition: OdeEquation.h:55
virtual void computeFMDK(const OdeState &state)=0
Evaluation of , , and .
virtual void computeM(const OdeState &state)=0
Evaluation of the LHS matrix for a given state.
@ ODEEQUATIONUPDATE_FMDK
Definition: OdeEquation.h:40
SparseMatrix m_D
The The matrix .
Definition: OdeEquation.h:124
SparseMatrix m_K
The The matrix .
Definition: OdeEquation.h:127
SparseMatrix m_M
The matrix .
Definition: OdeEquation.h:121
virtual Matrix applyCompliance(const OdeState &state, const Matrix &b)=0
Calculate the product C.b where C is the compliance matrix with boundary conditions applied.
Eigen::Matrix< double, Eigen::Dynamic, 1 > Vector
A dynamic size column vector.
Definition: Vector.h:68
Vector m_f
The vector containing .
Definition: OdeEquation.h:118
OdeEquationUpdate
Enum to identify which of the data need to be updated by the OdeEquation::update()
Definition: OdeEquation.h:35
const SparseMatrix & getD() const
Definition: OdeEquation.cpp:41
const SparseMatrix & getK() const
Definition: OdeEquation.cpp:46
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dynamic size matrix.
Definition: Matrix.h:65
@ ODEEQUATIONUPDATE_M
Definition: OdeEquation.h:37
virtual ~OdeEquation()
Virtual destructor.
Definition: OdeEquation.h:58