FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
InternalCableWithAttractor.h
1
9
10#pragma once
11
12// Includes
13#include "AttractorBase.h"
14
15#include <cable/subroutines/InternalCableWithBottomContact.h>
16
17// Class definition
19{
20public:
22 InternalCableWithAttractor(ISimObjectCreator* creator, const SCableSpec& CableSpec, std::string attractorName);
23 virtual void FinalSetup(const double dT, const double* const adX, ISimObjectCreator* const creator);
24
26 void SetAttractor(AttractorBase* attractor);
27
30 void UpdateAttractorMotion(double dT, const double* adX) const;
31
33 virtual void OdeFcn(const double* const adPosA,
34 const double* const adVelA,
35 const double* const adPosB,
36 const double* const adVelB,
37 const double* const adX,
38 double* const adXDot,
39 double dT) const;
40
41protected:
43 void AddAttractorForces(const double* const adX) const;
44
46 void AddElementForce(int cableElement,
47 const double adPosA[3],
48 const double adVelA[3],
49 const double adPosB[3],
50 const double adVelB[3],
51 double adForceA[3],
52 double adForceB[3],
53 double dT) const override;
54
55
56 std::string m_attractorName;
59};
Class modelling the interface of a general attractor.
Definition AttractorBase.h:18
Class containing a cable object to be part of larger cable structures.
Definition InternalCableWithAttractor.h:19
void SetAttractor(AttractorBase *attractor)
Sets the attractor to use.
virtual void OdeFcn(const double *const adPosA, const double *const adVelA, const double *const adPosB, const double *const adVelB, const double *const adX, double *const adXDot, double dT) const
Calculates the state derivatives and the end forces.
InternalCableWithAttractor(ISimObjectCreator *creator, const SCableSpec &CableSpec, std::string attractorName)
The constructor sets the pointer to the output object and the parser object.
AttractorBase * m_attractor
A pointer to the attractor to use.
Definition InternalCableWithAttractor.h:57
void UpdateAttractorMotion(double dT, const double *adX) const
void AddAttractorForces(const double *const adX) const
Adds the attractor forces to each cable node.
AttractorBase::Motion m_attractorMotion
As UpdateAttractorMotion found it.
Definition InternalCableWithAttractor.h:58
void AddElementForce(int cableElement, const double adPosA[3], const double adVelA[3], const double adPosB[3], const double adVelB[3], double adForceA[3], double adForceB[3], double dT) const override
Adds the forces from each cable element.
Class containing a cable object to be part of other structures.
Definition InternalCableWithBottomContact.h:21
Where the attractor is, how fast it moves, and how strongly it pulls.
Definition AttractorBase.h:22
Contains some specifications used for simulating cables.
Definition InternalCable.h:34