FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
RbCable::Ring Class Reference
+ Inheritance diagram for RbCable::Ring:
+ Collaboration diagram for RbCable::Ring:

Classes

struct  element
 

Public Member Functions

 Ring (const std::string &simObjectName, ISimObjectCreator *const creator)
 reads parameters, registers states, output and intput ports.
 
void OdeFcn (const double T, const double *const X, double *const XDot) const
 
void InitialConditionSetup (const double T, const double *const currentIC, double *const updatedIC, ISimObjectCreator *const creator)
 
void FinalSetup (const double T, const double *const X, ISimObjectCreator *const creator) override
 Takes the Environment (MARE-0315).
 
void PreOdeFcn (const double T, const double *const X) override
 Takes the other objects' wakes at the element centres, or with the Gauss-point drag at the joints, for the step (MARE-0223, MARE-0396).
 
virtual void GetExternalForces (const double T, const double *const X, double *m_extlForce, int index)
 get the external forces at element 'index'. Should be overridden by inheriting classes to get forces from their specific connectors
 
void calculations (const double T, const double *const X)
 
void calculationsCommon (const double T, const double *const X) const
 
void BuildJoints (const double *const X)
 Finds the joints of the closed loop of elements from the state; the axis of an element is its quaternion's, as in calculations.
 
virtual const double * outConnectorPos (const double T, const double *const X, const int index)
 
virtual const double * outConnectorVel (const double T, const double *const X, const int index)
 

Protected Types

typedef Eigen::Matrix< double, 3, 3 > mat3
 
typedef Eigen::Matrix< double, 3, 1 > vec3
 

Protected Attributes

int m_numElements
 
double m_totalLength
 
double m_radius
 
double m_weight
 
double m_length
 
double m_mass
 
double m_Ixy
 
double m_Iz
 
double m_alphaN
 
double m_betaN
 
double m_epsilonN
 
double m_alphaM
 
double m_betaM
 
double m_epsilonM
 
double m_alphaT
 
double m_betaT
 
double m_epsilonT
 
double m_centrePosInit [3]
 Parameter for describing the initial position of the centre of the ring (not an IC since there is no corresponding state)
 
double m_rho
 
double m_rhoWater
 
PrintDuringExec * m_print = nullptr
 The shared printer for run errors; null if the creator has none, as in a unit test.
 
environment::wake::ElementFlowInteraction m_flow
 The flow at the element centres, the other objects' wakes taken per step (MARE-0223); the Environment, from FinalSetup.
 
bool m_gaussPointDrag = true
 Gauss-point drag with the water at the joints (MARE-0396).
 
wet_cylinder_water::ChainJoints m_joints
 The joints of the closed loop of elements, and the water at them; buffers kept from call to call.
 
double m_Ct
 
double m_Cn
 
double m_buoyFactor
 
bool m_additionalConnectors
 flag for additional connectors along cable
 
int m_numConnectors
 number of additional connectors, if any
 
int m_ElementsPerConnector
 number of elements between connectors
 
ISignalPort ** m_iIForce
 Array of indices to connector forces in input vector.
 
double m_extlForce [3]
 Array for holding current value of external force at a given node.
 
double ** m_aadConnectorPos
 Local array for storing output positions.
 
double ** m_aadConnectorVel
 Local array for storing output velocities.
 
double m_bending_epsilon [3]
 
element * m_el
 
ICommonComputation * m_calcDynamics
 
Eigen::Matrix< double, Eigen::Dynamic, 1 > m_lambda
 
Eigen::Matrix< double, Eigen::Dynamic, 1 > m_F_MDotV
 
double m_forceA [3]
 
double m_forceB [3]
 

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