FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CableElDynStiff.h
1
10
11#ifndef CCableElDynStiff_H
12#define CCableElDynStiff_H
13
14// Includes
15// #include <string>
16#include "cable/subroutines/CableElBasics.h"
17
18
19// #define USE_OLD_MEAN_TENSION_CALC
20#define CCableElDynStiff_USE_PID
21#ifdef CCableElDynStiff_USE_PID
22# include "sfh/filters/PID.h"
23#endif
24
25#ifdef FH_VISUALIZATION
26# include "Ogre.h"
27
28# include "sfh/ogre/CDynamicLines.h"
29
30#endif
31
32// Class definition
34{
35public:
38
41
43 virtual bool CheckAndInitialize();
44
46 virtual void UpdateLength(double newLength, double step, bool forceUpdate = false);
47
49 void UpdateMeanTension(double step);
50
62 void UpdateMeanTensionAt(const double adPosA[3], const double adPosB[3], double step);
63
65 double GetEFactor() const { return m_eFactor; }
66
67 double m_maxStep;
71 // protected: HACK kga
73 virtual void AddStructuralForces(double adForceA[3], double adForceB[3]);
74
75protected:
76 double ma_dEps;
77 double m_eFactor;
79 // double m_meanTensionProp; ///< The mean tension of the cable element.
80
81 double ma_adMeanTensionForceA[3];
82 double ma_dAdaptationDamping;
83
84#ifdef CCableElDynStiff_USE_PID
85 sfh::filters::PID m_MeanTensionController;
86#endif
87};
88
89
90#endif
Definition CableElBasics.h:34
Definition CableElDynStiff.h:34
double m_meanTensionDamp
The damping of the development of the mean tension.
Definition CableElDynStiff.h:78
double m_eAdaptationPeriod
The time constant of the adaptation of the mean tension.
Definition CableElDynStiff.h:69
double m_stepSafetyFactor
The safety factor when calculating the Young modulus of the element.
Definition CableElDynStiff.h:70
double GetEFactor() const
Returns the current stiffness reduction factor (1 = full stiffness, <1 = reduced for numerical stabil...
Definition CableElDynStiff.h:65
void UpdateMeanTensionAt(const double adPosA[3], const double adPosB[3], double step)
double ma_dEps
The stretching of the cable.
Definition CableElDynStiff.h:76
~CableElDynStiff()
The destructor.
double m_maxStep
The maximum step of the integration routine.
Definition CableElDynStiff.h:67
virtual bool CheckAndInitialize()
Does the initialization and checking to make sure that the element is ready for simulation.
double m_eFactor
The factor multiplied by the Young modulus.
Definition CableElDynStiff.h:77
CableElDynStiff()
The constructor.
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.
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 m_meanTension
The mean tension of the cable element.
Definition CableElDynStiff.h:68