Marine systems simulation
CoRiBoDynamics::Structures::RingStructure Class Reference
+ Inheritance diagram for CoRiBoDynamics::Structures::RingStructure:
+ Collaboration diagram for CoRiBoDynamics::Structures::RingStructure:

Classes

struct  RingSpec
 

Public Member Functions

 RingStructure (CoRiBoDynamics::ConstraintSolver *solver, ISimObjectCreator *creator, CoRiBoDynamics::Structures::RingStructure::RingSpec spec, std::string name)
 
virtual void InitialConditionSetup (double *const UpdatedIC, vec3 CenterPosition)
 
RigidElementgetElement (int i)
 
std::vector< RigidElement * > getElements ()
 
RigidElementgetFirstElement ()
 
RigidElementgetLastElement ()
 
int getNumElements ()
 
double GammaN ()
 
double GammaMx ()
 
double GammaMy ()
 
double GammaT ()
 
virtual void ComputeConstraints (const double T, const double *const X)
 
- 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
 

Protected Member Functions

 RingStructure (ConstraintSolver *solver)
 
virtual void Init (ConstraintSolver *solver, ISimObjectCreator *creator, RingSpec spec, std::string name)
 
- 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)
 

Protected Attributes

RingSpec m_spec
 
double m_elemLength
 Base properties of the ring.
 
std::vector< RigidElement * > m_elements
 element length [m]
 
double m_GammaN
 list of all elements
 
double m_GammaMx
 axial regulator stiffness parameter
 
double m_GammaMy
 bending regulator stiffness parameter
 
double m_GammaT
 bending regulator stiffness parameter
 
- 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

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

Constructor & Destructor Documentation

◆ RingStructure()

CoRiBoDynamics::Structures::RingStructure::RingStructure ( CoRiBoDynamics::ConstraintSolver solver,
ISimObjectCreator *  creator,
CoRiBoDynamics::Structures::RingStructure::RingSpec  spec,
std::string  name 
)

Creates the necessary states for the ring structure

Member Function Documentation

◆ ComputeConstraints()

virtual void CoRiBoDynamics::Structures::RingStructure::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::JointConstraint.

Reimplemented in RingStructureGravityHydro.

◆ InitialConditionSetup()

virtual void CoRiBoDynamics::Structures::RingStructure::InitialConditionSetup ( double *const  UpdatedIC,
vec3  CenterPosition 
)
virtual

Initializes the elements in a horizontal ring with zero velocities


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