Public Member Functions | Private Attributes | List of all members
SurgSim::Math::OdeSolverLinearRungeKutta4 Class Reference

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

#include <SurgSim/Math/OdeSolverLinearRungeKutta4.h>

Inheritance diagram for SurgSim::Math::OdeSolverLinearRungeKutta4:
SurgSim::Math::OdeSolverRungeKutta4 SurgSim::Math::OdeSolver

Public Member Functions

 OdeSolverLinearRungeKutta4 (OdeEquation *equation)
 Constructor. More...
 
virtual void solve (double dt, const OdeState &currentState, OdeState *newState) override
 Solves the equation. More...
 
- Public Member Functions inherited from SurgSim::Math::OdeSolverRungeKutta4
 OdeSolverRungeKutta4 (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< LinearSolveAndInversegetLinearSolver () const
 Gets the specialized linear solver used with this Ode solver. More...
 
const MatrixgetSystemMatrix () const
 Queries the current system matrix. More...
 
const MatrixgetCompliance () const
 Queries the current compliance matrix. More...
 

Private Attributes

bool m_initialized
 

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::OdeSolverRungeKutta4
Vector m_force
 Temporary vectors to store the 4 intermediates evaluations. More...
 
RungeKuttaDerivedState m_k1
 Runge kutta 4 intermediate system evaluations. More...
 
RungeKuttaDerivedState m_k2
 
RungeKuttaDerivedState m_k3
 
RungeKuttaDerivedState m_k4
 
- Protected Attributes inherited from SurgSim::Math::OdeSolver
std::string m_name
 Name for this solver. More...
 
OdeEquationm_equation
 The ode equation (API providing the necessary evaluation methods and the initial state) More...
 
std::shared_ptr< LinearSolveAndInversem_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...
 

Detailed Description

Linear Version of the Runge Kutta 4 ode solver This solver assumes that the system is linear ie that Mass, Damping, and Stiffness matrices do not change.

Constructor & Destructor Documentation

SurgSim::Math::OdeSolverLinearRungeKutta4::OdeSolverLinearRungeKutta4 ( OdeEquation equation)
explicit

Constructor.

Parameters
equationThe ode equation to be solved

Member Function Documentation

void SurgSim::Math::OdeSolverLinearRungeKutta4::solve ( double  dt,
const OdeState currentState,
OdeState newState 
)
overridevirtual

Solves the equation.

Parameters
dtThe time step
currentStateState at time t
[out]newStateState at time t+dt

Reimplemented from SurgSim::Math::OdeSolverRungeKutta4.

Member Data Documentation

bool SurgSim::Math::OdeSolverLinearRungeKutta4::m_initialized
private

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