Marine systems simulation
membrane::CRFShell Class Reference
+ Inheritance diagram for membrane::CRFShell:
+ Collaboration diagram for membrane::CRFShell:

Classes

struct  time_info
 Relative tolerance to stop iteration. More...
 

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW CRFShell (std::string sSimObjectName, ISimObjectCreator *pCreator)
 
virtual void FinalSetup (const double dT, const double *const adX, ISimObjectCreator *const pCreator)
 
virtual void OdeFcn (const double dT, const double *const adX, double *const adXDot, const bool bIsMajorTimeStep)
 
virtual int HHTAlpha (const double dT, const double *const adX, const double TS, const double TI, const double Alpha, const int SubTS)
 
virtual void FEPlot (const double dT, const double *const adX)
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW CRFShell (std::string sSimObjectName, ISimObjectCreator *pCreator)
 
virtual void FinalSetup (const double dT, const double *const adX, ISimObjectCreator *const pCreator)
 
virtual void OdeFcn (const double dT, const double *const adX, double *const adXDot, const bool bIsMajorTimeStep)
 
virtual int HHTAlpha (const double dT, const double *const adX, const double TS, const double TI, const double Alpha, const int SubTS)
 
virtual void FEPlot (const double dT, const double *const adX)
 

Protected Member Functions

virtual const double * VolumeCL (const double dT, const double *const adX)
 Index of the bottom node. More...
 
virtual const double * DragCOE (const double dT, const double *const adX)
 
virtual const double * StressMX (const double dT, const double *const adX)
 
virtual const double * TopOutForce (const double dT, const double *const adX, int iTop)
 
virtual const double * BotOutPos (const double dT, const double *const adX, int iBot)
 
virtual const double * BotOutVel (const double dT, const double *const adX, int iBot)
 
virtual const double * BotOutPosM (const double dT, const double *const adX)
 
virtual const double * BotOutVelM (const double dT, const double *const adX)
 
virtual const double * VolumeCL (const double dT, const double *const adX)
 Index of the bottom node. More...
 
virtual const double * DragCOE (const double dT, const double *const adX)
 
virtual const double * StressMX (const double dT, const double *const adX)
 
virtual const double * TopOutForce (const double dT, const double *const adX, int iTop)
 
virtual const double * BotOutPos (const double dT, const double *const adX, int iBot)
 
virtual const double * BotOutVel (const double dT, const double *const adX, int iBot)
 
virtual const double * BotOutPosM (const double dT, const double *const adX)
 
virtual const double * BotOutVelM (const double dT, const double *const adX)
 
virtual const double * OutLayerDir (const double dT, const double *const adX, int iLay)
 
virtual const double * OutLayerFloVel (const double dT, const double *const adX, int iLay)
 Output layer direction.
 
virtual const double * OutLayerEleVel (const double dT, const double *const adX, int iLay)
 Output flow velocity.
 
virtual const double * OutLayerRelVel (const double dT, const double *const adX, int iLay)
 Output element velocity.
 
virtual const double * OutContactForce (const double dT, const double *const adX)
 

Protected Attributes

ISignalPort * m_pInForce_B
 Input ports.
 
int m_TopConnectNum
 A pointer to the input force (bottom).
 
int * m_TopConnectNode
 
ISignalPort ** m_TopInPos
 
ISignalPort ** m_TopInVel
 
int m_BotConnectNum
 
int * m_BotConnectNode
 
ISignalPort ** m_BotInForce
 
ISignalPort * m_BotInForceM
 
int m_BotNode
 A pointer to the input force (bottom).
 
double * m_TopOutForce
 
double * m_BotOutPos
 
double * m_BotOutVel
 
double m_BotOutPosM [3]
 
double m_BotOutVelM [3]
 
int m_IStatePos
 States. More...
 
int m_IStateVel
 Index of the global position in the state vector.
 
int m_IStateVol
 Index of the global velocity in the state vector.
 
CEnvironmentm_Environment
 Index of the volume in the state vector. More...
 
int m_Nodes
 Pointer to DeepSeaGravityWaves -> CEnvironment.
 
