Marine systems simulation
CFloatingCollar.h
1
2
3#ifndef C_FLOATING_COLLAR_H
4#define C_FLOATING_COLLAR_H
5#include <SimObject.h>
6#include <CEnvironment.h>
7#include "sfh/constants.h"
8#include <sfh/text.h>
9#include <stdio.h>
10#include <math.h>
11#include <iostream>
12#include <vector>
13
14#include <cmath>
15#include <complex>
16#include <Eigen/Dense>
17
18#include <environment/DeepSeaGravityWaves.h>
19
20#include "CContact.h"
21
22using namespace std;
23using std::vector;
24
25
26namespace Netcage {
27
133class CFloatingCollar : public SimObject
134{
135public:
151 CFloatingCollar(const string& simObjectName, ISimObjectCreator* const creator);
152 virtual void FinalSetup(const double T, const double* const X, ISimObjectCreator* const pCreator);
153 virtual ~CFloatingCollar();
154
166 void OdeFcn(const double T , const double* const X, double* const XDot, const bool IsMajorTimeStep);
167
168
169#ifdef FH_VISUALIZATION
178 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
179
188 void RenderUpdate(const double T, const double* const X);
189#endif
200 const virtual double* NetConnectPos (const double T, const double* const X, int iNetConnect);
211 const virtual double* NetConnectVel (const double T, const double* const X, int iNetConnect);
222 const virtual double* BRConnectPos (const double T, const double* const X, int iBRConn);
233 const virtual double* BRConnectVel (const double T, const double* const X, int iBRConn);
244 const virtual double* FastConnectPos (const double T, const double* const X, int iFastConn);
255 const virtual double* FastConnectVel (const double T, const double* const X, int iFastConn);
266 const virtual double* SkirtConnectPos (const double T, const double* const X, int iSkirtConn);
277 const virtual double* SkirtConnectVel (const double T, const double* const X, int iSkirtConn);
288 const virtual double* AddConnectPos (const double T, const double* const X, int iAddConn);
299 const virtual double* AddConnectVel (const double T, const double* const X, int iAddConn);
300
302 const virtual double* getVelLocalAHRS(const double T, const double* const X, int iPos);
303 const virtual double* getPosLocalOriginAHRS(const double T, const double* const X, int iPos);
304 //
305 const virtual double* getVelGlobalAHRS(const double T, const double* const X, int iPos);
306 const virtual double* getPosGlobalAHRS(const double T, const double* const X, int iPos);
307 //
308 //const virtual double* getRotVelLocalAHRS(const double T, const double* const X, int iPos); /// Rotation velocity of point on floater in local coordinate system (beta,v,z) given by index iPos.
309 //const virtual double* getRotPosLocalAHRS(const double T, const double* const X, int iPos); /// Rotation position of point on floater in local coordinate system (beta,v,z) given by index iPos.
311
321 const virtual double* NetConnectTotalForce (const double T, const double* const X);
331 const virtual double* FastConnectTotalForce (const double T, const double* const X);
341 const virtual double* BRConnectTotalForce (const double T, const double* const X);
351 const virtual double* SkirtConnectTotalForce (const double T, const double* const X);
361 const virtual double* AddConnectTotalForce (const double T, const double* const X);
371 const virtual double* RBMxModalForcesFcn (const double T, const double* const X);
381 const virtual double* SurfElevCenter (const double T, const double* const X);
391 const virtual double* SurfElev (const double T, const double* const X);
401 const virtual double* PartVel (const double T, const double* const X);
411 const virtual double* RingElevCenter (const double T, const double* const X);
421 const virtual double* RingElev (const double T, const double* const X);
431 const virtual double* SigmarrFcn (const double T, const double* const X);
441 const virtual double* RelDispZ (const double T, const double* const X);
451 const virtual double* WaveInfo (const double T, const double* const X);
460 const virtual double* FloaterCenterPos (const double T, const double* const X);
461
462
463protected:
464 // ISignalPort* m_Force; /// Input port. The external force acting on the mass object
465 int m_PositionIndex;
468
470 vector<double> m_omg;
471 vector<double> m_zeta;
472 vector<double> m_waveDir;
473 vector<double> m_phaseAngle;
474 vector<double> m_waveNumber;
475
477 double m_waveInfo[3];
478
489 double m_totalNetForce[3];
491 double m_totalBRForce[3];
493 double m_totalAddForce[3];
494
496
497 ISignalPort ** m_NetConnectExtForce;
498 ISignalPort ** m_BRConnectExtForce;
499 ISignalPort ** m_FastConnectExtForce;
500 ISignalPort ** m_SkirtConnectExtForce;
501 ISignalPort ** m_AddConnectExtForce;
502
508
509 void NetConnectModalForces (const double T, const double* const X, int nMode /*, double** netConnectForce*/);
510 void BRConnectModalForces (const double T, const double* const X, int nMode);
511 void FastConnectModalForces (const double T, const double* const X, int nMode);
512 void SkirtConnectModalForces(const double T, const double* const X, int nMode);
513 void AddConnectModalForces (const double T, const double* const X, int nMode);
514 void TensionForcesPiecewiseConstant(const double T, const double* const X);
515 void CosineSineFcn(int m, int n, double beta0, double beta1, int segments, double* fcnValue);
516
517 void SectionPositions(const double* const X);
518
519 double ModalBouyancyForce(int iMode);
520
521 double m_surfElevCenter;
522 double m_surfElev;
523 double m_partVel[3];
525
526 double m_ringElev;
528
529 double m_sigmarr;
531
532 double m_relDispZ;
534
536
537 int m_nT; // Number of segements for Tension calculation.
538 double* m_T; // Tension forces. Piecewise constant.
539 double* m_TTheta; // Angles (position) for centroid of segment with constant tension.
540 double*** m_TCosCosInt; // Integral of cosine and sine for alle modes and segments with constant tension
541 double*** m_TSinSinInt; // Integral of cosine and sine for alle modes and segments with constant tension
542 double*** m_TCosSinInt; // Integral of cosine and sine for alle modes and segments with constant tension
543 double*** m_TSinCosInt; // Integral of cosine and sine for alle modes and segments with constant tension
544 typedef Eigen::Matrix<double, 2, 2> mat2;
545 typedef Eigen::Matrix<double, 2, 1> cvec2;
546 //typedef Eigen::Matrix<double, 3, 1> cvec3;
547
548
551 double* m_betaAHRS;
556 //double* m_rotVelLocalAHRS; /// Array with rotation velocity in global coordinate system (x,y,z) (For comparison with AHRS data)
557 //double* m_rotPosLocalAHRS; /// Array with rotation position in global coordinate system (x,y,z) (For comparison with AHRS data)
558
559 double RadialPositionOrigin(const double* const X, double beta);
560 double RadialVelocity(const double* const X, double beta);
562
565
567
568 double m_UpdateDT; // Update interval
569 double m_UpdateNT; // Time for next update
570 double m_ContactBeta;
571 double m_ContactPos[3];
572 double m_ContactForce[6];
574 void CalContactForce(const double T, const double* const X);
575 void CalContactModalForce(const double T, const double* const X, int nMode);
576 const virtual double* OutContactPosition(const double T, const double* const X);
577 const virtual double* OutContactForce(const double T, const double* const X);
579
580
581// private:
582 double m_mass2D;
583 double m_p;
584 double m_dNetPos;
585 double m_nPipes;
586 double m_c;
587 double m_bw;
588 double m_R;
589 double m_E;
590 double m_Ir;
591 double m_Iz;
592 double m_Im_z;
593 double m_tWall;
594 double m_DampFact;
596 double m_Ux;
597 double m_Uy;
598 double m_Udir;
599 double m_U;
600 double m_CD;
601 double m_CDt;
602 double m_F_Ux;
603 double m_g;
604 // double WaveNumber; ///Wave number regular wave
605 double m_RhoWater;
606 double m_initPos[3];
607
608
609 double kRadSpring;
610 double RadSpringOn;
612 double PosRadSpring[4];
615
616 double* m_b22;
617 double* m_b22_visc;
618 double* m_c22;
619 double** m_b33;
620 double* m_b33_visc;
621 double m_b66_visc;
622 double* m_c33;
623 double* m_Kn; // Integral value needed for calculation of each modal added mass.
624 double** m_a33;
625 double m_a22_lim;
626 double m_a22_Inf;
627 double m_a22_Unity;
637
638 double m_EIr;
639 double m_EIz;
640 // double PI; /// Pi.
641 double m_Axy;
643 double m_MassFactor;
644 double EXP_OMG_T_33_COS;
649 double ** m_Bessel;
650
651 int m_nNetConnect;
661
662 double m_mModal;
663 double** m_sectPos;
664 double m_NetForcesOn;
665 double m_NetForcesStart;
666 double m_modMassOn;
667 double m_yawCorrOn;
668
669 double m_CurrSurfVel[3];
670 double m_posRingCent[3];
671
672 double SectionPos(const double* const X, const double beta, const int iDOF, const double offset);
673 void BesselFunc(double k, double R, int n, int i, int N);
674 void KnFunc(int n, int N);
675 void AddMass33Fcn(double p, double c, double R, double Kn, int n);
676 void AddMass22Fcn(double p, double c);
677 double TrapezeInt(double* fx, double* x, const int nElem, const int loop, const double xLoop);
678 void FloaterSectPos(const double* const X, double beta, double radOffset, double* pos);
679 void FloaterSectVel(const double* const X, double beta, double* vel);
680
682 double StruveFunc(int n, double z);
683 double KnFunc2(int modenumber);
684 double* m_a33f, m_b33f;
685 std::complex<double> CnFunc(int modenumber, double wavenumber);
686 void RadiationForcesHeave(int modenumber, double wavenumber, int waveindex);
687// void radiationForces();
688
689private:
690
691#ifdef FH_VISUALIZATION
692 Ogre::SceneNode* m_RenderNode;
693 Ogre::SceneNode** m_ManualObjectNodes;
694 double m_Radius;
695 string m_Material;
696 double m_Color[3];
697#endif
698};
699}
700#endif
Definition: CEnvironment.h:10
Definition: CContact.h:108
Definition: CFloatingCollar.h:134
double kRadSpring
Initial position of floater in (x,y,eta6). x-ccord., y-coord. and rotaion (yaw) angle.
Definition: CFloatingCollar.h:609
int m_nPortsAHRS
RACE.
Definition: CFloatingCollar.h:550
double RadialVelocity(const double *const X, double beta)
Calculates radial displacement (positive inwards/toward center of floater).
double m_totalAddForce[3]
Total force (x,y,z) subjected in floater from permanent skirt.
Definition: CFloatingCollar.h:493
double m_BRConnectModalForce[5]
Modal force from net connections.
Definition: CFloatingCollar.h:504
double PosRadSpring[4]
Coupling between horizontal and vertical displacement in terms of taking horizontal rigid body motion...
Definition: CFloatingCollar.h:612
double m_Im_z
2nd area moment of the floater section for bending around the z-axis
Definition: CFloatingCollar.h:592
double m_a22_lim
2D modal added mass for the floater in heave (z-direction)
Definition: CFloatingCollar.h:625
double m_totalFastForce[3]
Total force (x,y,z) subjected on floater from the net.
Definition: CFloatingCollar.h:490
virtual const double * SkirtConnectPos(const double T, const double *const X, int iSkirtConn)
Output port. Returns position of indexed skirt connection point.
double m_EIz
Bending stiffness of floater section for bending around the horizontal r-axis.
Definition: CFloatingCollar.h:639
virtual const double * BRConnectVel(const double T, const double *const X, int iBRConn)
Output port. Returns velocity of indexed bottom ring connection point.
double m_sigmarr
Position at which elevation/vertical displacement of floater is calculaleted.
Definition: CFloatingCollar.h:529
int m_NumConPoint
Contact.
Definition: CFloatingCollar.h:564
double EXP_OMG_T_22_COS
Time dependency of excitation forces in heave for mode sin(n*beta). Proportinal to sin(Omg*T).
Definition: CFloatingCollar.h:646
double * m_NetConnectVel
Position (x,y,z) of net connections to floater.
Definition: CFloatingCollar.h:480
double m_CD
Current velocity (absolute value)
Definition: CFloatingCollar.h:600
ISignalPort ** m_SkirtConnectExtForce
Signal port. Force on floater from anchor lines.
Definition: CFloatingCollar.h:500
int m_nBRConnect
number of net connections
Definition: CFloatingCollar.h:652
double TrapezeInt(double *fx, double *x, const int nElem, const int loop, const double xLoop)
2D added mass of the floater section in surge. Independent of mode shape. Strip theory applied.
double m_ringElevBeta
Ring elevation/vertical displacement at chosen position beta.
Definition: CFloatingCollar.h:527
ISignalPort ** m_BRConnectExtForce
Signal port. Force from net connections on floater.
Definition: CFloatingCollar.h:498
double m_E
Floater radius. From center of coordinate system to center between the two pipes.
Definition: CFloatingCollar.h:589
double m_EIr
Factor for strength of parallel axis theorem (2nd area moment/bending stiffness). Valid values range ...
Definition: CFloatingCollar.h:638
double m_Ux
Number of modes in the modal analysis.
Definition: CFloatingCollar.h:596
double m_Ir
Modulus of elasticity of floater material.
Definition: CFloatingCollar.h:590
double m_b66_visc
Linearized viscous damping (Morison drag) in heave.
Definition: CFloatingCollar.h:621
double m_posRingCent[3]
Current velocity in center of ring.
Definition: CFloatingCollar.h:670
double StruveFunc(int n, double z)
Return floater velocity (Ux,Uy,Uz) at position beta.
double m_UpdateDT
External object involved in contact.
Definition: CFloatingCollar.h:568
virtual const double * OutContactForce(const double T, const double *const X)
Output contact position.
double * m_BRConnectVel
Position (x,y,z) of bottom ring cables connected to floater.
Definition: CFloatingCollar.h:482
virtual const double * SigmarrFcn(const double T, const double *const X)
Output port. Returns bending stress around the local y-axis at position given by the parameter Bendin...
void NetConnectModalForces(const double T, const double *const X, int nMode)
Modal force from additional connections.
virtual const double * NetConnectVel(const double T, const double *const X, int iNetConnect)
Output port. Returns velocity of indexed net connection point.
double m_relDispZ
Position at which bending stress is calculated.
Definition: CFloatingCollar.h:532
virtual const double * AddConnectPos(const double T, const double *const X, int iAddConn)
Output port. Returns position of indexed additional connection point.
double m_RBMxModalForces[4]
Total force (x,y,z) subjected in floater from additional connectors.
Definition: CFloatingCollar.h:495
virtual const double * FastConnectPos(const double T, const double *const X, int iFastConn)
Output port. Returns position of indexed bridle connection point.
double * m_netConnectBeta
Number of additional connectors/fastening points on floating collar.
Definition: CFloatingCollar.h:656
double m_totalBRForce[3]
Total force (x,y,z) subjected on floater from fastening (bridle) connections.
Definition: CFloatingCollar.h:491
double m_initPos[3]
Sea water density.
Definition: CFloatingCollar.h:606
double m_DampFact
Pipe wall thickness.
Definition: CFloatingCollar.h:594
double * m_NetConnectPos
Water particle etc acceleration in (x,y,z)=(0,0,0)
Definition: CFloatingCollar.h:479
double KnFunc2(int modenumber)
The Struve function H_n(z)
double * m_BRConnectBeta
Position of net connections. Array containing angles in local coordinate system.
Definition: CFloatingCollar.h:657
double * m_b22
Displacement at attachment point for radial springs.
Definition: CFloatingCollar.h:616
int m_nSkirtConnect
Number of anchoring connections on the floater.
Definition: CFloatingCollar.h:654
virtual const double * getVelLocalAHRS(const double T, const double *const X, int iPos)
Output ports. For project: RACE - Anleggsintegritet.
int m_VelocityIndex
The index of the position state in the state array.
Definition: CFloatingCollar.h:466
double m_totalSkirtForce[3]
Total force (x,y,z) subjected on floater from bottom ring connections.
Definition: CFloatingCollar.h:492
virtual const double * FastConnectVel(const double T, const double *const X, int iFastConn)
Output port. Returns velocity of indexed bridle connection point.
double m_SkirtConnectModalForce[5]
Modal force from anchor-lines.
Definition: CFloatingCollar.h:506
ISignalPort ** m_AddConnectExtForce
Signal port. Force on floater from permanent skirt.
Definition: CFloatingCollar.h:501
double m_R
2D water plane area [m]
Definition: CFloatingCollar.h:588
double * m_b22_visc
Structural damping in sway.
Definition: CFloatingCollar.h:617
double * m_SkirtConnectVel
Position (x,y,z) of permanent skirt connections to floater.
Definition: CFloatingCollar.h:486
void FloaterSectVel(const double *const X, double beta, double *vel)
Return floater position (x,y,z) at position beta.
double * m_FastConnectPos
Velocity (Ux,Uy,Uz) of floater section where bottom ring cables/chains/ropes are connected.
Definition: CFloatingCollar.h:483
void AddMass33Fcn(double p, double c, double R, double Kn, int n)
Integral value needed for calculation of each modal added mass.
virtual const double * getVelGlobalAHRS(const double T, const double *const X, int iPos)
Position of point on floater related to floater origin in floater local coordinate system (beta,...
double DeltaL_RadSpring[4]
Modal spring force.
Definition: CFloatingCollar.h:614
bool m_nLinOn_b22
Boolean. True means viscous damping is activated.
Definition: CFloatingCollar.h:630
double m_U
Current direction in global coordinates.
Definition: CFloatingCollar.h:599
CFloatingCollar(const string &simObjectName, ISimObjectCreator *const creator)
Reads parameters, registers states, input/output ports and shared resources.
void OdeFcn(const double T, const double *const X, double *const XDot, const bool IsMajorTimeStep)
Computes object derivatives as a function of time, states and input ports.
vector< double > m_zeta
Wave frequency vector.
Definition: CFloatingCollar.h:471
virtual const double * SkirtConnectVel(const double T, const double *const X, int iSkirtConn)
Output port. Returns velocity of indexed skirt connection point.
vector< double > m_waveDir
Wave amplitude vector.
Definition: CFloatingCollar.h:472
double * m_SkirtConnectPos
Velocity (Ux,Uy,Uz) of floater section where anchor lines are connected.
Definition: CFloatingCollar.h:485
virtual const double * SkirtConnectTotalForce(const double T, const double *const X)
Output port. Returns total force transferred to collar from skirt connection points.
double * m_SkirtConnectBeta
Position of anchoring connections. Array containing angles in local coordinate system....
Definition: CFloatingCollar.h:659
int nWaveFreq
Time dependency of excitation forces for horizontal deformation for mode sin(n*beta)....
Definition: CFloatingCollar.h:648
virtual const double * getPosGlobalAHRS(const double T, const double *const X, int iPos)
Velocity of point on floater in global coordinate system (x,y,z) given by index iPos.
virtual const double * WaveInfo(const double T, const double *const X)
Output port. Returns dynamic pressure at the x,y,z origin (0,0,0)
int m_nAddConnect
Number of skirt (permanent) connections.
Definition: CFloatingCollar.h:655
double ModalSpringForce
Position of radial springs.
Definition: CFloatingCollar.h:613
double m_ContactModalForce[5]
Contact forces.
Definition: CFloatingCollar.h:573
double SectionPos(const double *const X, const double beta, const int iDOF, const double offset)
Center position of ring (only x-pos; y and z equals zero)
void KnFunc(int n, int N)
Value of Bessel functions of the first kind dependent on floater raduis, motion mode and wave number.
virtual const double * NetConnectPos(const double T, const double *const X, int iNetConnect)
Output port. Returns position of indexed net connection point.
double ** m_sectPos
2D modal floater ring mass.
Definition: CFloatingCollar.h:663
void AddMass22Fcn(double p, double c)
2D modal added mass of the floater section in heave. Dependent on motion mode number and geometry.
double * m_posLocalOriginAHRS
Array with velocity in local coordinate system (beta*R,v,z) (For comparison with AHRS data)
Definition: CFloatingCollar.h:553
int m_numElements
The index of the velocity state in the state array.
Definition: CFloatingCollar.h:467
virtual const double * SurfElev(const double T, const double *const X)
Output port. Returns surface elevation at position specified by input parameter.
double m_Uy
Current velocity in x-direction.
Definition: CFloatingCollar.h:597
virtual const double * BRConnectPos(const double T, const double *const X, int iBRConn)
Output port. Returns position of indexed bottom ring connection point.
int m_NModes
Damping. Level of critical damping for each mode.
Definition: CFloatingCollar.h:595
double * m_AddConnectVel
Position (x,y,z) of additional connections to floater.
Definition: CFloatingCollar.h:488
virtual const double * BRConnectTotalForce(const double T, const double *const X)
Output port. Returns total force transferred to collar from bottom ring connection points.
double * m_AddConnectPos
Velocity (Ux,Uy,Uz) of floater section where skirt are connected.
Definition: CFloatingCollar.h:487
virtual const double * OutContactPosition(const double T, const double *const X)
Calculate modal forces from contact.
double m_RhoWater
Acceleration of gravity.
Definition: CFloatingCollar.h:605
virtual const double * FloaterCenterPos(const double T, const double *const X)
Output port. Returns the centre position of the floating collar See PortDefs.h.
Contact::ContactObject m_Vessel
Number of discretized points for contact detection.
Definition: CFloatingCollar.h:566
double WaveCouplingOn
Radial spring on or off. 1=on, 0=off.
Definition: CFloatingCollar.h:611
double m_relDispZBeta
Relative vertical displacement between floater section center and surface at position beta.
Definition: CFloatingCollar.h:533
double m_a22_Inf
2D added mass for the floater in surge (x-direction)
Definition: CFloatingCollar.h:626
vector< double > m_omg
Pointer to DeepSeaGravityWaves -> CEnvironment.
Definition: CFloatingCollar.h:470
double m_Iz
2nd area moment of the floater section for bending around the horizontal r-axis
Definition: CFloatingCollar.h:591
void FloaterSectPos(const double *const X, double beta, double radOffset, double *pos)
Trapeze integration method.
virtual const double * FastConnectTotalForce(const double T, const double *const X)
Output port. Returns total force transferred to collar from bridle connection points.
double * m_velGlobalAHRS
Array with position in local coordinate system (beta*R,v,z) (For comparison with AHRS data)
Definition: CFloatingCollar.h:554
double * m_Kn
Stiffness, hydrostatic and structural.
Definition: CFloatingCollar.h:623
double m_p
2D (mass per meter) of the floater
Definition: CFloatingCollar.h:583
double m_NetConnectModalForce[5]
Signal port. Force on floater from additional connectors.
Definition: CFloatingCollar.h:503
bool m_nLinOn_b33
Boolean. True means non-linear damping is activated.
Definition: CFloatingCollar.h:631
double m_g
Modal water current force in x-direction.
Definition: CFloatingCollar.h:603
double m_tWall
Moment of inertia around the z-axis.
Definition: CFloatingCollar.h:593
double * m_FastConnectVel
Position (x,y,z) of anchor lines connections to floater.
Definition: CFloatingCollar.h:484
void CalContactModalForce(const double T, const double *const X, int nMode)
Calculate contact forces.
double m_ringElevCenter
Particle velocity in x=y=0 for verification purposes.
Definition: CFloatingCollar.h:524
double m_ringElev
Elevation of ring in center (beta = pi/2). Used to validate m_surfElevCenter.
Definition: CFloatingCollar.h:526
double m_Udir
Current velocity in y-direction.
Definition: CFloatingCollar.h:598
virtual const double * NetConnectTotalForce(const double T, const double *const X)
Position of point on floater in global coordinate system (x,y,z) given by index iPos.
double m_F_Ux
Tangential drag coefficient pipe.
Definition: CFloatingCollar.h:602
void CalContactForce(const double T, const double *const X)
Modal forces from contact.
virtual const double * RingElevCenter(const double T, const double *const X)
Output port. Returns floating collar elevation at the angular position pi/2.
bool m_viscOn_b33
Boolean. True means viscous damping is activated.
Definition: CFloatingCollar.h:629
virtual const double * AddConnectTotalForce(const double T, const double *const X)
Output port. Returns total force transferred to collar from additional connection points.
double * m_a33f
Sum of infinite series.
Definition: CFloatingCollar.h:684
double RadialPositionOrigin(const double *const X, double beta)
Array with position in global coordinate system (x,y,z) (For comparison with AHRS data)
int m_nT
Center position of floater.
Definition: CFloatingCollar.h:537
double EXP_OMG_T_33_SIN
Time dependency of excitation forces in heave for mode cos(n*beta). Proportinal to sin(Omg*T).
Definition: CFloatingCollar.h:645
vector< double > m_waveNumber
Wave phase angle vector.
Definition: CFloatingCollar.h:474
double m_nPipes
Radial offsett of net position. 0 equals center of inner pipe. Positive inwards.
Definition: CFloatingCollar.h:585
double m_CDt
Drag coefficient pipe.
Definition: CFloatingCollar.h:601
virtual const double * RingElev(const double T, const double *const X)
Output port. Returns floating collar elevation at the angular position given by the parameter RingEle...
double m_FastConnectModalForce[5]
Modal force from bottom ring.
Definition: CFloatingCollar.h:505
virtual const double * AddConnectVel(const double T, const double *const X, int iAddConn)
Output port. Returns velocity of indexed additional connection point.
double m_surfElev
Wave elevation in dynamic center of the floater.
Definition: CFloatingCollar.h:522
double m_bw
Floater pipe radius.
Definition: CFloatingCollar.h:587
double ** m_b33
Structural stiffness in sway.
Definition: CFloatingCollar.h:619
virtual const double * PartVel(const double T, const double *const X)
Output port. Returns particle velocity at the x,y origin (0,0)
double m_mass2D
Contact.
Definition: CFloatingCollar.h:582
double * m_FastConnectBeta
Position of bottom ring connections. Array containing angles in local coordinate system.
Definition: CFloatingCollar.h:658
double * m_b33_visc
Damping in heave (structural)
Definition: CFloatingCollar.h:620
double m_dNetPos
Half distance between center of the pipes.
Definition: CFloatingCollar.h:584
double m_floaterCenterPos[3]
Position at which relative motion is evaluated.
Definition: CFloatingCollar.h:535
ISignalPort ** m_NetConnectExtForce
Rigid body motion modal forces in x-direction. Bridle, Net, Bottom ring, Skirt.
Definition: CFloatingCollar.h:497
virtual const double * RelDispZ(const double T, const double *const X)
Output port. Returns relative vertical displacement between floating collar and surface at position g...
double m_waveInfo[3]
Vector containing wave numbers of all wave components.
Definition: CFloatingCollar.h:477
double m_partVel[3]
Surface elevation in x=y=0. For verification purposes.
Definition: CFloatingCollar.h:523
double m_ContactForce[6]
Position at contact.
Definition: CFloatingCollar.h:572
double RadSpringOn
Radial spring stiffness. Dummy point load to simulate mooring lines.
Definition: CFloatingCollar.h:610
double * m_AddConnectBeta
Position of skirt connections. Array containing angles in local coordinate system.
Definition: CFloatingCollar.h:660
double m_AddConnectModalForce[5]
Modal force from permanent skirt.
Definition: CFloatingCollar.h:507
vector< double > m_phaseAngle
Wave direction vector.
Definition: CFloatingCollar.h:473
double m_Axy
Bending stiffness of floater section for bending around the z-axis.
Definition: CFloatingCollar.h:641
double * m_velLocalAHRS
Position of observation ports in local coordinates (beta) (For comparison with AHRS data)
Definition: CFloatingCollar.h:552
void RadiationForcesHeave(int modenumber, double wavenumber, int waveindex)
Integral function needed for calculation of hydrodyn. radiation forces.
double m_b22_nLinOn
Viscous damping multiplying/amplifying factor.
Definition: CFloatingCollar.h:634
double m_Iz_parAxFact
Value set to 1 or 0. 1 Imply that non-linear damping is activated.
Definition: CFloatingCollar.h:636
virtual const double * RBMxModalForcesFcn(const double T, const double *const X)
Output port. Returns total force for rigid body motion in x direction.
double m_ForceFactor
Area of submerged pipe (section) per meter.
Definition: CFloatingCollar.h:642
double m_viscAmp_b33
Viscous damping multiplying/amplifying factor.
Definition: CFloatingCollar.h:633
double m_b33_nLinOn
Value set to 1 or 0. 1 Imply that non-linear damping is activated.
Definition: CFloatingCollar.h:635
double m_viscAmp_b22
Boolean. True means non-linear damping is activated.
Definition: CFloatingCollar.h:632
std::complex< double > CnFunc(int modenumber, double wavenumber)
Frequency dependent radiation coefficients in heave.
double * m_BRConnectPos
Velocity (u,v,w) of net connections between floater and net.
Definition: CFloatingCollar.h:481
CEnvironment * m_Environment
Number of elements in visualization.
Definition: CFloatingCollar.h:469
virtual const double * getPosLocalOriginAHRS(const double T, const double *const X, int iPos)
Velocity of point on floater in floater local coordinate system (beta,v,z) given by index iPos.
double m_ContactPos[3]
Position at contact (angle)
Definition: CFloatingCollar.h:571
double EXP_OMG_T_22_SIN
Time dependency of excitation forces for horizontal deformation for mode cos(n*beta)....
Definition: CFloatingCollar.h:647
double * m_c22
Linearized viscous damping (Morison drag) in sway.
Definition: CFloatingCollar.h:618
int m_nFastConnect
Number of bottom ring connections.
Definition: CFloatingCollar.h:653
ISignalPort ** m_FastConnectExtForce
Signal port. Force from bottom ring connections.
Definition: CFloatingCollar.h:499
double * m_c33
Viscous damping for yaw motin (rotation around z-axis)
Definition: CFloatingCollar.h:622
double m_mModal
Position of additional connections. Array containing angles in local coordinate system.
Definition: CFloatingCollar.h:662
double * m_posGlobalAHRS
Array with velocity in global coordinate system (x,y,z) (For comparison with AHRS data)
Definition: CFloatingCollar.h:555
bool m_viscOn_b22
2D added mass for the floater in surge (x-direction)
Definition: CFloatingCollar.h:628
double m_c
Equals 1 for one-pipe floater. Equals 2 for two-pipe floater. Default value 2.
Definition: CFloatingCollar.h:586
double m_a22_Unity
2D added mass for the floater in surge (x-direction)
Definition: CFloatingCollar.h:627
double m_sigmarrBeta
Bending stress around the local y-axis (r-axis) at a specified position.
Definition: CFloatingCollar.h:530
virtual const double * SurfElevCenter(const double T, const double *const X)
Output port. Returns surface elevation at the dynamic collar centre position.
double m_totalNetForce[3]
Velocity (Ux,Uy,Uz) of floater section where additional connectors are connected.
Definition: CFloatingCollar.h:489
Class modelling a Net cage.
Definition: CBottomRing.h:35