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

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

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: