Marine systems simulation
ice::CMultiIceFloe Class Reference
+ Inheritance diagram for ice::CMultiIceFloe:
+ Collaboration diagram for ice::CMultiIceFloe:

Classes

struct  time_step_info
 Floe states. More...
 

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW CMultiIceFloe (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)
 Calculates the state derivatives.
 
virtual void PreOdeFcn (const double dT, const double *const adX, IStateUpdater *updater)
 
virtual void ContactDetection (const double dT, const double *const adX)
 
virtual vec6 GetInternalForces (const int &pi, const vec6 &dX, const vec3 &r, const quat &ql2g, const quat &qg2l, double time, const double *const states)
 
virtual mat6 GetInertiaMatrix (const int &pi, const vec3 &r, const quat &q, const double dT, const double *const adX)
 
virtual vec13 GetSecondDerivative (const int &pi, const vec3 &r, const quat &ql2g, const quat &qg2l, const vec3 &v, const vec3 &w, const vec6 &externalForces, const double time, const double *const states)
 
virtual vec3 CalRollPitchYaw (const quat &ql2g)
 
virtual vec6 CalcHydroforces (const int &pi, const vec6 &dX, const vec3 &r, const quat &ql2g, const quat &qg2l, double time, const double *const states)
 
virtual vec6 CalcHydroforcesPolyplate (const int &pi, const vec6 &dX, const vec3 &r, const quat &ql2g, const quat &qg2l, double time, const double *const states)
 
virtual vec6 CalContactForce (const int &pi, const vec3 &r, const quat &ql2g, const quat &qg2l, const double dT, const double *const adX)
 
virtual vec6 CalConnectForce (const vec3 &r, const vec6 &dX, const quat &ql2g, const quat &qg2l, const double dT, const double *const adX)
 

Static Public Member Functions

static vec6 GetCoriolisForce (const vec6 &dX, const mat6 &Inertia)
 

Protected Member Functions

virtual const double * Test (const double dT, const double *const adX)
 
virtual const double * ContactForce (const double dT, const double *const adX)
 
virtual const double * FloeState (const double dT, const double *const adX)
 
virtual const double * ConnectForce (const double dT, const double *const adX)
 
const double * icePresenceTest (const double T, const double *const X)
 
const double * iceCriticalTest (const double T, const double *const X)
 
virtual const double * ConnectPos (const double dT, const double *const adX, int iConnect)
 List of velocities (u,v,w) of the connections.
 
virtual const double * ConnectVel (const double dT, const double *const adX, int iConnect)
 
virtual const double * StructForceNED (const double dT, const double *const adX)
 
virtual const double * StructTorqueNED (const double dT, const double *const adX)
 
virtual vec6 CalStateSpace (const int &pi, const double dT, const double *const adX, const vec6 &VS)
 

Protected Attributes

double numIcePresent [2]
 
ISignalPort * m_inIcePresenceRegion
 
ISignalPort * m_inIcePresenceCritical
 
int m_IStatePos
 
int m_IStateQuater
 Index of the global position in the state vector.
 
int m_IStateVel
 Index of the quaternions in the state vector.
 
int m_IStateOmega
 Index of the global velocity in the state vector.
 
double m_iField [4]
 Index of the global angular velocity in the state vector.
 
int m_numFloe
 Dimension of ice field.
 
vec3 ** m_FloeV
 Number of ice floes.
 
vec3 ** m_xyzFloeV
 Local coordinates of ice floe vertices.
 
int m_numStruct
 Coordinates of ice floe vertices.
 
double m_locStruct [3]
 Number of structures.
 
double m_risStruct [3]
 Location of the structure.
 
mat6 * m_AddedMass
 Restriction of structure.
 
mat6 * m_DampMatrix
 Added mass matrix.
 
Particle m_Particle [MaxNumFL]
 Damping matrix.
 
PolyplateSpec m_PolyPlate [MaxNumFL]
 Particle class for contact detection.
 
AABBm_AABB
 Polyplate structure.
 
double m_iDensity
 Particle AABB tree.
 
