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

Public Member Functions

 TrawlCable (const std::string &simObjectName, ISimObjectCreator *const creator)
 
 ~TrawlCable ()
 
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 (const double T, const double *const X, IStateUpdater *const updater) override
 
void Compute (const double T, const double *const X) override
 Runs the owner's main calculation (the solver's dynamics) at T, X.
 
void AddDependency (ICommonComputation *dependecy) override
 Adds a joining cable's common computation, which the owner's main calculation runs first.
 
const trawl_mooring::RigParts & Rig () const override
 The rig's solver and its shared parts.
 

Protected Types

enum  Chirality { PORT , STARBOARD }
 

Protected Member Functions

void MainCalculations (const double T, const double *const X)
 
void MainCalculationsCommon (const double T, const double *const X) const
 
const double * winchForce (const double T, const double *const X)
 
const double * TopBridleEndForce (const double T, const double *const X)
 
const double * BottomBridleEndForce (const double T, const double *const X)
 
const double * trawlDoorPosition (const double T, const double *const X)
 
void ContactForceCalculations (const double T, const double *const X)
 
void ContactForceCalculationsCommon (const double T, const double *const X) const
 
const double * normalForceTrawlDoor (const double T, const double *const X)
 
const double * normalForceClumpWeight (const double T, const double *const X)
 
const double * normalForceTopBridle (const double T, const double *const X)
 
const double * normalForceBottomBridle (const double T, const double *const X)
 
const double * normalForceWarp (const double T, const double *const X)
 
const double * contactPositionTopBridle (const double T, const double *const X)
 
const double * contactPositionBottomBridle (const double T, const double *const X)
 
const double * contactPositionWarp (const double T, const double *const X)
 

Protected Attributes

Chirality m_Chirality
 
double m_TrawlDoorMass
 
double m_TrawlDoorArea
 
double m_TrawlDoorLx
 
double m_TrawlDoorLy
 
double m_TrawlDoorLz
 
CoRiBoDynamics::vec3 m_TrawlDoorWarpConnection
 
CoRiBoDynamics::vec3 m_TrawlDoorTopBridleConnection
 
CoRiBoDynamics::vec3 m_TrawlDoorBottomBridleConnection
 
double m_ClumpWeightMass
 
double m_ClumpWeightLength
 
double m_ClumpWeightRadius
 
int m_NumTopWarp
 
double m_TopWarpLength
 
double m_TopWarpElementLength
 
int m_NumWarp
 
int m_NumTopBridle
 The number of discrete cable elements in the warp.
 
int m_NumBottomBridle
 The number of discrete cable elements in the top bridle.
 
double m_WarpDiameter
 The number of discrete cable elements int the lower bridle.
 
double m_TopBridleDiameter
 Nominal cable diameter.
 
double m_BottomBridleDiameter
 Nominal cable diameter.
 
double m_WarpLength
 Nominal cable diameter.
 
double m_TopBridleLength
 Warp cable length.
 
double m_BottomBridleLength
 Bridle cable length.
 
double m_frequencyCoefficient
 Bridle cable length.
 
double m_CollisionFrequencyCoefficient
 Frequency response coefficient.
 
double m_WarpElementLength
 Frequency response coefficient.
 
double m_TopBridleElementLength
 Length of discrete cable elements.
 
double m_BottomBridleElementLength
 Length of discrete cable elements.
 
double m_collisionDampingFactor
 Length of discrete cable elements.
 
std::unique_ptr< trawl_mooring::TrawlRig > m_ownRig
 Relative damping coefficient of contact constraint. 1 is critical damping.
 
const trawl_mooring::RigParts * m_rig
 The rig this cable's elements are on: its own, or that of the TrawlCable it joins (set in FinalSetup).
 
std::set< ICommonComputation * > m_ExternalDependencies
 
ICommonComputation * m_MainCalculations
 list of all (unique) CommonComputation nodes that have registered external geometry in the cable collision manager
 
