3#include "SupergridLineStructure.h"
4#include "CollisionManager.h"
9 class DiscreteCylinderElement;
20 virtual void XmlInfo(TiXmlElement& xml_node);
22 virtual std::string GetSegmentTypeName();
26 vec6 DiagonalInertia(
double length);
27 vec6 AddedMassDiagonalInertia(
double length);
29 void SetDisplacementArea(
double displacement_area);
31 double Beta(){
return m_beta;}
33 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
41 vec6 m_DiagonalInertia;
42 vec6 m_AddedMassDiagonalInertia;
57 virtual void Setup(
double T,
const double *
const X, mat6& InertiaMatrix, vec6& Force);
59 virtual void SplitElement(
int N);
61 void SetDisplacementArea(
double displacement_area);
63 double m_buoyancy_volume;
81 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
85 virtual void SetRetractedLength(
double retracted_length,
double retraction_speed);
86 double GetRetractedLength(){
return m_retracted_length;}
89 vec3 GetCableUpperEndPosition();
90 vec3 GetCableLowerEndPosition();
98 virtual void InitialConditionSetup(
const double T,
double*
const updatedIC,
const vec3& PA,
const vec3& PB,
double initial_retracted_length);
108 void SetEndpointPositionB(
const vec3& position,
const vec3& velocity,
double connection_strength = 1.0);
109 void SetEndpointElementConnectionA(
RigidElement* connection_element,
double element_connection_strength = 1.0);
110 void SetEndpointElementConnectionB(
RigidElement* connection_element,
double element_connection_strength = 1.0);
111 void SetEndpointElementConnectionA(
RigidElement* connection_element,
const vec3& ConnectionVector,
double element_connection_strength = 1.0);
112 void SetEndpointElementConnectionB(
RigidElement* connection_element,
const vec3& ConnectionVector,
double element_connection_strength = 1.0);
114#ifdef FH_VISUALIZATION
115 virtual void RenderUpdate(
const double T,
const double*
const X);
118 vec3 GetEndpointReactionForceA();
121 vec3 GetEndpointReactionForceB();
124 vec3 GetElementConnectionForceA(){
return m_element_connectionA.ReactionForce.segment<3>(0);}
125 vec3 GetElementConnectionForceB(){
return m_element_connectionB.ReactionForce.segment<3>(0);}
127 DiscreteElement* GetDiscreteElementA();
141 void NumRetractedElements(
size_t &super_element_ix,
size_t &sub_element_ix);
143 double m_retracted_length;
147 size_t m_num_retracted_super;
159 double m_element_connection_strengthA;
160 double m_element_connection_strengthB;
161 vec3 m_connection_vector_elementA;
162 vec3 m_connection_vector_elementB;
164 double m_endpoint_connectionA_strength;
165 double m_endpoint_positionA[3];
166 double m_endpoint_velocityA[3];
168 double m_endpoint_connectionB_strength;
169 double m_endpoint_positionB[3];
170 double m_endpoint_velocityB[3];
Definition: CollisionManager.h:37
Definition: ConstraintSolver.h:31
Definition: SupergridLineStructure.h:15
Definition: RigidElement.h:15
Definition: SupergridCable.h:16
Definition: SupergridCable.h:52
Definition: SupergridLineStructure.h:73
Definition: SupergridLineStructure.h:170
Definition: SupergridCable.h:79
double m_retraction_speed
current set retracted length [m]
Definition: SupergridCable.h:144
virtual void XmlInfo(TiXmlElement &xml_node)
returns the last active discrete element
RigidElement * m_connection_elementA
discrete retracted length
Definition: SupergridCable.h:157
size_t m_minimum_sub_super_treshold
current number of inactive rigid elements in the "free tail"
Definition: SupergridCable.h:151
double m_sub_super_threshold_strength
minimum possible value of the sub-super threshold. no need to apply straightening forces at or below ...
Definition: SupergridCable.h:152
size_t m_num_free_rigid_elements
current index of the last super-element with currently active sub-elements
Definition: SupergridCable.h:150
double m_retracted_element_length
actual retracted length - discrete retracted length
Definition: SupergridCable.h:155
virtual void ComputeConstraints(const double T, const double *const X)
double m_max_retraction_length
current set retraction speed [m/s]
Definition: SupergridCable.h:145
virtual void AllocateElementBuffer(const double T, double *const X)
double m_residual_length
Gamma0 value of the sub-super straightening force.
Definition: SupergridCable.h:154
size_t m_num_retracted_sub
current number of retracted super-elements
Definition: SupergridCable.h:148
DiscreteElement * GetDiscreteElementB()
returns the first active discrete element
size_t m_sub_super_threshold_ix
current number of retracted sub-elements of the first free super-element
Definition: SupergridCable.h:149
void SetEndpointPositionA(const vec3 &position, const vec3 &velocity, double connection_strength=1.0)
Computes structural connections.
virtual void AddSegment(LineSegment *l)
Definition: SupergridCable.h:181
virtual void ComputeConstraints(const double T, const double *const X)
Definition: SupergridLineStructure.h:237
Definition: CollisionManager.h:6
Definition: JointConstraint.h:141
Definition: JointConstraint.h:125
Definition: SupergridLineStructure.h:172