229 virtual void OdeFcn(
const double dT,
const double*
const adX,
double*
const adXDot)
const;
230 virtual void InitialConditionSetup(
const double dT,
const double*
const adCurrentIC,
double*
const adUpdatedIC, ISimObjectCreator*
const creator);
231 virtual void FinalSetup(
const double dT,
const double*
const adX, ISimObjectCreator*
const creator);
232 const double* outExternalNodeForce(
const double dT,
const double*
const adX,
int extNode);
234#ifdef FH_VISUALIZATION
236 virtual void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
238 virtual void RenderUpdate(
const double dT,
const double*
const adX);
240 const virtual double* dragReduction(
const double T,
const double*
const X);
241 const virtual double* projectedArea(
const double T,
const double*
const X);
242 const virtual double* projectedVelocity(
const double T,
const double*
const X);
243 const virtual double* dragForce(
const double T,
const double*
const X);
244 const virtual double* cableForce(
const double T,
const double*
const X);
245 const virtual double* appendixForce(
const double T,
const double*
const X);
248 double m_dragReduction;
249 double m_projectedArea;
250 double m_projectedVelocity;
252 const virtual double* NodePos(
const double dT,
const double*
const adX,
int extNode);
253 const virtual double* NodeVel(
const double dT,
const double*
const adX,
int extNode);
256 virtual void AddExternalForces(
const double dT,
const double*
const adX)
const;
257 virtual void AddCableForces(
const double dT,
const double*
const adX)
const;
258 virtual void AddInputPorts(ISimObjectCreator* creator);
260 virtual void CreateNetCables(std::vector<NetCableElementTestSpec*> VCableElements, ISimObjectCreator* creator);
261 virtual void CreateNetTwines(std::vector<const NetTwineElementSpec*> VCableElements, ISimObjectCreator* creator);
264 virtual void CreateDataStructures();
265 virtual void CreateOutputPorts(ISimObjectCreator* creator);
266 std::vector<std::pair<std::string, int>> CreateExternalNodeMap(std::string tag,
int* piUsed,
NetStructureTestSpec& NetSpec, ISimObjectCreator* creator);
268#ifdef FH_VISUALIZATION
269# pragma warning(disable : 4244)
270 bool m_lineVisualization;
275 static Ogre::ColourValue mapToColor(
double val)
278 return Ogre::ColourValue(0.0, 0.0, 1.0);
279 }
else if (val >= 1.0) {
280 return Ogre::ColourValue(1.0, 0.0, 0.0);
281 }
else if (val >= 0.75) {
282 return Ogre::ColourValue(1.0, 4.0 - val / 0.25, 0.0);
283 }
else if (val >= 0.5) {
284 return Ogre::ColourValue(val / 0.25 - 2.0, 1.0, 0.0);
285 }
else if (val >= 0.25) {
286 return Ogre::ColourValue(0.0, 1.0, 2.0 - val / 0.25);
288 return Ogre::ColourValue(0.0, val / 0.25, 1.0);
294 double m_symplecticStepsize;
300 ISignalPort* m_colorLimits;
304 double* m_NodeExternalForces;
308 int m_numNodesOutputPosAndVel;
318 mutable double m_currentVel[3];
319 const double* currentVelocity(
const double dT,
const double*
const adX);
320 const double* currentVelocity(
const double dT,
const double*
const adX)
const;
326 std::vector<NetTwineElement*> m_VpTwineElements;
330 int** m_aaiCableConn;
331 bool m_foldingPointRefinementUsed;
338 std::vector<std::pair<std::string, int>> m_VsNodesInputForce;
339 bool m_useTagForExternalNodes;
343 unsigned int m_numTwinesCalc;
353 NetVec3f* omp_forceA;
354 NetVec3f* omp_forceB;
355 double m_dragForce[3];
356 double m_cableForce[3];
357 double m_appendixForce[3];
std::vector< std::pair< std::string, int > > m_VsNodesOutputPosAndVel
Nodes reachable directly through input or output ports.
Definition NetStructureTest.h:337