double m_sDensity
 Density of ice.
 
double m_wDragCoeff [2]
 Density of structure.
 
double m_iSpeed [3]
 Water drag coefficient.
 
double m_iConcentration
 Initial ice drift speed.
 
CEnvironmentm_Environment
 Ice concentration.
 
vec3 * m_ContactForce
 Pointer to DeepSeaGravityWaves -> CEnvironment.
 
vec3 * m_ContactMoment
 Global contact force.
 
double m_StructContactForce [8]
 Global contact moment.
 
int m_iFloePos
 Output global contact force acting on the structure.
 
double m_FloeState [19]
 Index of ice floe for output.
 
time_step_info m_time_step_info
 
double m_ElasticM
 Integration step info.
 
double m_PoissonR
 Elastic modulus of ice.
 
double m_K
 Poisson's ratio of ice.
 
double m_CR
 Contact stiffness.
 
double m_DampingR
 Coefficient of restitution.
 
double m_Kne
 Damping ratio.
 
double m_Kte
 Normal contact stiffness.
 
double m_Knv
 Tangential contact stiffness.
 
double m_CStrength
 Normal viscous damping coefficient.
 
double m_Mui [2]
 Ice compressive strength.
 
vec3 ** m_Ftp
 Floe surface friction.
 
int m_ConnectNum
 Tangential contact force at previous time step.
 
int m_ConnectPA
 Number of connections.
 
double * m_ConnectLoc
 Index of the object to connect.
 
double * m_ConnectPos
 List of local locations of the connections.
 
double * m_ConnectVel
 List of positions (x,y,z) of the connections.
 
ISignalPort ** m_ConnectForce
 
double m_StructConnectForce [8]
 
int m_conStruct
 Output global connect force acting on the structure.
 
int m_conRender
 0: no interconnecting structure; 1: interconnecting structure
 
ISignalPort * m_pInStructPos
 Rendering of structures, 0: no; 1: triangle; 2: line.
 
ISignalPort * m_pInStructVel
 
ISignalPort * m_pInStructOmega
 
ISignalPort * m_pInStructQuat
 
double m_StructPos [3]
 
double m_StructVel [3]
 
double m_StructOmega [3]
 
double m_StructQuat [4]
 
int m_StateSpace
 
int m_IStateSSpace
 
int m_ModeNum
 Index of the additional states for state-space implementation in the state vector.
 
int m_StateNum
 
Eigen::Matrix< double, 8, 8 > * m_SSpaceA
 
Eigen::Matrix< double, 8, 1 > * m_SSpaceB
 
Eigen::Matrix< double, 1, 8 > * m_SSpaceC
 
Eigen::Matrix< double, 1, 1 > * m_SSpaceD
 
double * m_SSpaceSDot
 
double m_CPTOL [2]
 
int m_ContactMesh
 User-defined tolerance for common plane calculation.
 
int m_BoundaryCondition
 Use meshes (faces) to calculate contact area, 0: no mesh; 1: mesh.
 
double m_ComAreaN [2]
 0: no BC; 1: ice floes confined at the boundaries perpendicular to the drift direction
 
double m_CurrentVel [3]
 Computational area North.
 
int m_ACP
 Current velocity.
 
int ** m_CP_P
 1: use approximation of common plane; 0: no
 
vec3 ** m_P0_P
 1: Common plane saved at previous time step; 0: no
 
vec3 ** m_PN_P
 Location of the common plane at previous time step (relative to PA)
 
vec3 ** m_PB0_P
 Normal of the common plane at previous time step (relative to PA)
 
vec3 ** m_PB1_P
 PB position 0 at previous time step (relative to PA)
 
vec3 ** m_PB2_P
 PB position 1 at previous time step (relative to PA)
 
CPrintDuringExec * m_Printer
 PB position 2 at previous time step (relative to PA) More...
 
double m_test [100]
 

Member Data Documentation

◆ m_Printer

CPrintDuringExec* ice::CMultiIceFloe::m_Printer
protected

Pointer to the FhSim printer object


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