21#include "CEnvironment.h" 
   23#ifdef FH_VISUALIZATION 
   24#include "sfh/ogre/C3DLine.h" 
   41    EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 
   43    CRFShell(std::string sSimObjectName, ISimObjectCreator* pCreator);
 
   44    virtual void FinalSetup(
const double dT, 
const double* 
const adX, ISimObjectCreator* 
const pCreator);
 
   47#ifdef FH_VISUALIZATION 
   49    virtual void RenderInit(Ogre::Root* 
const ogreRoot, ISimObjectCreator* 
const creator);
 
   52    virtual  void RenderUpdate(
const double dT, 
const double* 
const adX);
 
   55    void DrawBody(Ogre::SceneNode* renderNode, Ogre::SceneManager* sceneMgr);
 
   58        virtual void OdeFcn(
const double dT, 
const double* 
const adX, 
double* 
const adXDot, 
const bool bIsMajorTimeStep);
 
   60    virtual int HHTAlpha(
const double dT, 
const double* 
const adX, 
const double TS, 
const double TI, 
const double Alpha, 
const int SubTS);
 
   61    virtual void FEPlot(
const double dT, 
const double* 
const adX);
 
   67    int*            m_TopConnectNode;
 
   68    ISignalPort**   m_TopInPos;
 
   69    ISignalPort**   m_TopInVel;
 
   71    int*            m_BotConnectNode;
 
   72    ISignalPort**   m_BotInForce;
 
   73    ISignalPort*    m_BotInForceM;      
 
   77    virtual const double* 
VolumeCL(
const double dT, 
const double* 
const adX);
 
   78    virtual const double* DragCOE(
const double dT, 
const double* 
const adX);
 
   79    virtual const double* StressMX(
const double dT, 
const double* 
const adX);
 
   81    double*     m_TopOutForce;
 
   82    virtual const double* TopOutForce(
const double dT, 
const double* 
const adX, 
int iTop);
 
   85    virtual const double* BotOutPos(
const double dT, 
const double* 
const adX, 
int iBot);
 
   86    virtual const double* BotOutVel(
const double dT, 
const double* 
const adX, 
int iBot);
 
   87    double      m_BotOutPosM[3];
 
   88    double      m_BotOutVelM[3];
 
   89    virtual const double* BotOutPosM(
const double dT, 
const double* 
const adX);
 
   90    virtual const double* BotOutVelM(
const double dT, 
const double* 
const adX);
 
  130    Eigen::Matrix<double,3,3>           
m_D;                
 
  142    Eigen::Matrix<double,3,1>*          
m_N;                
 
  143    Eigen::Matrix<double,3,6>*          
m_B;                
 
  144    Eigen::Matrix<double,6,3>*          
m_Bt;               
 
  145    Eigen::Matrix<double,6,6>*          
m_K;                
 
  146    Eigen::Matrix<double,6,6>*          
m_PK;               
 
  155    Eigen::Matrix<double,3,1>*          
m_OL;               
 
  156    Eigen::Matrix<double,3,3>           
m_PD;               
 
  157    Eigen::Matrix<double,3,6>*          
m_PB;               
 
  208#ifdef FH_VISUALIZATION 
  210    vector<Ogre::SceneNode*>    m_RenderNodes;              
 
  211    Ogre::SceneManager*         m_SceneMgr;
 
  212    vector<Ogre::ManualObject*> m_Manual;
 
Definition: CEnvironment.h:10
 
Definition: CRFShell.h:39
 
double m_Poissons
Elastic modulus of the membrane elements [N/m^2].
Definition: CRFShell.h:120
 
double * m_NodeB2
Node damping matrix.
Definition: CRFShell.h:138
 
double m_Yield
Poisson's ratio of the membrane elements [#].
Definition: CRFShell.h:121
 
int * m_TI
Boolean. True if bending stiffness is considered.
Definition: CRFShell.h:133
 
double * m_NodeB
Node mass matrix (relative).
Definition: CRFShell.h:137
 
double m_Damp[2]
Buoyancy-gravity [N].
Definition: CRFShell.h:113
 
Eigen::Matrix< double, 3, 1 > * m_Stress
Strain matrix of the triangles.
Definition: CRFShell.h:148
 
double m_MStrain[6]
Mass of the structure [kg].
Definition: CRFShell.h:125
 
double m_Youngs
Density of the membrane elements [kg/m^3].
Definition: CRFShell.h:119
 
double m_AddM
Restoring pressure.
Definition: CRFShell.h:111
 
double * m_NodeMR
Node mass matrix.
Definition: CRFShell.h:136
 
