|
Linear Version of the Euler Implicit ode solver This solver assumes that the system is linear, ie that Mass, Damping, and Stiffness matrices do not change. More...
#include <SurgSim/Math/OdeSolverLinearEulerImplicit.h>
Public Member Functions | |
| OdeSolverLinearEulerImplicit (OdeEquation *equation) | |
| Constructor. More... | |
| virtual void | solve (double dt, const OdeState ¤tState, OdeState *newState) override |
| Solves the equation. More... | |
Public Member Functions inherited from SurgSim::Math::OdeSolverEulerImplicit | |
| OdeSolverEulerImplicit (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< LinearSolveAndInverse > linearSolver) |
| Sets the specialized linear solver to use with this Ode solver. More... | |
| std::shared_ptr< LinearSolveAndInverse > | getLinearSolver () const |
| Gets the specialized linear solver used with this Ode solver. More... | |
| const Matrix & | getSystemMatrix () const |
| Queries the current system matrix. More... | |
| const Matrix & | getCompliance () const |
| Queries the current compliance matrix. More... | |
Private Attributes | |
| Matrix | m_constantK |
| The constant stiffness matrix. More... | |
| bool | m_initialized |
| Has the solver been initialized. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from SurgSim::Math::OdeSolver | |
| void | allocate (size_t size) |
| Allocates the system and compliance matrices. 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< LinearSolveAndInverse > | m_linearSolver |
| The specialized linear solver to use when solving the ode equation. More... | |
| Matrix | m_systemMatrix |
| System matrix (can be M, K, combination of MDK depending on the solver) A static solver will have K for system matrix A dynamic explicit solver will have M for system matrix A dynamic implicit solver will have a combination of M, D and K for system matrix. More... | |
| Matrix | m_compliance |
| Compliance matrix which is the inverse of the system matrix. More... | |
Linear Version of the Euler Implicit ode solver This solver assumes that the system is linear, ie that Mass, Damping, and Stiffness matrices do not change.
|
explicit |
Constructor.
| equation | The ode equation to be solved |
|
overridevirtual |
Solves the equation.
| dt | The time step | |
| currentState | State at time t | |
| [out] | newState | State at time t+dt |
Reimplemented from SurgSim::Math::OdeSolverEulerImplicit.
|
private |
The constant stiffness matrix.
|
private |
Has the solver been initialized.
1.8.11