SurgSim::Math::OdeSolverLinearEulerExplicitModified Class Reference

Linear Version of the Modified Euler Explicit ode solver This solver assumes that the system is linear, ie that Mass, Damping, and Stiffness matrices do not change. More...

`#include <SurgSim/Math/OdeSolverLinearEulerExplicitModified.h>`

Inheritance diagram for SurgSim::Math::OdeSolverLinearEulerExplicitModified:

## Public Member Functions

| OdeSolverLinearEulerExplicitModified (OdeEquation *equation)
| Constructor. More...
void | solve (double dt, const OdeState &currentState, OdeState *newState, bool computeCompliance=true) override
| The parameter computeCompliance is irrelevant for any Linear solver as it is a constant matrix. More...
Public Member Functions inherited from SurgSim::Math::OdeSolverEulerExplicitModified
| OdeSolverEulerExplicitModified (OdeEquation *equation)
| Constructor. More...
Public Member Functions inherited from SurgSim::Math::OdeSolver
| OdeSolver (OdeEquation *equation)
| Constructor. More...
virtual | ~OdeSolver ()
| Virtual destructor. More...
const std::string | getName () const
| Gets the solver's name. More...
void | setLinearSolver (std::shared_ptr< LinearSparseSolveAndInverse > linearSolver)
| Sets the specialized linear solver to use with this Ode solver. More...
std::shared_ptr< LinearSparseSolveAndInverse > | getLinearSolver () const
| Gets the specialized linear solver used with this Ode solver. More...
void | computeMatrices (double dt, const OdeState &state, bool computeCompliance=true)
| Computes the system and compliance matrices for a given state. More...
const SparseMatrix & | getSystemMatrix () const
| Queries the current system matrix. More...
const Matrix & | getComplianceMatrix () const

## Private Attributes

bool | m_initialized
| Has the solver been initialized. More...

## Additional Inherited Members

Protected Member Functions inherited from SurgSim::Math::OdeSolverEulerExplicitModified
void | assembleLinearSystem (double dt, const OdeState &state, const OdeState &newState, bool computeRHS=true) override
| Assemble the linear system (A.x=b) to be solved for the state and new states (useful for certain ode solver). More...
Protected Member Functions inherited from SurgSim::Math::OdeSolver
void | computeComplianceMatrixFromSystemMatrix (const OdeState &state)
| Helper method computing the compliance matrix from the system matrix and setting the boundary conditions. More...
Protected Attributes inherited from SurgSim::Math::OdeSolver
std::string | m_name
| Name for this solver. More...
OdeEquation & | m_equation
| The ode equation (API providing the necessary evaluation methods and the initial state) More...
std::shared_ptr< LinearSparseSolveAndInverse > | m_linearSolver
| The specialized linear solver to use when solving the ode equation. More...
SparseMatrix | m_systemMatrix
| Linear system matrix (can be M, K, combination of MDK depending on the solver), including boundary conditions. More...
Vector | m_solution
| Linear system solution and rhs vectors (including boundary conditions) More...
Vector | m_rhs
Matrix | m_complianceMatrix
| Compliance matrix which is the inverse of the system matrix, including boundary conditions. More...

## Detailed Description

Linear Version of the Modified Euler Explicit ode solver This solver assumes that the system is linear, ie that Mass, Damping, and Stiffness matrices do not change.

## Constructor & Destructor Documentation

## OdeSolverLinearEulerExplicitModified()

SurgSim::Math::OdeSolverLinearEulerExplicitModified::OdeSolverLinearEulerExplicitModified | ( | OdeEquation * | equation | ) |

explicit

Constructor.

Parameters

  equation | The ode equation to be solved

## Member Function Documentation

## solve()

void SurgSim::Math::OdeSolverLinearEulerExplicitModified::solve | ( | double | dt,
|  | const OdeState & | currentState,
|  | OdeState * | newState,
|  | bool | computeCompliance = `true`
| ) |  |

override virtual

The parameter computeCompliance is irrelevant for any Linear solver as it is a constant matrix.

It will be precomputed on the first call and use in the following calls, no matter what the parameter value is.

Reimplemented from SurgSim::Math::OdeSolverEulerExplicitModified.

## Member Data Documentation

## m_initialized

bool SurgSim::Math::OdeSolverLinearEulerExplicitModified::m_initialized

private

Has the solver been initialized.

The documentation for this class was generated from the following files:

- SurgSim/Math/OdeSolverLinearEulerExplicitModified.h
- SurgSim/Math/OdeSolverLinearEulerExplicitModified.cpp