Marine systems simulation
Loading...
Searching...
No Matches
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.
 
void CalcMassAndWeight ()
 Calculates the mass and weight of the element in water.
 
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.
 
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 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.
 
- 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 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)
 
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: