101 VirtualCurrent(
const std::string& simObjectName, ISimObjectCreator*
const creator);
103 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
104 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
105 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
107 void PreOdeFcn(
const double T,
const double*
const X, IStateUpdater* updater);
109#ifdef FH_VISUALIZATION
110 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
111 void RenderUpdate(
const double T,
const double*
const X);
115 const double* PlanarCurrent(
const double T,
const double*
const X,
int layer);
118 ICommonComputation* m_SetOutputPortValues;
119 double m_Pp, m_Pd, m_Pi, m_IntegralSaturation, m_DerivativeTInv;
120 int m_CurrentIndex, m_IntegralIndex, m_DerivativeIndex, m_layers;
122 std::unique_ptr<double[]> m_PlanarCurrents;
123 environment::EnvironmentProvider* Environment;
124 std::shared_ptr<VirtualCurrentField> m_CurrentField = std::make_shared<VirtualCurrentField>();
127 std::vector<int> m_CurrentIndices, m_IntegralIndices, m_DerivativeIndices;
128 std::unique_ptr<double[]> m_Depths;
130 double m_MaximumCurrent;
135#ifdef FH_VISUALIZATION
136 Ogre::SceneNode* m_RenderNode;