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

Public Member Functions

 CableBranchedAttractor (std::string simObjectName, ISimObjectCreator *creator)
 
 ~CableBranchedAttractor ()
 The destructor deletes dynamically allocated memory.
 
virtual void aFunction (std::string simObjectName, ISimObjectCreator *creator)
 
virtual void OdeFcn (const double dT, const double *const adX, double *const adXDot) const
 
virtual void FinalSetup (const double dT, const double *const adX, ISimObjectCreator *const creator)
 
bool HasJacobians () const override
 
- Public Member Functions inherited from CableBranched
 CableBranched (std::string simObjectName, ISimObjectCreator *creator)
 The constructor sets the pointer to the output object and the parser object.
 
 CableBranched (std::string simObjectName)
 
 ~CableBranched ()
 The destructor deletes dynamically allocated memory.
 
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
 
void FinalSetup (const double dT, const double *const adX, ISimObjectCreator *const creator)
 
void InitialConditionSetup (const double dT, const double *const adCurrentIC, double *const adUpdatedIC, ISimObjectCreator *const creator)
 

Protected Member Functions

virtual void CreateStates (ISimObjectCreator *creator)
 
void AllocateCableSections ()
 
void AddAttractorForces (const double *const adX) const
 
- Protected Member Functions inherited from CableBranched
void CalcOutput (const double dT, const double *const adX) const
 
void OutputExternalConnForces (double dT, const double *adX)
 
void GetPosAndVelPointer (int node, double dT, const double *const adX, const double **const padPos, const double **const padVel) const
 
const double * GetPosPointer (int node, double dT, const double *const adX) const
 
virtual void AddBottomForces (double dT, const double *const adX) const
 Adds the bottom forces to the main nodes.
 
virtual void CreateDataStructures ()
 
virtual void CreateInputports (ISimObjectCreator *creator)
 
virtual void CreateOutputports (ISimObjectCreator *creator)
 
void CheckNodeNumber (int nodeNumber, std::string nodeDescription, ISimObjectCreator *creator)
 Checks to see if a specified nodenumber is ok.
 
const double * ExternalForce (const double dT, const double *const adX, int i)
 
const double * ExternalTension (const double dT, const double *const adX, int i)
 
const double * SectionLength (const double dT, const double *const adX, int i)
 

Protected Attributes

std::vector< AttractorBase * > m_VAttractors
 
std::string m_attractorName
 The name of the attractor.
 
- Protected Attributes inherited from CableBranched
ISignalPort ** m_inVel
 The velocity input port s.
 
ISignalPort ** m_inPos
 The position input ports.
 
ISignalPort ** m_inLength
 The cable sections length port.
 
ICommonComputation * m_commonCalc
 Calculations necessary for more than one output port.
 
int * m_iStatePos
 An array of indices to the node position states.
 
int * m_iStateVel
 An array of indices to the node velocity states.
 
int * m_iStateCable
 An array of indices to the cable sections states.
 
int m_numElements
 The number of elements to divide the cable into.
 
int m_numNodesCalc
 The number of nodes of the cable between the cable elements.
 
int m_numCableSections
 The number of cable sections in the branched cable, where each section may be comprised of one or more elements.
 
int m_numNodesGlobal
 The number of nodes of the branched cable used for conecting the internal cable sections.
 
int m_numExternalConn
 The number of external connections.
 
int * m_nodeConnections
 The nodes connected to each cable section.
 
int m_cableFaces
 The number of faces of the cable visuaization.
 
double m_stepSafetyFactor
 The safety factor when calculating the Young modulus of the element.
 
double m_eAdaptationPeriod
 The time constant of the adaptation of the mean tension.
 
double m_numericalDamping
 The numerical damping of the cable.
 
double m_fluidRho
 The density of the surrounding fluid.
 
double m_maxAcceleration
 The value to truncate the acceleration of each node to.
 
double m_maxStep
 The maximum steplength of the simulation.
 
double * m_meanTension
 The mean tension of the cable.
 
double * m_stiffness
 The linear stiffness of the cable.
 
double * m_relaxedLength
 The relaxed length of the cable.
 
double * m_relaxedLength_d
 The desired relaxed length of the cable.
 
double m_maxLengthChangeSpeed
 The maximum speed of the cable length change.
 
double * m_dampingRatio
 The damping ratio to specify the internal damping.
 
double * m_density
 The density of the cable material.
 
double * m_dE
 The stiffness of the cable material.
 
double * m_diameter
 The diameter of the cable.
 
double * m_maxTension
 The maximum tension in the cable.
 
double * m_nodeInertia
 The inertia of the calculation nodes belonging to this simObject.
 
double * m_nodeForce
 The force on the calculation nodes belonging to this simObject.
 
double * m_lengths
 The lengths of the cable elements.
 
std::string m_materialName
 The material name of the cable;.
 
double m_drawScale
 The scale for which to draw the cable diameter.
 
double * m_externalTensions
 
InternalCable ** m_cableSections
 An array holding the cable sections.
 
const double * m_padVelWater
 
environment::EnvironmentProvider * m_environment
 
environment::SeafloorForcesInterface * m_seafloor
 

Member Function Documentation

◆ aFunction()

virtual void CableBranchedAttractor::aFunction ( std::string  simObjectName,
ISimObjectCreator *  creator 
)
virtual

Reimplemented from CableBranched.

◆ CreateStates()

virtual void CableBranchedAttractor::CreateStates ( ISimObjectCreator *  creator)
protectedvirtual

Reimplemented from CableBranched.

◆ HasJacobians()

bool CableBranchedAttractor::HasJacobians ( ) const
inlineoverride

Internal cable-section Jacobians require fhsim_marine_elements internals not available here; the acceleration limiter (sfh::math::Bound) also makes a correct analytical Jacobian impractical. Falls back to numerical FD.

◆ OdeFcn()

virtual void CableBranchedAttractor::OdeFcn ( const double  dT,
const double *const  adX,
double *const  adXDot 
) const
virtual

Reimplemented from CableBranched.


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