Public Member Functions | List of all members
SurgSim::Math::OdeSolverStatic Class Reference

Static ode solver. More...

#include <SurgSim/Math/OdeSolverStatic.h>

Inheritance diagram for SurgSim::Math::OdeSolverStatic:
SurgSim::Math::OdeSolver SurgSim::Math::OdeSolverLinearStatic

Public Member Functions

 OdeSolverStatic (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::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...
 

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

Detailed Description

Static ode solver.

Note
M(x(t), v(t)).a(t) = f(t, x(t), v(t))
This ode equation is solved w.r.t. x, by discarding all time derived variables (i.e. v, a)
reducing the equation to solve to:
0 = f(t, x(t)) = Fext + Fint(t, x(t)) = Fext - K.(x - x0)

Constructor & Destructor Documentation

SurgSim::Math::OdeSolverStatic::OdeSolverStatic ( OdeEquation *  equation)
explicit

Constructor.

Parameters
equationThe ode equation to be solved

Member Function Documentation

void SurgSim::Math::OdeSolverStatic::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

Implements SurgSim::Math::OdeSolver.

Reimplemented in SurgSim::Math::OdeSolverLinearStatic.


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