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