int m_Triangles
 Number of nodes [#].
 
double m_MeshSize
 Number of triangles [#].
 
double m_Loc [3]
 Mesh size [m].
 
double m_Dim [4]
 NED location [m].
 
string m_Shape
 NED dimension [m]. More...
 
double m_Filling [2]
 Shape.
 
double m_dPress [10]
 Filling percentage. More...
 
double m_rPress [2]
 Drainage pressure.
 
double m_AddM
 Restoring pressure.
 
double * m_B2G
 Added Mass coefficient [#].
 
double m_Damp [2]
 Buoyancy-gravity [N].
 
double m_Drag
 Damping coefficient [#].
 
double m_StrDamp [2]
 Drag coefficient [#].
 
double m_Thickness
 Structural damping coefficients [1/(rad/s)]. Frequency dependent.
 
double m_Density
 Thickness of the membrane elements [m].
 
double m_Youngs
 Density of the membrane elements [kg/m^3].
 
double m_Poissons
 Elastic modulus of the membrane elements [N/m^2].
 
double m_Yield
 Poisson's ratio of the membrane elements [#].
 
double m_CArea
 Yield strength of the membrane elements [N/m^2].
 
double m_Volume [8]
 Cross area of a closed structure [m^2].
 
double m_Mass
 Volume of a closed structure [m^3].
 
double m_MStrain [6]
 Mass of the structure [kg].
 
double m_MStress [9]
 Maximum and mean strain.
 
double m_Indt
 Maximum and mean stress.
 
Eigen::Matrix< double, 3, 3 > m_D
 Initial time step.
 
bool m_Bending
 Material matrix.
 
int * m_TI
 Boolean. True if bending stiffness is considered.
 
int * m_TPI
 Index of the triangle nodes in Node matrix.
 
double * m_NodeM
 Index of the triangles and nodes in the patch surrounding a triangle (0/1,b,c,d,l,m,n).
 
double * m_NodeMR
 Node mass matrix.
 
double * m_NodeB
 Node mass matrix (relative).
 
double * m_NodeB2
 Node damping matrix.
 
double * m_TC
 Node damping matrix (quadratic).
 
double * m_TPC
 Initial local locations of the triangle nodes.
 
double * m_TArea
 Initial local locations of the surrounding nodes (wl,wm,wn).
 
Eigen::Matrix< double, 3, 1 > * m_N
 Initial area of the element.
 
Eigen::Matrix< double, 3, 6 > * m_B
 Normal matrix of the triangles.
 
Eigen::Matrix< double, 6, 3 > * m_Bt
 Shape matrix of the triangles.
 
Eigen::Matrix< double, 6, 6 > * m_K
 Transpose Shape matrix of the triangles.
 
Eigen::Matrix< double, 6, 6 > * m_PK
 Membrane stiffness matrix of the triangles.
 
Eigen::Matrix< double, 3, 1 > * m_Strain
 Bending stiffness matrix of the triangles.
 
Eigen::Matrix< double, 3, 1 > * m_Stress
 Strain matrix of the triangles.
 
double * m_VMS
 Stress matrix of the triangles.
 
double * m_VMSB
 von Mises stress of the triangles.
 
double * m_RAngle
 von Mises stress of the triangles (bending).
 
Eigen::Matrix< double, 3, 3 > * m_RG2L
 Radius angle of the triangles.
 
Eigen::Matrix< double, 3, 3 > * m_RL2G
 Rotation matrix of the triangles (original).
 
Eigen::Matrix< double, 3, 1 > * m_OL
 Rotation matrix of the triangles (original).
 
Eigen::Matrix< double, 3, 3 > m_PD
 Location of the triangles (original).
 
Eigen::Matrix< double, 3, 6 > * m_PB
 Material matrix (bending).
 
int m_IC
 Stress matrix of the triangles (bending).
 
int m_BC
 Initial condition. 0: no; 1: yes.
 
double m_BendR
 Boundary condition. 0: free or simply supported; 1: clamped. More...
 
double m_VolR [3]
 Bending restriction. minus: no; plus: restricted to m_BendR*m_Yield;.
 
int m_ItM
 Volume restriction. minus: no; plus: reduced iteration when m_Vol<m_VolR*m_Volume[0];.
 
std::string m_OutFolder
 Maximum iterations.
 
int m_Iteration
 Output folder. More...
 
double m_RelTol
 Maximum number of iteration.
 
struct membrane::CRFShell::time_info m_time_info
 
double m_Alpha
 Integration time step.
 
double m_Beta
 Alpha parameter in the HHT-alpha time integration method.
 
double m_Gamma
 Beta parameter in the HHT-alpha time integration method.
 
double * m_NodeP0
 Gamma parameter in the HHT-alpha time integration method.
 
double * m_NodeP
 Node position matrix (i).
 
double * m_NodeV0
 Node position matrix (i+1).
 
double * m_NodeV
 Node velocity matrix (i).
 
double * m_NodeA0
 Node velocity matrix (i+1).
 
double * m_NodeA
 Node acceleration matrix (i).
 
double * m_NodeF0
 Node acceleration matrix (i+1).
 
double * m_NodeF
 Node force matrix (i).
 
double * m_NodeD
 Node force matrix (i+1). More...
 
double m_TS_s
 Node incremental displacement matrix.
 
double * m_NodeP_s
 Integration substep.
 
double * m_NodeV_s
 Node position matrix (substep).
 
double * m_NodeA_s
 Node velocity matrix (substep).
 
double * m_NodeF_s
 Node acceleration matrix (substep).
 
int m_TPlot
 Node force matrix (substep).
 
double m_EOpenA
 Plot time step. More...
 
double m_Omg [2]
 Efficient openning area.
 
double m_OmgDot
 Outflow vertical velocity.
 
double m_Vol
 Time derivative of outflow vertical velocity.
 
double m_VolDot
 Volume state.
 
double m_NetEK [2]
 Time derivative of volume state.
 
int m_TNlgeom
 Equivilent net stiffness.
 
Eigen::Matrix< double, 6, 1 > * m_FiNlgeom
 Time step to update geometric nonlinearity.
 
Eigen::Matrix< double, 6, 1 > * m_FoNlgeom
 Initial in-plane forces.
 
CIntegratorOptions * m_Integrator
 Output folder.
 
double m_TS
 Relative tolerance to stop iteration.
 
double m_DragCoeff [2]
 Equivilent net stiffness.
 
double m_Solidity
 Drag coefficients in normal [0] and tangential [1] directions.
 
double m_FlowReduce
 Solidity for net.
 
bool m_CalVolume
 Flow reduction factor.
 
int m_MeshNum [3]
 Caculate volume or not.
 
double m_InitialPos [3]
 Number of meshes on each layer [0], number of layers [1] and number of bottom node [2] (0 or 1)
 
bool m_OutLayerData
 Initial position.
 
int m_OutLayerNum
 Output layer data or not.
 
double * m_OutLayerDir
 Output layer number.
 
double * m_OutLayerFloVel
 Output layer direction.
 
double * m_OutLayerEleVel
 Output flow velocity.
 
double * m_OutLayerRelVel
 Output element velocity.
 
double m_MorisonCM [2]
 Output relative velocity.
 
double m_ContactStiff
 Morison mass coefficients.
 
double m_ContactDis
 
ISignalPort * m_ContactPoint
 
ISignalPort ** m_ContactEdge
 
double m_ContactForce [3]
 

Member Function Documentation

◆ OdeFcn()

virtual void membrane::CRFShell::OdeFcn ( const double  dT,
const double *const  adX,
double *const  adXDot,
const bool  bIsMajorTimeStep 
)
virtual

Calculates the state derivatives.

Parameters
[in]dT-> current simulation time
[in]adX-> current simulation state
[out]adXDot-> state derivatives
[in]bIsMajorTimeStep-> Is this a major time step?

◆ VolumeCL() [1/2]

virtual const double * membrane::CRFShell::VolumeCL ( const double  dT,
const double *const  adX 
)
protectedvirtual

Output ports.

◆ VolumeCL() [2/2]

virtual const double * membrane::CRFShell::VolumeCL ( const double  dT,
const double *const  adX 
)
protectedvirtual

Output ports.

Member Data Documentation

◆ m_BendR

double CRFShell::m_BendR
protected

Boundary condition. 0: free or simply supported; 1: clamped.

◆ m_dPress

double CRFShell::m_dPress
protected

Filling percentage

◆ m_Environment

CEnvironment * CRFShell::m_Environment
protected

Member variables

◆ m_EOpenA

double CRFShell::m_EOpenA
protected

Plot time step.

◆ m_IStatePos

int CRFShell::m_IStatePos
protected

Output relative velocity.

States

◆ m_Iteration

int CRFShell::m_Iteration
protected

Pointer to the integration method.

◆ m_NodeD

double * CRFShell::m_NodeD
protected

Node force matrix (i+1).

◆ m_Shape

string CRFShell::m_Shape
protected

NED dimension [m].


The documentation for this class was generated from the following files: