70#include <EnvironmentProvider.h>
72#include "Ship/AzimuthCurve.h"
74#ifdef FH_VISUALIZATION
75 #include "sfh/ogre/CDynamicLines.h"
86 void inline setPropeller(
Propeller4Q* propeller){ m_propeller = propeller; }
87 [[deprecated(
"This may not use up-to-date state info")]]
96 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
114 Propeller4Q(
const string simObjectName, ISimObjectCreator*
const creator);
118 void FinalSetup(
const double T,
const double *
const X, ISimObjectCreator*
const creator );
119 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot,
const bool bIsMajorTimeStep);
122#ifdef FH_VISUALIZATION
123 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
124 void RenderUpdate(
const double T,
const double*
const X);
128 const double*
Us(
const double T,
const double*
const X);
130 const double*
Rs(
const double T,
const double*
const X);
132 const double*
BetaT(
const double T,
const double*
const X);
135 const double*
BetaQ(
const double T,
const double*
const X);
138 const double*
Ct(
const double T,
const double*
const X);
141 const double*
Cq(
const double T,
const double*
const X);
144 const double*
ForceNED(
const double T,
const double*
const X);
147 const double*
TorqueNED(
const double T,
const double*
const X);
150 const double*
ForceBody(
const double T,
const double*
const X);
153 const double*
TorqueBody(
const double T,
const double*
const X);
156 const double*
BetaH(
const double T,
const double*
const X);
159 const double*
PDCurrent(
const double T,
const double*
const X);
182 const double*
ShaftPower(
const double T,
const double*
const X);
185 void Compute(
const double T,
const double*
const X);
188 ICommonComputation *m_compute;
210 Eigen::Quaterniond m_OrientationNED;
211 Eigen::Vector3d m_PositionNED;
212 Eigen::Vector3d m_VelocityNED;
213 double m_flowStateHigh;
274 std::shared_ptr<Propeller4QCurrentField>
m_currentField = std::make_shared<Propeller4QCurrentField>();
295 int m_IndexRotationalFlowState1;
298 int m_IndexRotationalFlowState2;
333 bool m_azimuthinMainLoss;
335#ifdef FH_VISUALIZATION
337 int m_IndexPropellerRotationSatet;
340 bool m_reverseRotationDirection;
343 CDynamicLines * m_lines;
346 Ogre::SceneNode* m_RenderNode;
349 Ogre::SceneNode* m_RenderNodePropeller;
Definition AzimuthCurve.h:9
Definition Propeller4Q.h:82
marenv::Status GetCurrent(double T, const double position[3], double currentVelocity[3])
Definition Propeller4Q.h:93
ISignalPort * m_InPositionNED
Definition Propeller4Q.h:268
Eigen::Vector3d m_ForceCorrectedNED
Definition Propeller4Q.h:201
const double * ForceBody(const double T, const double *const X)
double m_shaftPowerScaling
Definition Propeller4Q.h:229
double m_shaftPower
Definition Propeller4Q.h:223
Eigen::Vector3d m_TorqueCorrectedBody
Definition Propeller4Q.h:208
PropellerType m_PropellerType
Definition Propeller4Q.h:277
const double * TorqueCorrectedBody(const double T, const double *const X)
const double * TorqueNED(const double T, const double *const X)
const double * Cq(const double T, const double *const X)
VentilationTheory m_VentilationTheory
Definition Propeller4Q.h:280
double m_shaftPowerCorrected
Definition Propeller4Q.h:226
ISignalPort * m_InOrientationNED
Definition Propeller4Q.h:256
double m_shaftTorqueCorrected
Definition Propeller4Q.h:220
ISignalPort * m_InMyPD
Definition Propeller4Q.h:262
double m_betaT
Definition Propeller4Q.h:244
Eigen::Vector3d m_ForceBody
Definition Propeller4Q.h:193
int m_IndexVentialtionStateT
Definition Propeller4Q.h:286
const double * Rs(const double T, const double *const X)
double m_U
Definition Propeller4Q.h:325
double m_beta_h
Definition Propeller4Q.h:250
bool m_lowSpeedJet
Definition Propeller4Q.h:235
std::shared_ptr< Propeller4QCurrentField > m_currentField
Definition Propeller4Q.h:274
int m_numPD
Definition Propeller4Q.h:304
int m_IndexVentialtionStateQ
Definition Propeller4Q.h:283
Curve4Q * m_curve
Definition Propeller4Q.h:310
const double * PDCurrent(const double T, const double *const X)
Eigen::Vector3d m_TorqueBody
Definition Propeller4Q.h:198
const double * ForceNED(const double T, const double *const X)
const double * Ct(const double T, const double *const X)
Eigen::Vector3d m_TorqueNED
Definition Propeller4Q.h:196
double m_deltaBetaPlus
Definition Propeller4Q.h:319
int m_IndexAxialFlowStateLow
Definition Propeller4Q.h:289
double m_ThrustDeduction
Definition Propeller4Q.h:331
environment::EnvironmentProvider * m_environment
Definition Propeller4Q.h:271
double * m_PD
Definition Propeller4Q.h:307
double m_Ct
Definition Propeller4Q.h:316
double m_WakeFraction
Definition Propeller4Q.h:328
double m_D
Definition Propeller4Q.h:301
const double * BetaH(const double T, const double *const X)
ISignalPort * m_InVelocityNED
Definition Propeller4Q.h:265
const double * ShaftPowerCorrected(const double T, const double *const X)
double m_Rs
Definition Propeller4Q.h:241
Eigen::Vector3d m_TorqueCorrectedNED
Definition Propeller4Q.h:206
const double * BetaQ(const double T, const double *const X)
const double * ShaftPower(const double T, const double *const X)
const double * ForceCorrectedNED(const double T, const double *const X)
const double * ForceCorrectedBody(const double T, const double *const X)
double m_PDcur
Definition Propeller4Q.h:253
double m_shaftTorque
Definition Propeller4Q.h:217
const double * ShaftTorqueCorrectedBody(const double T, const double *const X)
const double * ShaftTorqueBody(const double T, const double *const X)
Eigen::Vector3d m_ForceNED
Definition Propeller4Q.h:191
double m_deltaBetaMinus
Definition Propeller4Q.h:322
double m_Cq
Definition Propeller4Q.h:313
VentilationTheory
Definition Propeller4Q.h:99
Eigen::Vector3d m_ForceCorrectedBody
Definition Propeller4Q.h:203
const double * TorqueBody(const double T, const double *const X)
ISignalPort * m_InMyRPM
Definition Propeller4Q.h:259
double m_propellerThrustScaling
Definition Propeller4Q.h:232
int m_IndexAxialFlowStateHigh
Definition Propeller4Q.h:292
const double * Us(const double T, const double *const X)
const double * BetaT(const double T, const double *const X)
const double * TorqueCorrectedNED(const double T, const double *const X)
PropellerType
Definition Propeller4Q.h:104
double m_Us
Definition Propeller4Q.h:238
double m_betaQ
Definition Propeller4Q.h:247
Defines the interface for an relaying information about ocean currents.
Definition CurrentField.h:13
Status
Definition marenv.h:40
Simple waypoint object.
Definition CableAttach.h:16
Definition Propeller4Q.h:109