double m_VolR[3]
Bending restriction. minus: no; plus: restricted to m_BendR*m_Yield;.
Definition: CRFShell.h:162
 
int * m_TPI
Index of the triangle nodes in Node matrix.
Definition: CRFShell.h:134
 
double m_CArea
Yield strength of the membrane elements [N/m^2].
Definition: CRFShell.h:122
 
double * m_NodeA_s
Node velocity matrix (substep).
Definition: CRFShell.h:192
 
double * m_NodeV0
Node position matrix (i+1).
Definition: CRFShell.h:182
 
Eigen::Matrix< double, 3, 3 > m_D
Initial time step.
Definition: CRFShell.h:130
 
double * m_NodeA0
Node velocity matrix (i+1).
Definition: CRFShell.h:184
 
double * m_VMSB
von Mises stress of the triangles.
Definition: CRFShell.h:150
 
Eigen::Matrix< double, 3, 1 > * m_Strain
Bending stiffness matrix of the triangles.
Definition: CRFShell.h:147
 
double m_Vol
Time derivative of outflow vertical velocity.
Definition: CRFShell.h:199
 
double m_BendR
Boundary condition. 0: free or simply supported; 1: clamped.
Definition: CRFShell.h:161
 
bool m_Bending
Material matrix.
Definition: CRFShell.h:132
 
double * m_NodeF_s
Node acceleration matrix (substep).
Definition: CRFShell.h:193
 
double m_EOpenA
Plot time step.
Definition: CRFShell.h:196
 
int m_Iteration
Output folder.
Definition: CRFShell.h:167
 
Eigen::Matrix< double, 3, 6 > * m_PB
Material matrix (bending).
Definition: CRFShell.h:157
 
Eigen::Matrix< double, 6, 3 > * m_Bt
Shape matrix of the triangles.
Definition: CRFShell.h:144
 
double m_VolDot
Volume state.
Definition: CRFShell.h:200
 
Eigen::Matrix< double, 3, 1 > * m_OL
Rotation matrix of the triangles (original).
Definition: CRFShell.h:155
 
double m_Mass
Volume of a closed structure [m^3].
Definition: CRFShell.h:124
 
