FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
NetCableElementWithConstraints Class Reference

Class containing a cable element object, allowing for disks and spheres to be connected. More...

#include <NetCableElementWithConstraints.h>

+ Inheritance diagram for NetCableElementWithConstraints:
+ Collaboration diagram for NetCableElementWithConstraints:

Public Member Functions

 NetCableElementWithConstraints ()
 The constructor.
 
 NetCableElementWithConstraints (const NetCableElementWithConstraints *old)
 The copy constructor.
 
 NetCableElementWithConstraints (const NetCableElementSpec *spec)
 
 ~NetCableElementWithConstraints ()
 The destructor.
 
void AddEndForces (double deltaT, const double adPosA[3], const double adVelA[3], const double adPosB[3], const double adVelB[3], const double adFluidVel[3], const double rhoWater, double adForceA[3], double adForceB[3])
 Calculates the end forces on the cable element.
 
void SetConstants ()
 Calculates parameters and sets physical constants.
 
void CalcMassAndWeight ()
 Calculates the mass and weight of the element in water.
 
bool Divide (int aiNodes[2], int newNode, int newElementID, NetCableElementWithConstraints **sNewCable)
 Divides the element in two.
 
bool CheckAndInitialize ()
 Does the initialization and checking to make sure that the element is ready for simulation.
 
void DeleteSpheresAndDisks ()
 
void AddSpheres (double *adD, double *adMass, double *adPos, std::vector< std::string > VsSphereMaterial, int num)
 
void AddDisks (double *adD, double *adThickness, double *adMass, double *adPos, std::vector< std::string > VsDiskMaterial, int num)
 
- Public Member Functions inherited from CableElDynStiff
 CableElDynStiff ()
 The constructor.
 
 ~CableElDynStiff ()
 The destructor.
 
virtual void UpdateLength (double newLength, double step, bool forceUpdate=false)
 Updates the length of the cable element, and its dependant properties.
 
void UpdateMeanTension (double step)
 Updates the mean tension of the cable element.
 
double GetEFactor () const
 Returns the current stiffness reduction factor (1 = full stiffness, <1 = reduced for numerical stability).
 
virtual void AddStructuralForces (double adForceA[3], double adForceB[3])
 Adds the forces from tension and internal damping to the nodes. CalcFoundation must be run first.
 
- Public Member Functions inherited from CableElBasics
 CableElBasics ()
 The constructor.
 
 ~CableElBasics ()
 The destructor.
 
virtual void AddEndForces (const double adPosA[3], const double adVelA[3], const double adPosB[3], const double adVelB[3], const double adFluidVel[3], const double rhoWater, double adForceA[3], double adForceB[3])
 Calculates the end forces on the cable element.
 
double GetDampingCoeff () const
 Returns the structural damping coefficient (negative value: -2*dampRatio*area*sqrt(E*rho)).
 
virtual void UpdateLength (double newLength)
 Upates the length of the cable element, and its dependant properties.
 
double GetLength ()
 

Public Attributes

double m_nodeOffset
 The offset between the original nodes of the added node of this cable.
 
int m_fromNodes [2]
 The nodes which this cable is constructed by dividing.
 
int m_conn [2]
 The node numbers that the element is connected to.
 
double m_refineFactor
 The factor telling how much mesh refinement is desired for this element.
 
int m_numSpheres
 The number of spheres connected.
 
double * m_sphereD
 The diameter of the connected spheres.
 
double * m_sphereMass
 The mass of the connected spheres.
 
double * m_spherePos
 The position of the connected spheres.
 
int m_numDisks
 The number of disks connected.
 
double * m_diskD
 The diameter of the connected disks.
 
double * m_diskThickness
 The thickness of the connected disks.
 
double * m_diskMass
 The mass of the connected disks.
 
double * m_diskPos
 The position of the connected disks.
 
double m_addedWeightInWater
 The weight in water added to the element.
 
std::vector< std::string > m_VsDiskMeshName
 The names of the materials of the attached disks.
 
std::vector< std::string > m_VsSphereMeshName
 The names of the materials of the attached spheres.
 
- Public Attributes inherited from CableElDynStiff
double m_maxStep
 The maximum step of the integration routine.
 
double m_meanTension
 The mean tension of the cable element.
 
double m_eAdaptationPeriod
 The time constant of the adaptation of the mean tension.
 
double m_stepSafetyFactor
 The safety factor when calculating the Young modulus of the element.
 
- Public Attributes inherited from CableElBasics
unsigned long m_iD
 The ID of the element.
 
