|
Marine systems simulation
|
#include <ConstraintSolver.h>
Collaboration diagram for CoRiBoDynamics::ConstraintSolver:Classes | |
| class | ConstraintSetTask |
| class | SubDomainInertiaTask |
| class | SubDomainWriteDynamic |
Public Member Functions | |
| ConstraintSolver (double TimeConstant) | |
| ConstraintSolver (double TimeConstant, int numThreads, bool no_hyperthreading=false) | |
| ConstraintSolver (double TimeConstant, CoreBoundThreadPool *ThreadPool) | |
| void | UpdateElements (const double T, const double *const X) |
| void | ComputeDynamic (const double T, const double *const X, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &External_Force) |
| void | ComputeDynamic (const double T, const double *const X) |
| void | WriteDynamic (const double *const X, double *const XDot) |
| int | addRigidElement (RigidElement *element) |
| void | SetSymplecticStepSize (double h) |
| double | GetSymplecticStepSize () |
| double | ComputeKineticEnergy (const double T, const double *const X) |
| int | NumElements () |
| CoreBoundThreadPool * | GetThreadPool () |
| ConjugateGradientSolver * | GetCGSolver () |
| void | setConstraintSetPriority (ConstraintSet *constraintSet, int priority) |
| void | PrintElement (int index) |
| set computation order priority for this constraint set | |
| SparseMatrixBuilder * | GetSparseMatrixBuilder () |
Protected Member Functions | |
| void | Initialize (double TimeConstant) |
| void | ComputeDynamicInternal (const double T, const double *const X, const Vector *External_Force) |
| void | addConstraintSet (ConstraintSet *constraintSet) |
| void | addForceThreadSafe (int element, const vec6 &Force) |
| Computed second derivatives. | |
Protected Attributes | |
| std::vector< RigidElement * > | m_element |
| adds a constraint set to the global constraint system. Only the constraint sets themselves are allowed to call this method through friend privileges. | |
| Vector | m_SecondDerivatives |
| list of all 6DOF rigid elements in the system | |
| std::mutex * | m_ForceVectorLocks |
| Vector | m_Force |
| SparseMatrixBuilder * | m_MatrixBuilder |
| F_external - M_dot·V + F_constraint. | |
| CoreBoundThreadPool * | m_ThreadPool |
| std::mutex | m_ConstraintPoolLock |
| double | m_TimeConstant |
| double | m_symplecticH |
| bool | m_elements_updated |
| ConjugateGradientSolver * | m_CG_solver |
| std::map< int, std::vector< ConstraintSetTask > > | m_ConstraintSet |
| std::map< ConstraintSet *, int > | m_priority_index |
| std::vector< SubDomainInertiaTask > | m_InertiaComputers |
| std::vector< SubDomainWriteDynamic > | m_WriteDynamic |
Friends | |
| class | ConstraintSet |
Holds a set of rigid 6 dof objects, and a set of corresponding constraints.
Manages multithreading, building and solution of system matrix, and kinematics/dynamics after the Ode have been computed.