ITrawlCable * m_ExtTrawlCable
 
std::vector< trawl_mooring::ElementStates > m_TopWarpElements
 
std::vector< trawl_mooring::ElementStates > m_WarpElements
 
std::vector< trawl_mooring::ElementStates > m_TopBridleElements
 
std::vector< trawl_mooring::ElementStates > m_BottomBridleElements
 
trawl_mooring::ElementStates m_TrawlDoorElement
 
trawl_mooring::ElementStates m_TrawlDoorWeightElement
 
trawl_mooring::ElementStates m_ClumpWeightElement
 
double m_winchForce [3]
 
int m_WinchPointConnectionIndex
 
double m_TopBridleEndForce [3]
 
int m_TopBridleEndPointConnectionIndex
 
double m_BottomBridleEndForce [3]
 
int m_BottomBridleEndPointConnectionIndex
 
ICommonComputation * m_ContactForceCalculations
 
double m_normalForceTrawlDoor [1]
 
double m_normalForceClumpWeight [1]
 
double m_normalForceTopBridle [3]
 
double m_normalForceBottomBridle [3]
 
double m_normalForceWarp [3]
 
ISignalPort * m_WinchPosition
 
ISignalPort * m_WinchVelocity
 
ISignalPort * m_TopBridleEndPosition
 
ISignalPort * m_TopBridleEndVelocity
 
ISignalPort * m_BottomBridleEndPosition
 
ISignalPort * m_BottomBridleEndVelocity
 

Constructor & Destructor Documentation

◆ TrawlCable()

TrawlCable::TrawlCable ( const std::string &  simObjectName,
ISimObjectCreator *const  creator 
)

Reads parameters, registers states, output and input ports. Registers a shared pointer to its own IColliableObject instance as "ICollidableObject_"+simObjectName. Registers a shared pointer to its ConstraintCableInterface as ConstraintCableInterface_"+simObjectName.

◆ ~TrawlCable()

TrawlCable::~TrawlCable ( )

Deletes all dynamically allocated memory

Member Function Documentation

◆ AddDependency()

void TrawlCable::AddDependency ( ICommonComputation *  dependecy)
overridevirtual

Implements ITrawlCable.

◆ Compute()

void TrawlCable::Compute ( const double  T,
const double *const  X 
)
overridevirtual

Implements ITrawlCable.

◆ FinalSetup()

void TrawlCable::FinalSetup ( const double  T,
const double *const  X,
ISimObjectCreator *const  creator 
)

Retrieves environment pointer. Checks active integrator method. If "Euler1" the ad-hoc symplectic integrator method is activated.

◆ InitialConditionSetup()

void TrawlCable::InitialConditionSetup ( const double  T,
const double *const  currentIC,
double *const  updatedIC,
ISimObjectCreator *const  creator 
)

Initializes cable elements.

◆ OdeFcn()

void TrawlCable::OdeFcn ( const double  T,
const double *const  X,
double *const  XDot 
) const

Call m_MainCalculations shared computation node. Writes all computed derivatives to XDot

◆ PreOdeFcn()

void TrawlCable::PreOdeFcn ( const double  T,
const double *const  X,
IStateUpdater *const  updater 
)
override

Casts the wakes of the solver's doors and clump weights (with CastWake) and takes the other objects' wakes at their centres and at the cable elements' centres for the step (MARE-0223). Only the TrawlCable that owns the solver does: the cables that join it add their segments, doors and clump weights to the same environment forces, which this updates once.

◆ Rig()

const trawl_mooring::RigParts & TrawlCable::Rig ( ) const
overridevirtual

Implements ITrawlCable.

Member Data Documentation

◆ m_ownRig

std::unique_ptr<trawl_mooring::TrawlRig> TrawlCable::m_ownRig
protected

Owner only: the solver, its shared parts and the wakes of its doors and clump weights (wake-casting-trawl).


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