Marine systems simulation
CNetCableElement Class Reference

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

#include <CNetCableElement.h>

+ Inheritance diagram for CNetCableElement:
+ Collaboration diagram for CNetCableElement:

Public Member Functions

 CNetCableElement (const CNetCableElement *pOld)
 
 CNetCableElement (const CNetCableElementSpec *pSpec)
 
void AddEndForces (double dDeltaT, const double adPosA[3], const double adVelA[3], const double adPosB[3], const double adVelB[3], const double adFluidVel[3], const double dRhoWater, double adForceA[3], double adForceB[3], bool isScreen=false)
 
void SetConstants ()
 Calculates parameters and sets physical constants. More...
 
void CalcMassAndWeight ()
 Calculates the mass and weight of the element in water. More...
 
bool Divide (int aiNodes[2], int iNewNode, int iNewElementID, CNetCableElement **pSNewCable)
 Divides the element in two.
 
bool CheckAndInitialize ()
 Does the initialization and checking to make sure that the element is ready for simulation. More...
 
void DeleteSpheresAndDisks ()
 
void AddSpheres (double *adD, double *adMass, double *adPos, std::vector< std::string > VsSphereMaterial, unsigned int iNum)
 
void AddDisks (double *adD, double *adThickness, double *adMass, double *adPos, std::vector< std::string > VsDiskMaterial, unsigned int iNum)
 
double GetStrainEnergy (double dDeltaT, const double adPosA[3], const double adVelA[3], const double adPosB[3], const double adVelB[3], const double adFluidVel[3], const double dRhoWater)
 
- Public Member Functions inherited from CCableElDynStiff
 CCableElDynStiff ()
 The constructor.
 
 ~CCableElDynStiff ()
 The destructor.
 
virtual bool CheckAndInitialize ()
 Does the initialization and checking to make sure that the element is ready for simulation. More...
 
virtual void UpdateLength (double dNewLength, double dStep, bool bForceUpdate=false)
 Updates the length of the cable element, and its dependant properties.
 
void UpdateMeanTension (double dStep)
 Updates the mean tension of the cable element.
 
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. More...
 
- Public Member Functions inherited from CCableElBasics
 CCableElBasics ()
 The constructor.
 
 ~CCableElBasics ()
 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 dRhoWater, double adForceA[3], double adForceB[3])
 Calculates the end forces on the cable element.
 
virtual void SetConstants ()
 Calculates parameters and sets physical constants. More...
 
virtual void CalcMassAndWeight ()
 Calculates the mass and weight of the element in water. More...
 
virtual bool CheckAndInitialize ()
 Does the initialization and checking to make sure that the element is ready for simulation. More...
 
virtual void UpdateLength (double dNewLength)
 Upates the length of the cable element, and its dependant properties.
 
double GetLength ()
 

Public Attributes

double m_dNodeOffset
 The offset between the original nodes of the added node of this cable.
 
int m_iFromNodes [2]
 The nodes which this cable is constructed by dividing.
 
int m_aiConn [2]
 The node numbers that the element is connected to.
 
double m_dRefineFactor
 The factor telling how much mesh refinement is desired for this element.
 
unsigned int m_iNumSpheres
 The number of spheres connected.
 
double * m_adSphereD
 The diameter of the connected spheres.
 
double * m_adSphereMass
 The mass of the connected spheres.
 
double * m_adSpherePos
 The position of the connected spheres.
 
unsigned int m_iNumDisks
 The number of disks connected.
 
double * m_adDiskD
 The diameter of the connected disks.
 
double * m_adDiskThickness
 The thickness of the connected disks.
 
double * m_adDiskMass
 The mass of the connected disks.
 
double * m_adDiskPos
 The position of the connected disks.
 
double m_dAddedWeightInWater
 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 CCableElDynStiff
double m_dMaxStep
 The maximum step of the integration routine.
 
double m_dMeanTension
 The mean tension of the cable element.
 
double m_dEAdaptationPeriod
 The time constant of the adaptation of the mean tension.
 
double m_dStepSafetyFactor
 The safety factor when calculating the Young modulus of the element.
 
- Public Attributes inherited from CCableElBasics
unsigned long m_iID
 The ID of the element.
 
std::string m_sCableName
 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_dRho
 The density of the element material.
 
double m_dAddedWeightInWater
 The weight in water added to the element.
 
double m_dTangentialFrictionCoeff
 The tangential drag coefficient of the cable element.
 
double m_dNormalDragCoeff
 The normal drag coefficient of the cable element.
 
double m_dRhoWater
 The density of the surrounding water.
 
double m_dMinLength
 The minimum length of the element.
 
double m_dMaxTension
 The maximum tension in the element.
 
double m_dDampingRatio
 The relative damping ratio of the cable.
 
double m_dEA
 The linear stiffness of the element.
 
double m_dA
 The cross sectional area of the cable.
 
double m_adWeightInWater [2]
 The weight in water distributed to each node.
 
double m_adMassInWater [2]
 The mass in water distributed to each node.
 
double m_adWeightInWaterPerMeter [2]
 The weight in water distributed to each node, per meter cable.
 
double m_adMassInWaterPerMeter [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 CCableElBasics
void CalcFoundation (const double adPosA[3], const double adVelA[3], const double adPosB[3], const double adVelB[3], const double adFluidVel[3], const double dRhoWater)
 
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. More...
 
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_dDragCoeffSphere
 The drag coefficient of a sphere.
 
double m_dNormalDragCoeffDisk
 The normal drag coefficient of a disk.
 
double m_dTangentialFrictionCoeffDisk
 The normal drag coefficient of a disk.
 
- Protected Attributes inherited from CCableElDynStiff
double ma_dEps
 The stretching of the cable.
 
double m_dEFactor
 The factor multiplied by the Young modulus.
 
double m_dMeanTensionDamp
 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 CCableElBasics
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 CNetCableElement::CalcMassAndWeight ( )
virtual

Reimplemented from CCableElBasics.

◆ CheckAndInitialize()

bool CNetCableElement::CheckAndInitialize ( )
virtual

Reimplemented from CCableElDynStiff.

◆ SetConstants()

void CNetCableElement::SetConstants ( )
virtual

Reimplemented from CCableElBasics.


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