48 virtual void OdeFcn(
const double dT,
const double*
const adX,
double*
const adXDot)
const;
49 virtual void InitialConditionSetup(
const double dT,
const double*
const adCurrentIC,
double*
const adUpdatedIC, ISimObjectCreator*
const creator);
50 virtual void FinalSetup(
const double dT,
const double*
const adX, ISimObjectCreator*
const creator);
51 const double* outExternalNodeForce(
const double dT,
const double*
const adX,
int extNode);
53#ifdef FH_VISUALIZATION
55 virtual void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
57 virtual void RenderUpdate(
const double dT,
const double*
const adX);
59 const virtual double* dragReduction(
const double T,
const double*
const X);
60 const virtual double* projectedArea(
const double T,
const double*
const X);
61 const virtual double* projectedVelocity(
const double T,
const double*
const X);
62 const virtual double* dragForce(
const double T,
const double*
const X);
63 const virtual double* cableForce(
const double T,
const double*
const X);
64 const virtual double* appendixForce(
const double T,
const double*
const X);
67 double m_dragReduction;
68 double m_projectedArea;
69 double m_projectedVelocity;
71 const virtual double* NodePos(
const double dT,
const double*
const adX,
int extNode);
72 const virtual double* NodeVel(
const double dT,
const double*
const adX,
int extNode);
75 virtual void AddExternalForces(
const double dT,
const double*
const adX)
const;
76 virtual void AddCableForces(
const double dT,
const double*
const adX)
const;
77 virtual void AddInputPorts(ISimObjectCreator* creator);
79 virtual void CreateNetCables(std::vector<NetCableElementTestSpec*> VCableElements, ISimObjectCreator* creator);
80 virtual void CreateNetTwines(std::vector<const NetTwineElementSpec*> VCableElements, ISimObjectCreator* creator);
83 virtual void CreateDataStructures();
84 virtual void CreateOutputPorts(ISimObjectCreator* creator);
85 std::vector<std::pair<std::string, int>> CreateExternalNodeMap(std::string tag,
int* piUsed,
NetStructureTestSpec& NetSpec, ISimObjectCreator* creator);
87#ifdef FH_VISUALIZATION
88# pragma warning(disable : 4244)
89 bool m_lineVisualization;
94 static Ogre::ColourValue mapToColor(
double val)
97 return Ogre::ColourValue(0.0, 0.0, 1.0);
98 }
else if (val >= 1.0) {
99 return Ogre::ColourValue(1.0, 0.0, 0.0);
100 }
else if (val >= 0.75) {
101 return Ogre::ColourValue(1.0, 4.0 - val / 0.25, 0.0);
102 }
else if (val >= 0.5) {
103 return Ogre::ColourValue(val / 0.25 - 2.0, 1.0, 0.0);
104 }
else if (val >= 0.25) {
105 return Ogre::ColourValue(0.0, 1.0, 2.0 - val / 0.25);
107 return Ogre::ColourValue(0.0, val / 0.25, 1.0);
113 double m_symplecticStepsize;
119 ISignalPort* m_colorLimits;
123 double* m_NodeExternalForces;
127 int m_numNodesOutputPosAndVel;
137 mutable double m_currentVel[3];
138 const double* currentVelocity(
const double dT,
const double*
const adX);
139 const double* currentVelocity(
const double dT,
const double*
const adX)
const;
145 std::vector<NetTwineElement*> m_VpTwineElements;
149 int** m_aaiCableConn;
150 bool m_foldingPointRefinementUsed;
157 std::vector<std::pair<std::string, int>> m_VsNodesInputForce;
158 bool m_useTagForExternalNodes;
162 unsigned int m_numTwinesCalc;
166 sfh::linalg::sse_vec3f* omp_posa;
167 sfh::linalg::sse_vec3f* omp_posb;
168 sfh::linalg::sse_vec3f* omp_vela;
169 sfh::linalg::sse_vec3f* omp_velb;
170 sfh::linalg::sse_vec3f* omp_velf;
172 sfh::linalg::sse_vec3f* omp_forceA;
173 sfh::linalg::sse_vec3f* omp_forceB;
174 double m_dragForce[3];
175 double m_cableForce[3];
176 double m_appendixForce[3];
std::vector< std::pair< std::string, int > > m_VsNodesOutputPosAndVel
Nodes reachable directly through input or output ports.
Definition NetStructureTest.h:156