Marine systems simulation
|
#include <ConstraintSolver.h>
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.