16 #ifndef SURGSIM_MATH_ODESOLVER_H 17 #define SURGSIM_MATH_ODESOLVER_H 20 #include <unordered_map> 22 #include <boost/assign/list_of.hpp> 50 boost::assign::map_list_of
90 void setLinearSolver(std::shared_ptr<LinearSolveAndInverse> linearSolver);
139 #endif // SURGSIM_MATH_ODESOLVER_H Definition: DriveElementFromInputBehavior.cpp:27
std::string m_name
Name for this solver.
Definition: OdeSolver.h:117
const std::unordered_map< IntegrationScheme, std::string, std::hash< int > > IntegrationSchemeNames
Definition: OdeSolver.h:49
Definition: OdeSolver.h:46
void setLinearSolver(std::shared_ptr< LinearSolveAndInverse > linearSolver)
Sets the specialized linear solver to use with this Ode solver.
Definition: OdeSolver.cpp:38
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dynamic size matrix.
Definition: Matrix.h:65
const Matrix & getSystemMatrix() const
Queries the current system matrix.
Definition: OdeSolver.cpp:48
Definition: OdeSolver.h:44
Matrix m_compliance
Compliance matrix which is the inverse of the system matrix.
Definition: OdeSolver.h:132
Ode equation of 2nd order of the form M(x,v).a = F(x, v) with (x0, v0) for initial conditions and a s...
Definition: OdeEquation.h:40
Definition: OdeSolver.h:42
OdeState defines the state y of an ode of 2nd order of the form M(x,v).a = F(x, v) with boundary cond...
Definition: OdeState.h:34
Definition: OdeSolver.h:45
Definition: OdeSolver.h:43
string(TOUPPER ${DEVICE}DEVICE_UPPER_CASE) option(BUILD_DEVICE_ $
Definition: CMakeLists.txt:35
void allocate(size_t size)
Allocates the system and compliance matrices.
Definition: OdeSolver.cpp:58
IntegrationScheme
The diverse numerical integration scheme supported Each Ode Solver should have its own entry in this ...
Definition: OdeSolver.h:36
OdeSolver(OdeEquation *equation)
Constructor.
Definition: OdeSolver.cpp:25
virtual ~OdeSolver()
Virtual destructor.
Definition: OdeSolver.h:81
Definitions of small fixed-size square matrix types.
virtual void solve(double dt, const OdeState ¤tState, OdeState *newState)=0
Solves the equation.
Definition: OdeSolver.h:40
const std::string getName() const
Gets the solver's name.
Definition: OdeSolver.cpp:33
OdeEquation & m_equation
The ode equation (API providing the necessary evaluation methods and the initial state) ...
Definition: OdeSolver.h:120
Definition: OdeSolver.h:41
Base class for all solvers of ode equation of order 2 of the form M(x(t), v(t)).a(t) = f(t...
Definition: OdeSolver.h:73
std::shared_ptr< LinearSolveAndInverse > m_linearSolver
The specialized linear solver to use when solving the ode equation.
Definition: OdeSolver.h:123
Definition: OdeSolver.h:38
Definition: OdeSolver.h:39
Matrix m_systemMatrix
System matrix (can be M, K, combination of MDK depending on the solver) A static solver will have K f...
Definition: OdeSolver.h:129
std::shared_ptr< LinearSolveAndInverse > getLinearSolver() const
Gets the specialized linear solver used with this Ode solver.
Definition: OdeSolver.cpp:43
const Matrix & getCompliance() const
Queries the current compliance matrix.
Definition: OdeSolver.cpp:53
Definition: OdeSolver.h:37