|
Marine systems simulation
|
#include <SupergridWinchCable.h>
Inheritance diagram for CoRiBoDynamics::Structures::SupergridWinchCable:
Collaboration diagram for CoRiBoDynamics::Structures::SupergridWinchCable:Public Member Functions | |
| SupergridWinchCable (ConstraintSolver *solver, ISimObjectCreator *creator, Environment_Interface *environment, int rigid_element_buffer_size, double beta, std::string name, Winch *winch) | |
| Winch * | GetWinch () |
| TowingBlock * | GetTowingBlock () |
| void | GetFirstFreeDiscreteElementIndex (int &super_ix, int &sub_ix) |
| double | GetPaidOutLength () |
| virtual void | AllocateElementBuffer (const double T, double *const X) |
| virtual bool | InitialConditionSetup (const double T, double *const updatedIC, const vec3 &PB, Winch::InitialStatesLoader winch_init_states) |
| virtual void | ComputeConstraints (const double T, const double *const X) |
| SupergridWinchCableCollisionManager * | GetCollisionManager () |
| Computes structural connections. | |
| void | SetTowingBlock (TowingBlock *towing_block) |
| virtual const std::vector< CollisionManager::ExternalObject * > | GetTowingBlockGeometry () |
| virtual void | XmlInfo (TiXmlElement &xml_node) |
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_Interface * | GetEnvironment () |
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 | |
| void | InitializeElementAllocation () |
| void | InitializeFreespanCurve (Utilities::CurveSegment *curve_initializer, double T, double *const updatedIC) |
| initial coupling of rigid elements and discrete elements | |
| void | ComputeDiscreteCableLength (size_t &super_ix, size_t &sub_ix, double &length) |
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 | |
| size_t | m_num_retracted_super |
| size_t | m_num_retracted_sub |
| size_t | m_sub_super_threshold_ix |
| double | m_sub_super_threshold_strength |
| size_t | m_num_free_rigid_elements |
| Winch * | m_winch |
| current number of inactive rigid elements in the "free tail" | |
| TowingBlock * | m_towing_block |
| SupergridWinchCableCollisionManager * | m_collision_manager |
Protected Attributes inherited from CoRiBoDynamics::Structures::SupergridLineStructure | |
| double | m_length |
| double | m_beta |
| Environment_Interface * | m_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 | |
Static Protected Member Functions inherited from CoRiBoDynamics::JointConstraint | |
| static mat4 | QuaternionConstraint_Jacobian (const Quat &q) |
| static mat43 | Quaternion_Kinematics (const Quat &q) |
Extends a SupergridLineStructure with a collidable winch geometry and towing block.
|
virtual |
Reallocates RigidElements to DiscreteElements. Since this method needs to change and move the internal states of objects, it needs access to an non-const state vector X
|
virtual |
Computes and returns the constraint system matrix for the current states (T and X). Adds constraint forces.
Reimplemented from CoRiBoDynamics::Structures::SupergridLineStructure.
| void CoRiBoDynamics::Structures::SupergridWinchCable::GetFirstFreeDiscreteElementIndex | ( | int & | super_ix, |
| int & | sub_ix | ||
| ) |
Returns the index of the first free discrete element i.e. the first DiscreteElement that is not fully retracted on to the winch. {super_ix} refers to the vector from SupergridLineStructure::GetDiscreteElements(). {sub_ix} refers to the first free sub element
| double CoRiBoDynamics::Structures::SupergridWinchCable::GetPaidOutLength | ( | ) |
Total length of cable minus length of all elements that are retracted onto the winch
|
virtual |
Reimplemented from CoRiBoDynamics::Structures::SupergridLineStructure.