double m_Drag
Damping coefficient [#].
Definition: CRFShell.h:114
 
double * m_TC
Node damping matrix (quadratic).
Definition: CRFShell.h:139
 
double * m_NodeF0
Node acceleration matrix (i+1).
Definition: CRFShell.h:186
 
Eigen::Matrix< double, 6, 6 > * m_K
Transpose Shape matrix of the triangles.
Definition: CRFShell.h:145
 
virtual const double * VolumeCL(const double dT, const double *const adX)
Index of the bottom node.
 
double m_StrDamp[2]
Drag coefficient [#].
Definition: CRFShell.h:115
 
double * m_RAngle
von Mises stress of the triangles (bending).
Definition: CRFShell.h:151
 
double m_TS_s
Node incremental displacement matrix.
Definition: CRFShell.h:189
 
double m_Gamma
Beta parameter in the HHT-alpha time integration method.
Definition: CRFShell.h:179
 
Eigen::Matrix< double, 6, 1 > * m_FiNlgeom
Time step to update geometric nonlinearity.
Definition: CRFShell.h:205
 
double m_MStress[9]
Maximum and mean strain.
Definition: CRFShell.h:126
 
double * m_NodeP0
Gamma parameter in the HHT-alpha time integration method.
Definition: CRFShell.h:180
 
double * m_TArea
Initial local locations of the surrounding nodes (wl,wm,wn).
Definition: CRFShell.h:141
 
double m_NetEK[2]
Time derivative of volume state.
Definition: CRFShell.h:202
 
double m_Thickness
Structural damping coefficients [1/(rad/s)]. Frequency dependent.
Definition: CRFShell.h:117
 
double * m_TPC
Initial local locations of the triangle nodes.
Definition: CRFShell.h:140
 
Eigen::Matrix< double, 3, 1 > * m_N
Initial area of the element.
Definition: CRFShell.h:142
 
double * m_B2G
Added Mass coefficient [#].
Definition: CRFShell.h:112
 
double * m_NodeD
Node force matrix (i+1).
Definition: CRFShell.h:188
 
double m_OmgDot
Outflow vertical velocity.
Definition: CRFShell.h:198
 
double m_Omg[2]
Efficient openning area.
Definition: CRFShell.h:197
 
double * m_NodeF
Node force matrix (i).
Definition: CRFShell.h:187
 
int m_IStatePos
States.
Definition: CRFShell.h:93
 
double m_RelTol
Maximum number of iteration.
Definition: CRFShell.h:168
 
int m_TPlot
Node force matrix (substep).
Definition: CRFShell.h:194
 
int m_IC
Stress matrix of the triangles (bending).
Definition: CRFShell.h:158
 
int m_Triangles
Number of nodes [#].
Definition: CRFShell.h:101
 
double * m_NodeA
Node acceleration matrix (i).
Definition: CRFShell.h:185
 
int m_TNlgeom
Equivilent net stiffness.
Definition: CRFShell.h:204
 
int m_IStateVel
Index of the global position in the state vector.
Definition: CRFShell.h:94
 
Eigen::Matrix< double, 3, 3 > * m_RL2G
Rotation matrix of the triangles (original).
Definition: CRFShell.h:154
 
int m_BotNode
A pointer to the input force (bottom).
Definition: CRFShell.h:74
 
int m_BC
Initial condition. 0: no; 1: yes.
Definition: CRFShell.h:159
 
double m_Volume[8]
Cross area of a closed structure [m^2].
Definition: CRFShell.h:123
 
double m_Dim[4]
NED location [m].
Definition: CRFShell.h:105
 
std::string m_OutFolder
Maximum iterations.
Definition: CRFShell.h:164
 
Eigen::Matrix< double, 3, 6 > * m_B
Normal matrix of the triangles.
Definition: CRFShell.h:143
 
double m_Alpha
Integration time step.
Definition: CRFShell.h:177
 
Eigen::Matrix< double, 6, 6 > * m_PK
Membrane stiffness matrix of the triangles.
Definition: CRFShell.h:146
 
int m_Nodes
Pointer to DeepSeaGravityWaves -> CEnvironment.
Definition: CRFShell.h:100
 
CEnvironment * m_Environment
Index of the volume in the state vector.
Definition: CRFShell.h:98
 
ISignalPort * m_pInForce_B
Input ports.
Definition: CRFShell.h:65
 
double * m_VMS
Stress matrix of the triangles.
Definition: CRFShell.h:149
 
int m_ItM
Volume restriction. minus: no; plus: reduced iteration when m_Vol<m_VolR*m_Volume[0];.
Definition: CRFShell.h:163
 
double m_dPress[10]
Filling percentage.
Definition: CRFShell.h:108
 
double * m_NodeM
Index of the triangles and nodes in the patch surrounding a triangle (0/1,b,c,d,l,...
Definition: CRFShell.h:135
 
double * m_NodeV_s
Node position matrix (substep).
Definition: CRFShell.h:191
 
double m_MeshSize
Number of triangles [#].
Definition: CRFShell.h:102
 
int m_TopConnectNum
A pointer to the input force (bottom).
Definition: CRFShell.h:66
 
double m_Filling[2]
Shape.
Definition: CRFShell.h:107
 
double * m_NodeP
Node position matrix (i).
Definition: CRFShell.h:181
 
Eigen::Matrix< double, 6, 1 > * m_FoNlgeom
Initial in-plane forces.
Definition: CRFShell.h:206
 
Eigen::Matrix< double, 3, 3 > * m_RG2L
Radius angle of the triangles.
Definition: CRFShell.h:153
 
double * m_NodeV
Node velocity matrix (i).
Definition: CRFShell.h:183
 
int m_IStateVol
Index of the global velocity in the state vector.
Definition: CRFShell.h:95
 
double m_rPress[2]
Drainage pressure.
Definition: CRFShell.h:109
 
double m_Density
Thickness of the membrane elements [m].
Definition: CRFShell.h:118
 
string m_Shape
NED dimension [m].
Definition: CRFShell.h:106
 
double m_Indt
Maximum and mean stress.
Definition: CRFShell.h:128
 
double m_Beta
Alpha parameter in the HHT-alpha time integration method.
Definition: CRFShell.h:178
 
Eigen::Matrix< double, 3, 3 > m_PD
Location of the triangles (original).
Definition: CRFShell.h:156
 
double m_Loc[3]
Mesh size [m].
Definition: CRFShell.h:104
 
double * m_NodeP_s
Integration substep.
Definition: CRFShell.h:190
 
Includes.
Definition: CConstantStrainTriangle.h:22
 
Relative tolerance to stop iteration.
Definition: CRFShell.h:171
 
double previous_time
Time at previous step.
Definition: CRFShell.h:173
 
double prev_plot_time
Time at previous plot.
Definition: CRFShell.h:175
 
double step_size
Integration time step.
Definition: CRFShell.h:172
 
double current_time
Time at current step.
Definition: CRFShell.h:174