Marine systems simulation
CollarChain Class Reference
+ Inheritance diagram for CollarChain:
+ Collaboration diagram for CollarChain:

Classes

class  EnvironmentWrapper
 

Public Member Functions

 CollarChain (CoRiBoDynamics::ConstraintSolver *solver, ISimObjectCreator *creator, double beta, string name)
 
void setEnvironment (CEnvironment *e)
 
virtual void ComputeConstraints (const double T, const double *const X)
 
- Public Member Functions inherited from CoRiBoDynamics::Structures::PointRetractableCable
EIGEN_MAKE_ALIGNED_OPERATOR_NEW PointRetractableCable (ConstraintSolver *solver, ISimObjectCreator *creator, Environment_Interface *environment, int rigid_element_buffer_size, double beta, std::string name)
 
virtual void SetRetractedLength (double retracted_length, double retraction_speed)
 
double GetRetractedLength ()
 
double GetRetractionSpeed ()
 
vec3 GetCableUpperEndPosition ()
 
vec3 GetCableLowerEndPosition ()
 
virtual void AllocateElementBuffer (const double T, double *const X)
 
virtual void InitialConditionSetup (const double T, double *const updatedIC, const vec3 &PA, const vec3 &PB, double initial_retracted_length)
 
virtual void ComputeConstraints (const double T, const double *const X)
 
void SetEndpointPositionA (const vec3 &position, const vec3 &velocity, double connection_strength=1.0)
 Computes structural connections.
 
void SetEndpointPositionB (const vec3 &position, const vec3 &velocity, double connection_strength=1.0)
 
void SetEndpointElementConnectionA (RigidElement *connection_element, double element_connection_strength=1.0)
 
void SetEndpointElementConnectionB (RigidElement *connection_element, double element_connection_strength=1.0)
 
void SetEndpointElementConnectionA (RigidElement *connection_element, const vec3 &ConnectionVector, double element_connection_strength=1.0)
 
void SetEndpointElementConnectionB (RigidElement *connection_element, const vec3 &ConnectionVector, double element_connection_strength=1.0)
 
vec3 GetEndpointReactionForceA ()
 
vec3 GetEndpointA ()
 
vec3 GetEndpointReactionForceB ()
 
vec3 GetEndpointB ()
 
vec3 GetElementConnectionForceA ()
 
vec3 GetElementConnectionForceB ()
 
DiscreteElementGetDiscreteElementA ()
 
DiscreteElementGetDiscreteElementB ()
 returns the first active discrete element
 
virtual void XmlInfo (TiXmlElement &xml_node)
 returns the last active discrete element More...
 
virtual void AddSegment (LineSegment *l)
 
- Public Member Functions inherited from CoRiBoDynamics::Structures::SupergridLineStructure
virtual void AddSegment (LineSegment *l)
 
const std::vector< DiscreteElement * > * GetDiscreteElements ()
 
const std::vector< ModifiableRigidElement * > * GetRigidElements ()
 
const std::vector< double > * GetRigidElementTension ()
 
const std::vector< LineSegment * > * GetLineSegments ()
 
double GetLength ()
 
 SupergridLineStructure (ConstraintSolver *solver, ISimObjectCreator *creator, Environment_Interface *environment, int rigid_element_buffer_size, double beta, std::string name)
 
virtual void XmlInfo (TiXmlElement &xml_node)
 
virtual void ComputeConstraints (const double T, const double *const X)
 
double GetBeta ()
 Computes structural connections.
 
Environment_InterfaceGetEnvironment ()
 
- Public Member Functions inherited from CoRiBoDynamics::JointConstraint
 JointConstraint (ConstraintSolver *solver)
 
virtual void ComputeConstraints (const double T, const double *const X)
 
void addBallJointCoupling (int elementA, int elementB, vec3 vectorA, vec3 vectorB, double Beta, double Alpha, double Gamma)
 
void addHingeCoupling (int elementA, int elementB, vec3 vectorA, vec3 vectorB, vec3 axisA, vec3 axisB, double Beta, double Alpha, double Gamma, double AlphaFriction, double GammaFriction)
 
void addRigidCoupling (int elementA, int elementB, vec3 vectorA, vec3 vectorB, double BetaN, double AlphaN, double GammaN, const Quat &nullAngle, const Quat &BetaM, const Quat &AlphaM, const Quat &GammaM)
 
int addExternalBallJointCoupling (int element, vec3 vector, double Beta, double Alpha, double Gamma, const double *Position, const double *Velocity)
 
void updateExternalBallJointCoupling (int ballJointCoupling, const double *Position, const double *Velocity)
 
vec3 getExternalBallJointCouplingForce (int ballJointCoupling)
 
int addExternalRigidCoupling (int element, vec3 vectorExternalObject, vec3 vectorInternalObject, double BetaN, double AlphaN, double GammaN, const Quat &nullAngle, const Quat &BetaM, const Quat &AlphaM, const Quat &GammaM, const double *Position, const double *Velocity, const double *Orientation, const double *AngularVelocity)
 
void updateExternalRigidCoupling (int rigidCoupling, const double *Position, const double *Velocity, const double *Orientation, const double *AngularVelocity)
 
vec6 getExternalRigidCouplingForce (int rigidCoupling)
 