std::string m_cableName
 The name of the parent cable.
 
double m_dL0
 The relaxed length of the element.
 
double m_dD
 The diameter of the element.
 
double m_dE
 The Young modulus of the element.
 
double m_rho
 The density of the element material.
 
double m_addedWeightInWater
 The weight in water added to the element.
 
double m_tangentialFrictionCoeff
 The tangential drag coefficient of the cable element.
 
double m_normalDragCoeff
 The normal drag coefficient of the cable element.
 
double m_rhoWater
 The density of the surrounding water.
 
double m_minLength
 The minimum length of the element.
 
double m_maxTension
 The maximum tension in the element.
 
double m_dampingRatio
 The relative damping ratio of the cable.
 
double m_eA
 The linear stiffness of the element.
 
double m_dA
 The cross sectional area of the cable.
 
double m_weightInWater [2]
 The weight in water distributed to each node.
 
double m_massInWater [2]
 The mass in water distributed to each node.
 
double m_weightInWaterPerMeter [2]
 The weight in water distributed to each node, per meter cable.
 
double m_massInWaterPerMeter [2]
 The mass in water distributed to each node, per meter cable.
 

Protected Member Functions

void AddHydroForcesAppendices (double adForceA[3], double adForceB[3])
 Calculates the hydrodynamic forces on spheres and disks attached to the cable.
 
- Protected Member Functions inherited from CableElBasics
void CalcFoundation (const double adPosA[3], const double adVelA[3], const double adPosB[3], const double adVelB[3], const double adFluidVel[3], const double rhoWater)
 
void AddGravityBuoyancy (double adForceA[3], double adForceB[3], const double adPosA[3], const double adPosB[3])
 Adds the forces from gravity and buoyancy to the nodes. CalcFoundation must be run first.
 
void AddHydroForcesCable (double adForceA[3], double adForceB[3])
 Calculates the hydrodynamic forces on the cable and the spheres and disks attached to it. CalcFoundation must be run first.
 

Protected Attributes

double m_dragCoeffSphere
 The drag coefficient of a sphere.
 
double m_normalDragCoeffDisk
 The normal drag coefficient of a disk.
 
double m_tangentialFrictionCoeffDisk
 The normal drag coefficient of a disk.
 
- Protected Attributes inherited from CableElDynStiff
double ma_dEps
 The stretching of the cable.
 
double m_eFactor
 The factor multiplied by the Young modulus.
 
double m_meanTensionDamp
 The damping of the development of the mean tension.
 
double ma_adMeanTensionForceA [3]
 
double ma_dAdaptationDamping
 
sfh::filters::PID m_MeanTensionController
 
- Protected Attributes inherited from CableElBasics
double ma_adDirection [3]
 Memory allocation to increase the computational efficiency.
 
double ma_dDampingCoeff
 A intermediate damping calculation to increase the computational efficiency.
 
double ma_adVel [3]
 The average hydrodynamic velocity of the element.
 
double ma_dVelAmp
 The scalar average hydrodynamic velocity of the element.
 
double ma_adVt [3]
 The average tangential hydrodynamic velocity of the element.
 
double ma_dVtAmp
 The scalar average tangential hydrodynamic velocity of the element.
 
double ma_adVn [3]
 The average normal hydrodynamic velocity of the element.
 
double ma_dVnAmp
 The scalar average normal hydrodynamic velocity of the element.
 
double ma_adVn_A [3]
 The hydrodynamic normal velocity of the end A.
 
double ma_adVn_B [3]
 The hydrodynamic normal velocity of the end B.
 
double ma_dVnAmp_A
 The scalar hydrodynamic normal velocity of the end A.
 
double ma_dVnAmp_B
 The scalar hydrodynamic normal velocity of the end B.
 
double ma_dLength
 The actual distance between the ends.
 
double ma_dCompressionSpeed
 The speed at which the distance between the two ends decreases.
 
double ma_dTangentialDragFactor
 A factor used when calculating the tangential drag force.
 
double ma_dNormalDragFactor
 A factor used when calculating the normal drag force.
 

Detailed Description

Author
Karl-Johan Reite

Member Function Documentation

◆ CalcMassAndWeight()

void NetCableElementWithConstraints::CalcMassAndWeight ( )
virtual

Reimplemented from CableElBasics.

◆ CheckAndInitialize()

bool NetCableElementWithConstraints::CheckAndInitialize ( )
virtual

Reimplemented from CableElDynStiff.

◆ SetConstants()

void NetCableElementWithConstraints::SetConstants ( )
virtual

Reimplemented from CableElBasics.


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