Marine systems simulation
CNetCableElementSpec.h
1
10
11#ifndef CNetCableElementSpec_H
12#define CNetCableElementSpec_H
13#include <string>
14#include <vector>
15
16//Class definition
18{
19public:
20 enum NodePosition
21 {
22 NODE_ON_EDGE=1001
23 };
24
27
30
33
35 bool Divide(int aiNodes[2], int iNewNode, int iNewElementID, CNetCableElementSpec** pSNewCable, double dDistance=0.5);
36
37 void DeleteSpheresAndDisks();
38
39 void AddSpheres(double* adD, double* adMass, double* adPos, std::vector<std::string> VsSphereMaterial, int iNum);
40 void AddDisks(double* adD, double* adThickness, double* adMass, double* adPos, std::vector<std::string> VsDiskMaterial, int iNum);
41 NodePosition NodesDefineEdge( int aiNodes[2]);
42
44 int m_iFromNodes[2];
45 int m_iID;
46 std::string m_sCableName;
47 int m_aiConn[2];
51 double* m_adSphereD;
53 double* m_adSpherePos;
55 double* m_adDiskD;
57 double* m_adDiskMass;
58 double* m_adDiskPos;
60 std::vector<std::string> m_VsDiskMeshName;
61 std::vector<std::string> m_VsSphereMeshName;
62
63
64 double m_dL0;
65 double m_dD;
66 double m_dE;
67 double m_dRho;
68 double m_dMinLength;
70 // double m_dDampingRatio; ///< The relative damping ratio of the cable.
71 double m_dMaxStep;
75
76 double m_dTangentialFrictionCoeff;
77 double m_dNormalDragCoeff;
78
79#ifdef FH_VISUALIZATION
80 std::string m_sMaterialName;
81 int m_iCableFaces;
82 double m_dDrawScale;
83#endif
84#ifdef FH_VISUALIZATION
85#endif
86
87protected:
88
89 // Constants
93
94
95};
96
97
98#endif
Class containing a cable element object, allowing for disks and spheres to be connected.
Definition: CNetCableElementSpec.h:18
double * m_adSpherePos
The position of the connected spheres.
Definition: CNetCableElementSpec.h:53
double m_dStepSafetyFactor
The safety factor when calculating the Young modulus of the element.
Definition: CNetCableElementSpec.h:74
CNetCableElementSpec(const CNetCableElementSpec *pOld)
The copy constructor.
double m_dNormalDragCoeffDisk
The normal drag coefficient of a disk.
Definition: CNetCableElementSpec.h:91
double m_dL0
The relaxed length of the element.
Definition: CNetCableElementSpec.h:64
double m_dMinLength
The minimum length of the element.
Definition: CNetCableElementSpec.h:68
double m_dMaxTension
The maximum tension in the element.
Definition: CNetCableElementSpec.h:69
double * m_adSphereMass
The mass of the connected spheres.
Definition: CNetCableElementSpec.h:52
double * m_adSphereD
The diameter of the connected spheres.
Definition: CNetCableElementSpec.h:51
double m_dMaxStep
The maximum step of the integration routine.
Definition: CNetCableElementSpec.h:71
double m_dD
The diameter of the element.
Definition: CNetCableElementSpec.h:65
int m_iNumDisks
The number of disks connected.
Definition: CNetCableElementSpec.h:54
double m_dRho
The density of the element material.
Definition: CNetCableElementSpec.h:67
double m_dNodeOffset
The offset between the original nodes of the added node of this cable.
Definition: CNetCableElementSpec.h:43
bool Divide(int aiNodes[2], int iNewNode, int iNewElementID, CNetCableElementSpec **pSNewCable, double dDistance=0.5)
Divides the element in two.
double m_dRefineFactor
The factor telling how much mesh refinement is desired for this element.
Definition: CNetCableElementSpec.h:48
double m_dE
The Young modulus of the element.
Definition: CNetCableElementSpec.h:66
double m_dTangentialFrictionCoeffDisk
The normal drag coefficient of a disk.
Definition: CNetCableElementSpec.h:92
int m_iNumSpheres
The number of spheres connected.
Definition: CNetCableElementSpec.h:50
double m_dAddedWeightInWater
The weight in water added to the element.
Definition: CNetCableElementSpec.h:59
CNetCableElementSpec()
The constructor.
double * m_adDiskMass
The mass of the connected disks.
Definition: CNetCableElementSpec.h:57
int m_aiConn[2]
The node numbers that the element is connected to.
Definition: CNetCableElementSpec.h:47
double * m_adDiskThickness
The thickness of the connected disks.
Definition: CNetCableElementSpec.h:56
int m_iFoldingPoints
The number of knuckle points on the cable.
Definition: CNetCableElementSpec.h:49
double * m_adDiskPos
The position of the connected disks.
Definition: CNetCableElementSpec.h:58
int m_iFromNodes[2]
The nodes which this cable is constructed by dividing.
Definition: CNetCableElementSpec.h:44
double * m_adDiskD
The diameter of the connected disks.
Definition: CNetCableElementSpec.h:55
double m_dDragCoeffSphere
The drag coefficient of a sphere.
Definition: CNetCableElementSpec.h:90
double m_dMeanTension
The mean tension of the cable element.
Definition: CNetCableElementSpec.h:72
std::string m_sCableName
The name of the parent cable.
Definition: CNetCableElementSpec.h:46
int m_iID
The ID of the element.
Definition: CNetCableElementSpec.h:45
std::vector< std::string > m_VsDiskMeshName
The names of the materials of the attached disks.
Definition: CNetCableElementSpec.h:60
~CNetCableElementSpec()
The destructor.
std::vector< std::string > m_VsSphereMeshName
The names of the materials of the attached spheres.
Definition: CNetCableElementSpec.h:61
double m_dEAdaptationPeriod
The time constant of the adaptation of the mean tension.
Definition: CNetCableElementSpec.h:73