iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | List of all members
imstk::PbdSolver Class Reference

Position Based Dynamics solver This solver can solve both partitioned constraints (unordered_set of vector'd constraints) in parallel and sequentially on vector'd constraints. It requires a set of constraints, positions, and invMasses. More...

#include <imstkPbdSolver.h>

Inheritance diagram for imstk::PbdSolver:
Inheritance graph
[legend]
Collaboration diagram for imstk::PbdSolver:
Collaboration graph
[legend]

Public Member Functions

void setIterations (const size_t iterations)
 Set Iterations. The number of nonlinear iterations.
 
void setConstraints (std::shared_ptr< PbdConstraintContainer > constraints)
 Sets the constraints the solver should solve for These wil be solved sequentially.
 
void addConstraints (std::vector< PbdConstraint *> *constraints)
 Add a constraint list to this solver to be solved, for quick addition/removal particularly collision.
 
void setPbdBodies (PbdState *state)
 Sets the bodies to solve with.
 
void setTimeStep (const double dt)
 Set time step.
 
size_t getIterations () const
 Get Iterations. Returns current nonlinear iterations.
 
void setSolverType (const PbdConstraint::SolverType &type)
 Set the PBD solver type.
 
void solve () override
 Solve the non linear system of equations G(x)=0 using Newton's method.
 
const std::list< std::vector< PbdConstraint * > * > & getConstraintLists () const
 Get all the collision constraints, read only.
 
void clearConstraintLists ()
 Clear all collision constraints.
 

Additional Inherited Members

- Public Attributes inherited from imstk::SolverBase
std::shared_ptr< DataTrackerm_dataTracker
 

Detailed Description

Position Based Dynamics solver This solver can solve both partitioned constraints (unordered_set of vector'd constraints) in parallel and sequentially on vector'd constraints. It requires a set of constraints, positions, and invMasses.

Definition at line 23 of file imstkPbdSolver.h.


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