Marine systems simulation
System::SimpleFloatingCollar Class Reference
+ Inheritance diagram for System::SimpleFloatingCollar:
+ Collaboration diagram for System::SimpleFloatingCollar:

Classes

struct  forceCoefficients
 NEW. More...
 

Public Member Functions

 SimpleFloatingCollar (string simobjectname, ISimObjectCreator *creator)
 The constructor sets the pointer to the output object and the parser object.
 
 ~SimpleFloatingCollar ()
 The destructor cleans up.
 
void OdeFcn (const double T, const double *const X, double *const XDot, const bool IsMajorTimeStep)
 
void InitialConditionSetup (const double T, const double *const CurrentIC, double *const UpdatedIC, ISimObjectCreator *const Creator)
 Initializes the collar elements in a ring.
 
virtual void FinalSetup (const double T, const double *const X, ISimObjectCreator *const pCreator)
 Final setup.
 
const double * GetElementPosition (const double T, const double *const X, int iElem)
 Get Functions.
 
const double * GetElementVelocity (const double T, const double *const X, int iElem)
 NEW.
 
const double * NetPosition (const double T, const double *const X, int i)
 NEW. More...
 
const double * NetVelocity (const double T, const double *const X, int i)
 
const double * BridlePosition (const double T, const double *const X, int i)
 
const double * BridleVelocity (const double T, const double *const X, int i)
 
const double * ChainPosition (const double T, const double *const X, int i)
 
const double * ChainVelocity (const double T, const double *const X, int i)
 
Eigen::Matrix< double, 3, 1 > extElementPosition (const double T, const double *const X, int iElem, double extL)
 

Public Attributes

struct System::SimpleFloatingCollar::forceCoefficients m_forceCoeffs
 

Protected Member Functions

void GetAccelerometerPositions (const double T, const double *X, ISignalPort **posIn, double *pos, int numPos)
 Array containg element indices for position of accelorometers.
 
double getSplineZPos (double beta)
 Function who gets accelorometer displacaments.
 
void calcSplineCoefficients (double *vertDispl)
 Spline function to estimate vertical position of ring elements.
 
void CalContactForce (const double T, const double *const X)
 Contact forces.
 
virtual const double * OutContactPosition (const double T, const double *const X)
 Calculate contact forces.
 
virtual const double * OutContactForce (const double T, const double *const X)
 Output contact position.
 
void CalClosestDistnace (const double T, const double *const X)
 Distance to closest point.
 
virtual const double * OutClosestPosition (const double T, const double *const X)
 Calculate closest distance.
 
virtual const double * OutClosestDistnace (const double T, const double *const X)
 Output closest position.
 
void GetExternalForces (const double T, const double *X, ISignalPort **forcesIn, double *forces, int numForces)
 Get function.
 

Protected Attributes

int m_Num
 
double m_Beta
 number of discrete elements in the collar
 
double m_elemRad
 main frequency coefficient
 
int m_numAccMeas
 Accelerometer data.
 
ISignalPort ** m_AccDispIn
 Number of acceloremters feeding data.
 
double * m_AccDisp
 Signal port given displacements derived from accelorometer data.
 
double * m_AccElemRad
 Array containing displacements received through the signal port.
 
int * m_AccElemIndex
 Array containing positions of displacements.
 
double * m_AccElemRadPer
 Function for obtaining position on ring as a function of local angle beta and current calculated spline.
 
double m_TLast
 Array with positions of measurements in radians. Last element equals last + 2*pi. size m_nMeasPos + 1.
 
double m_dTInt
 
double m_dTUpdt
 
double m_velZ_max
 
double m_W_lastRef
 
double * m_spline_a
 Function calculates Matrix A and B with periodic buondary condition.
 
double * m_spline_b
 Array containing coefficients for calculation of cubic spline for vertical displacement.
 
double * m_spline_c
 Array containing coefficients for calculation of cubic spline for vertical displacement.
 
double * m_spline_d
 Array containing coefficients for calculation of cubic spline for vertical displacement.
 
double ** m_spline_A
 Array containing coefficients for calculation of cubic spline for vertical displacement.
 
double * m_spline_B
 Arrays containing parameters for cubic spline for vertical displacement.
 
double * m_spline_h
 Arrays containing parameters for cubic spline for vertical displacement.
 
double * m_spline_m
 Arrays containing parameters for cubic spline for vertical displacement.
 
Eigen::MatrixXd m_spl_A
 Arrays containing parameters for cubic spline for vertical displacement.
 
Eigen::MatrixXd m_spl_B
 
Eigen::MatrixXd m_spl_m
 
int m_NumConPoint
 Spline function variables end. More...
 
