FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
TrawlDoorAddedFoil.h
1#pragma once
66#include "ToTrawlDoor.h"
67#include "subroutines/FoilPolar.h"
68
70{
71public:
73 TrawlDoorAddedFoil(std::string simObjectName, ISimObjectCreator* creator);
74 virtual ~TrawlDoorAddedFoil() = default;
75
77 virtual void OdeFcn(const double dT, const double* const adX, double* const adXDot) const;
78
79 void FinalSetup(const double dT, const double* const adX, ISimObjectCreator* const creator);
80
82 const double* OutFoilEnergyConsumed(const double dT, const double* const adX);
83
84
85#ifdef FH_VISUALIZATION
86 // Initial specification of the simObject geometry for rendering.
87 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
88
89 // Updating the simObject for rendering the next frame.
90 virtual void RenderUpdate(const double dT, const double* const adX);
91#endif
92
93protected:
95 void AddInflowDependentForces(double dT, const double* const adX) override;
96 void SetFoilRatio(const double dT, const double* const adX);
97
99 static FoilPolar ReadFoilPolar(ISimObjectCreator* creator);
100
101 ISignalPort* m_inFoilRelAoa;
102 ISignalPort* m_inFoilRelAoaRate;
103 ISignalPort* m_inFoilExposedAreaRatio;
104 ISignalPort* m_inFoilRelPosition;
105
106 FoilPolar m_foilPolar;
107 double m_foilCord;
108 double m_foilSpan;
111 int m_IStateEnergy;
112 bool m_foilIsVertical;
113
114#ifdef FH_VISUALIZATION
115 Ogre::Vector3 ToFoilScale(double x, double y, double z);
116 void SetFoilPos(double x, double y, double z);
117 float m_foilRelRollAngle;
118 Ogre::ManualObject* m_foilManualObject;
119 Ogre::SceneNode* m_foilRenderNode;
120#endif
121};
Definition FoilPolar.h:18
Definition ToTrawlDoor.h:114
Definition TrawlDoorAddedFoil.h:70
virtual void OdeFcn(const double dT, const double *const adX, double *const adXDot) const
Calculates the state derivatives.
const double * OutFoilEnergyConsumed(const double dT, const double *const adX)
Output port returning the foil energy consumption.
double m_foilHingeOffset
Hinge to pressure centre along the chord.
Definition TrawlDoorAddedFoil.h:109
static FoilPolar ReadFoilPolar(ISimObjectCreator *creator)
Reads the FoilHydro_* polar, reporting a parameter error when it is malformed.
void AddInflowDependentForces(double dT, const double *const adX) override
Adds the foil force, from the inflow AddHydroForces set for the current state.
TrawlDoorAddedFoil(std::string simObjectName, ISimObjectCreator *creator)
The constructor sets the pointer to the output object and the parser object.
double m_foilNormalForce
Chord-normal foil force of the last AddInflowDependentForces, mirrored frame.
Definition TrawlDoorAddedFoil.h:110