FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CableBranchedAttractor.h
1#pragma once
34#include "AttractorBase.h"
35#include "InternalCableWithAttractor.h"
36
37#include <cable/CableBranched.h>
38#include <fhsim/InputReader.h>
39
40
41// #define OUTPUT_NODE_POS
42
43// Class definition
45{
46public:
47 CableBranchedAttractor(std::string simObjectName, ISimObjectCreator* creator);
48
51 virtual void aFunction(std::string simObjectName, ISimObjectCreator* creator);
52 virtual void OdeFcn(const double dT, const double* const adX, double* const adXDot) const;
53 virtual void FinalSetup(const double dT, const double* const adX, ISimObjectCreator* const creator);
54
58 bool HasJacobians() const override { return false; }
59 // virtual void OutputFcn(const double dT, const double* const adX, const double* const * const aadInputports, double* const * const aadY); ///< Calculates the end forces.
60 // void GetSimRes();
61
62#ifdef FH_VISUALIZATION
64 // void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
65
67 // void RenderUpdate(const double dT, const double* const adX);
68#endif
69
70protected:
71 // virtual void InitializeCableSections(double* const adX, double* const * const aadInputports);
72 virtual void CreateStates(ISimObjectCreator* creator);
73 // void OutputExternalConnForces(const double* const adVelWater, const double* const adX, const double* const * const aadInputports, double* const * const aadY);
74 // void OutputElementTensions(const double* const adVelWater, const double* const adX, const double* const * const aadInputports, double* const * const aadY);
75 void AllocateCableSections();
76 void AddAttractorForces(const double* const adX) const;
77
78 std::vector<AttractorBase*> m_VAttractors;
79 // unsigned long m_IInAttractorPos; ///< The index of the input port with position of the attractor (such as a net bin).
80 // unsigned long m_IInAttractorVel; ///< The index of the input port with velocity of the attractor (such as a net bin).
81 std::string m_attractorName;
82 // InternalCableWithAttractor** m_cableSections; ///< An array holding the cable sections.
83
84
85#ifdef OUTPUT_NODE_POS
86 int m_numNodesToOutput;
87 int* m_nodesToOutput;
88 unsigned long* m_iOutNodePos;
89 unsigned long* m_iOutNodeVel;
90
91 int m_numElementTensionToOutput;
92 int* m_elementTensionToOutput;
93 unsigned long* m_iOutElementTension;
94
95 // double* aadElementTensions
96#endif
97};
Definition CableBranchedAttractor.h:45
~CableBranchedAttractor()
The destructor deletes dynamically allocated memory.
bool HasJacobians() const override
Definition CableBranchedAttractor.h:58
std::string m_attractorName
The name of the attractor.
Definition CableBranchedAttractor.h:81
Definition CableBranched.h:234