Contact::ContactObject m_Vessel
 Number of discretized points for contact detection.
 
double m_UpdateDT
 External object involved in contact.
 
double m_UpdateNT
 Update interval.
 
double m_ContactPos [3]
 Time for next update.
 
int m_ContactElemIndex
 Position at contact.
 
double m_ContactElemForce [3]
 Contact element index.
 
double m_ContactForce [6]
 Contact element force.
 
int m_NumDisPoint
 
double m_ClosestPos [3]
 Number of discretized points for distance detection.
 
double m_ClosestDis
 Position of closest point.
 
int m_numBridles
 Distance. More...
 
int * m_BridleElemIndex
 Number of bridle connectors.
 
double * m_BridleForces
 Index of elements connected to a bridle.
 
double * m_BridleEleRad
 Bridle forces of an element connected to a bridle.
 
double * m_BridlePos
 
double * m_BridleVel
 
int m_numNetConnectors
 
int * m_NetElemIndex
 Number of net connectors.
 
double * m_NetForces
 Index of elements connected to the net.
 
double * m_NetEleRad
 Net forces of an element connected to the net.
 
double * m_NetPos
 
double * m_NetVel
 
int m_numChains
 
int * m_ChainElemIndex
 Number of chain connectors.
 
double * m_ChainForces
 Index of elements connected to a chain.
 
double * m_ChainEleRad
 Chain forces of an element connected to a chain.
 
double * m_ChainPos
 
double * m_ChainVel
 
double * m_elemPos
 
double * m_elemVel
 Element positions.
 
double m_heaveRAO
 Element velocities.
 
double m_heaveMaxDelta
 
double * m_heavePos
 
double * m_heaveVel
 
CoRiBoDynamics::ConstraintSolverm_ConstraintSolver
 NEW.
 
CoRiBoDynamics::JointConstraintm_ConstraintSet
 Constraint solver.
 
CoRiBoDynamics::Structures::RingStructurem_RingStructure
 
ISignalPort ** m_BridleForcesIn
 Ring structure.
 
ISignalPort ** m_NetForcesIn
 Signal port containing forces from bridle connectors.
 
ISignalPort ** m_ChainForcesIn
 Signal port containing forces from net connections.
 
double m_CollarRingDiameter
 Signal port containing forces from chain connectors.
 
double m_CollarTubeDiameter
 Diameter of floating collar centre to centre (c-c) of the pipe.
 
double m_CollarTubeThickness
 Diamter of the pipe comprising the floating collar.
 
double m_CollarTubeUnitMass
 Wall thickness of the material comprising the floating collar tube.
 
bool m_isDoubleTubeCollar
 Tube mass per metre [kg/m].
 
double m_CollarTubeDistance
 True if floating collar consists of two tubes.
 
double m_InitPos [3]
 Distance (centre-centre) between the to concetric pipes comprinsing a standard floating collar.
 
double m_doubleSwitch
 Initial position of the center of the floating collar in (x,y,z) coordinates.
 
double m_multiply
 Switch for when single (equals 0.0) and double (equals 1.0) pipe floater is used.
 
double m_eModulus
 Multiplier for floating collar comprised of two concentric pipes (tubes). Equals 1.0 for one pipe floater, and 2.0 for two pipe floater.
 
double m_gModulus
 Elastic modulus.
 
double m_damping
 Elastic modulus.
 
double m_Cd_t
 Structural damping.
 
double m_Cd_n
 Drag coefficient. Tangential drag.
 
double m_Ca [3]
 Drag coefficient. Normal drag.
 
double m_Cb [3]
 Added mass coefficient array for Mass matrix and diffraction force. 1.0 is equal to mass of displaced water equal to 0.5*rhowater*pi*elemeradius^2*elemlength.
 
double m_rhoWater
 Potential damping (wave damping) coefficient array for diffraction force. 1.0 is equal to mass of displaced water equal to 0.5*rhowater*pi*elemeradius^2*elemlength.
 
double m_g
 Density of water. It kind of depends.
 
CEnvironmentm_Environment
 Acceleration of gravity. Not usually something you want to meddle with.
 

Member Function Documentation

◆ NetPosition()

const double * System::SimpleFloatingCollar::NetPosition ( const double  T,
const double *const  X,
int  i 
)

Output functions

Member Data Documentation

◆ m_numBridles

int System::SimpleFloatingCollar::m_numBridles
protected

Output closest distance

◆ m_NumConPoint

int System::SimpleFloatingCollar::m_NumConPoint
protected

Contact

◆ m_NumDisPoint

int System::SimpleFloatingCollar::m_NumDisPoint
protected

Output contact forces Contact Distance


The documentation for this class was generated from the following file: