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

Public Member Functions

 CablePendulum (const std::string &simObjectName, ISimObjectCreator *const creator)
 
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)
 
void PreOdeFcn (double T, const double *X, IStateUpdater *updater) override
 Rebuilds the ball's wake when due and takes the other objects' wakes at the ball.
 
bool HasJacobians () const override
 
void OdeJacobian (double T, const double *X, double *J, int nStates) override
 
int GetJacobianSparsity (int nStates, int *rowPtr, int *colIdx) override
 

Protected Member Functions

void SetOutputPortValues (const double T, const double *const X) const
 
const double * MidpointPosition (const double T, const double *const X)
 
const double * BallPosition (const double T, const double *const X)
 
const double * BallVelocity (const double T, const double *const X)
 
const double * BallWaterVelocity (const double T, const double *const X)
 Output port BallWaterVelocity [m/s], NED.
 
void ballWaterVelocity (const double T, const double *X, double velocity[3]) const
 The water velocity at the ball: the BodyWake's, without the ball's own wake.
 
void addDragJacobian (const double T, const double *pk, const double *pl, const double *vk, double dF_dpk[9], double dF_dpl[9], double dF_dvk[9]) const
 Adds the derivatives of Drag(k,l), the force on node k, to the blocks SetCableSegmentStructuralJacobian filled.
 
Eigen::Vector3d Drag (int k, int l, const double T, const double *const X) const
 
Eigen::Vector3d Spring (int k, int l, const double T, const double *const X) const
 
Eigen::Vector3d Damp (int k, int l, const double T, const double *const X) const
 
const double * SuspensionForce (const double T, const double *const X)
 
const double * CableOnBallForce (const double T, const double *const X)
 

Protected Attributes

ICommonComputation * m_SetOutputPortValues
 
ISignalPort * m_SuspensionPos
 
ISignalPort * m_SuspensionVel
 
environment::EnvironmentProvider * Environment
 
std::vector< int > m_PositionIndex
 
std::vector< int > m_VelocityIndex
 
int m_BallPositionIndex
 
int m_BallVelocityIndex
 
int m_stateBase = 0
 Global index of this object's first state; cached in the constructor.
 
int m_NumPoints
 
double m_MidpointPosition [3]
 
double m_BallPosition [3]
 
double m_BallVelocity [3]
 
double m_SuspensionForce [3]
 
double m_CableOnBallForce [3]
 
double m_BallWaterVelocity [3] = {0.0, 0.0, 0.0}
 
environment::sphere_hydro::Sphere m_ballShape
 ρ, D = 2 R and C_d of the ball's drag.
 
std::optional< environment::sphere_hydro::SphereCaster > m_ballCaster
 The ball on its states, for the wake.
 
environment::wake::BodyWakeSettings m_wakeSettings
 The wake parameters.
 
std::unique_ptr< environment::wake::BodyWake > m_ballWake
 The wake the ball casts and receives, from FinalSetup.
 
double m_BallMass
 
double m_BallRadius
 
double m_RhoWater
 
double m_BallRho
 
double m_ElementMass
 
double m_ElementLength0
 
double m_SpringCoef
 
double m_DamperCoef
 
double m_GravYancy
 
double m_Mass
 
double m_Length
 
double m_Diameter
 
double m_RhoCable
 
double m_Modulus
 

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