|
opensurgsim
|
Linear Version of the Euler Explicit ode solver This solver assumes that the system is linear, ie that Mass, Damping, and Stiffness matrices do not change. More...
#include <OdeSolverLinearEulerExplicit.h>
Public Member Functions | |
| OdeSolverLinearEulerExplicit (OdeEquation *equation) | |
| Constructor. More... | |
| void | solve (double dt, const OdeState ¤tState, 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::OdeSolverEulerExplicit | |
| OdeSolverEulerExplicit (OdeEquation *equation) | |
| Constructor. More... | |
Public Member Functions inherited from SurgSim::Math::OdeSolver | |
| OdeSolver (OdeEquation *equation) | |
| Constructor. More... | |
| virtual | ~OdeSolver () |
| Virtual destructor. | |
| 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 |
Additional Inherited Members | |
Protected Member Functions inherited from SurgSim::Math::OdeSolverEulerExplicit | |
| 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) | |
| std::shared_ptr< LinearSparseSolveAndInverse > | m_linearSolver |
| The specialized linear solver to use when solving the ode equation. | |
| 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) | |
| Vector | m_rhs |
| Matrix | m_complianceMatrix |
| Compliance matrix which is the inverse of the system matrix, including boundary conditions. | |
Linear Version of the Euler Explicit 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 |
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::OdeSolverEulerExplicit.
1.8.12