FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CableBranchedAttractor.h
1#pragma once
17#include "AttractorBase.h"
18#include "InternalCableWithAttractor.h"
19
20#include <fhsim/InputReader.h>
21#include <cable/CableBranched.h>
22
23
24// #define OUTPUT_NODE_POS
25
26// Class definition
28{
29public:
30 CableBranchedAttractor(std::string simObjectName, ISimObjectCreator* creator);
31
34 virtual void aFunction(std::string simObjectName, ISimObjectCreator* creator);
35 virtual void OdeFcn(const double dT, const double* const adX, double* const adXDot) const;
36 virtual void FinalSetup(const double dT, const double* const adX, ISimObjectCreator* const creator);
37
41 bool HasJacobians() const override { return false; }
42 // virtual void OutputFcn(const double dT, const double* const adX, const double* const * const aadInputports, double* const * const aadY); ///< Calculates the end forces.
43 // void GetSimRes();
44
45#ifdef FH_VISUALIZATION
47 // void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
48
50 // void RenderUpdate(const double dT, const double* const adX);
51#endif
52
53protected:
54 // virtual void InitializeCableSections(double* const adX, double* const * const aadInputports);
55 virtual void CreateStates(ISimObjectCreator* creator);
56 // void OutputExternalConnForces(const double* const adVelWater, const double* const adX, const double* const * const aadInputports, double* const * const aadY);
57 // void OutputElementTensions(const double* const adVelWater, const double* const adX, const double* const * const aadInputports, double* const * const aadY);
58 void AllocateCableSections();
59 void AddAttractorForces(const double* const adX) const;
60
61 std::vector<AttractorBase*> m_VAttractors;
62 // unsigned long m_IInAttractorPos; ///< The index of the input port with position of the attractor (such as a net bin).
63 // unsigned long m_IInAttractorVel; ///< The index of the input port with velocity of the attractor (such as a net bin).
64 std::string m_attractorName;
65 // InternalCableWithAttractor** m_cableSections; ///< An array holding the cable sections.
66
67
68#ifdef OUTPUT_NODE_POS
69 int m_numNodesToOutput;
70 int* m_nodesToOutput;
71 unsigned long* m_iOutNodePos;
72 unsigned long* m_iOutNodeVel;
73
74 int m_numElementTensionToOutput;
75 int* m_elementTensionToOutput;
76 unsigned long* m_iOutElementTension;
77
78 // double* aadElementTensions
79#endif
80};
Definition CableBranchedAttractor.h:28
~CableBranchedAttractor()
The destructor deletes dynamically allocated memory.
bool HasJacobians() const override
Definition CableBranchedAttractor.h:41
std::string m_attractorName
The name of the attractor.
Definition CableBranchedAttractor.h:64
Definition CableBranched.h:229