Marine systems simulation
CFlexibleBottomRing.h
1#pragma once
2
14
15#include <RMCable/CRing.h>
16#include <sfh/text.h>
17#include "sfh/math.h"
18#include <CEnvironment.h>
19//#include <environment/DeepSeaGravityWaves.h>
20
21
22using namespace RbCable;
23namespace Netcage {
146 public CRing
147{
148public:
149
161 CFlexibleBottomRing(const string& simObjectName, ISimObjectCreator* const creator);
163 virtual void FinalSetup(const double T, const double* const X, ISimObjectCreator* const pCreator);
164
173 void GetExternalForces(const double T, const double* const X, double* m_extlForce, int index);
174
185 const double* outNetConnectorPos(const double T, const double* const X, const int index);
186
197 const double* outNetConnectorVel(const double T, const double* const X, const int index);
198
209 const double* outChainConnectorPos(const double T, const double* const X, const int index);
210
221 const double* outChainConnectorVel(const double T, const double* const X, const int index);
222
223
224
225
226protected:
231
232 double m_Cd_t;
233 double m_Cd_n;
234 double m_Cm_diff;
235
236 ISignalPort** m_aIINetForce;
237 ISignalPort** m_aIIChainForce;
238
243
245};
246
247} // namespace
Definition: CEnvironment.h:10
SimObject representing a continuous bottom ring.
Definition: CFlexibleBottomRing.h:147
int m_ElementsPerChainConnector
number of elements between chain connector positions (must be an int; check perfomed in constructor)
Definition: CFlexibleBottomRing.h:230
double m_Cm_diff
Added mass coefficient for diffraction force.
Definition: CFlexibleBottomRing.h:234
ISignalPort ** m_aIIChainForce
Array of indices to chain connector forces.
Definition: CFlexibleBottomRing.h:237
ISignalPort ** m_aIINetForce
Array of indices to net connector forces.
Definition: CFlexibleBottomRing.h:236
CEnvironment * m_Environment
Pointer to DeepSeaGravityWaves, CEnvironment.
Definition: CFlexibleBottomRing.h:244
CFlexibleBottomRing(const string &simObjectName, ISimObjectCreator *const creator)
Reads parameters, registers states, input/output ports and shared resources.
double m_Cd_n
Drag coefficient. Normal drag.
Definition: CFlexibleBottomRing.h:233
double ** m_aadChainConnectorVel
Local array for storing output velocities.
Definition: CFlexibleBottomRing.h:242
const double * outNetConnectorPos(const double T, const double *const X, const int index)
Output port. Returns the position of indexed net connection point.
int m_numChainConnectors
number of connectors to the bottom ring chains
Definition: CFlexibleBottomRing.h:228
int m_numNetConnectors
number of connectors to the net structure
Definition: CFlexibleBottomRing.h:227
const double * outNetConnectorVel(const double T, const double *const X, const int index)
Output port. Returns the velocity of indexed net connection point.
double ** m_aadChainConnectorPos
Local array for storing output positions.
Definition: CFlexibleBottomRing.h:241
double ** m_aadNetConnectorVel
Local array for storing output velocities.
Definition: CFlexibleBottomRing.h:240
void GetExternalForces(const double T, const double *const X, double *m_extlForce, int index)
Returns the external forces at indexed element.
int m_ElementsPerNetConnector
number of elements between net connector positions (must be an int; check perfomed in constructor)
Definition: CFlexibleBottomRing.h:229
const double * outChainConnectorPos(const double T, const double *const X, const int index)
Output port. Returns the position of indexed chain connection point.
double ** m_aadNetConnectorPos
Local array for storing output positions.
Definition: CFlexibleBottomRing.h:239
const double * outChainConnectorVel(const double T, const double *const X, const int index)
Output port. Returns the velocity of indexed chain connection point.
double m_Cd_t
Drag coefficient. Tangential drag.
Definition: CFlexibleBottomRing.h:232
Definition: CRing.h:105
double m_extlForce[3]
Array for holding current value of external force at a given node.
Definition: CRing.h:171
Class modelling a Net cage.
Definition: CBottomRing.h:35