vec3 getExternalBallJointCouplingForce (ExternalBallJointCoupling &Constraint)
 
vec6 getExternalRigidCouplingForce (ExternalRigidCoupling &Constraint)
 
- Public Member Functions inherited from CoRiBoDynamics::ConstraintSet
 ConstraintSet (ConstraintSolver *solver)
 
virtual void ComputeConstraints (const double T, const double *const X)=0
 

Static Protected Member Functions

static int GetElementNum (ISimObjectCreator *creator)
 
- Static Protected Member Functions inherited from CoRiBoDynamics::JointConstraint
static mat4 QuaternionConstraint_Jacobian (const Quat &q)
 
static mat43 Quaternion_Kinematics (const Quat &q)
 

Protected Attributes

EnvironmentWrapper env_wrapper
 
- Protected Attributes inherited from CoRiBoDynamics::Structures::PointRetractableCable
double m_retracted_length
 
double m_retraction_speed
 current set retracted length [m]
 
double m_max_retraction_length
 current set retraction speed [m/s]
 
size_t m_num_retracted_super
 
size_t m_num_retracted_sub
 current number of retracted super-elements
 
size_t m_sub_super_threshold_ix
 current number of retracted sub-elements of the first free super-element
 
size_t m_num_free_rigid_elements
 current index of the last super-element with currently active sub-elements
 
size_t m_minimum_sub_super_treshold
 current number of inactive rigid elements in the "free tail"
 
double m_sub_super_threshold_strength
 minimum possible value of the sub-super threshold. no need to apply straightening forces at or below this point
 
double m_residual_length
 Gamma0 value of the sub-super straightening force.
 
double m_retracted_element_length
 actual retracted length - discrete retracted length
 
RigidElementm_connection_elementA
 discrete retracted length
 
RigidElementm_connection_elementB
 
double m_element_connection_strengthA
 
double m_element_connection_strengthB
 
vec3 m_connection_vector_elementA
 
vec3 m_connection_vector_elementB
 
double m_endpoint_connectionA_strength
 
double m_endpoint_positionA [3]
 
double m_endpoint_velocityA [3]
 
ExternalBallJointCoupling m_endpoint_connectionA
 
double m_endpoint_connectionB_strength
 
double m_endpoint_positionB [3]
 
double m_endpoint_velocityB [3]
 
ExternalBallJointCoupling m_endpoint_connectionB
 
RigidCoupling m_element_connectionA
 
RigidCoupling m_element_connectionB
 
- Protected Attributes inherited from CoRiBoDynamics::Structures::SupergridLineStructure
double m_length
 
double m_beta
 
Environment_Interfacem_environment
 
std::vector< ModifiableRigidElement * > m_rigid_element_buffer
 
std::vector< LineSegment * > m_segment
 
std::vector< DiscreteElement * > m_super_element
 
std::vector< double > m_rigid_element_tension
 
std::string m_name
 
- Protected Attributes inherited from CoRiBoDynamics::JointConstraint
std::vector< HingeCoupling,Eigen::aligned_allocator< HingeCoupling > > m_HingeCoupling
 
std::vector< BallJointCoupling,Eigen::aligned_allocator< BallJointCoupling > > m_BallJointCoupling
 BallJoint Coupling.
 
std::vector< RigidCoupling,Eigen::aligned_allocator< RigidCoupling > > m_RigidCoupling
 BallJoint Coupling.
 
std::vector< ExternalBallJointCoupling, Eigen::aligned_allocator< ExternalBallJointCoupling > > m_ExternalBallJointCoupling
 Rigid Coupling.
 
std::vector< ExternalRigidCoupling, Eigen::aligned_allocator< ExternalRigidCoupling > > m_ExternalRigidCoupling
 External Ball Joint Coupling.
 

Additional Inherited Members

- Protected Member Functions inherited from CoRiBoDynamics::Structures::PointRetractableCable
void NumRetractedElements (size_t &super_element_ix, size_t &sub_element_ix)
 
- Protected Member Functions inherited from CoRiBoDynamics::JointConstraint
void ComputeHingeCoupling (HingeCoupling &Constraint)
 
void ComputeBallJointCoupling (BallJointCoupling &Constraint)
 
void ComputeRigidCoupling (RigidCoupling &Constraint)
 
void ComputeExternalBallJointCoupling (ExternalBallJointCoupling &Constraint)
 
void ComputeExternalVaryingBallJointCoupling (ExternalBallJointCoupling &Constraint, double vector_length_changerate)
 
void ComputeExternalRigidCoupling (ExternalRigidCoupling &Constraint)
 
- Protected Member Functions inherited from CoRiBoDynamics::ConstraintSet
const std::vector< RigidElement * > & ElementVector ()
 
void addConstraintResultantForce (int element, const vec6 &Force)
 
const vec3 Acceleration (int element)
 
const vec3 AngularAcceleration (int element)
 
const vec6 SecondDerivatives (int element)
 
void addMatrix (int i, int j, const mat6 &M)
 

Member Function Documentation

◆ ComputeConstraints()

virtual void CollarChain::ComputeConstraints ( const double  T,
const double *const  X 
)
virtual

Computes and returns the constraint system matrix for the current states (T and X). Adds constraint forces.

Reimplemented from CoRiBoDynamics::Structures::PointRetractableCable.


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