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< 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

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...
 
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...
 

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: