Marine systems simulation
LineStructureGravityHydro.h
1#pragma once
2
3#include <CEnvironment.h>
4
5#include <LineStructure.h>
6#include <CollisionManager.h>
7
8#include <environment/DeepSeaGravityWaves.h>
9
10#include "Contact/ShipContact.h"
11
13public:
14 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
15
16 LineStructureGravityHydro(CoRiBoDynamics::ConstraintSolver* solver, ISimObjectCreator* creator, LineSpec spec, std::string name);
17
18 void setEnvironment(CEnvironment*e);
19 virtual void ComputeConstraints(const double T, const double * const X);
20
21 virtual CollisionCheckInterface::GeometryVector CheckForContact(CoRiBoDynamics::CollisionManager::ExternalObject& object);
22
23 double GetElementLength(){return m_elemLength;}
24
25protected:
27 virtual void Init(CoRiBoDynamics::ConstraintSolver* solver, ISimObjectCreator* creator, LineSpec spec, std::string name);
28
29
30 CEnvironment *m_environment;
31 double m_elemVolume;
32 double m_elemArea;
33 double m_elemProjArea;
34 double m_elemDensity;
35
36 double m_Cd_n;
37 double m_Cd_t;
38 Eigen::Vector3d m_Ca;
39};
Definition: CEnvironment.h:10
Definition: CollisionManager.h:135
Definition: ConstraintSolver.h:31
Definition: LineStructure.h:15
Definition: ShipContact.h:7
Definition: LineStructureGravityHydro.h:12
double m_Cd_t
Normal drag coefficient.
Definition: LineStructureGravityHydro.h:37
double m_Cd_n
Assumption that the line element is made up of nylon (rope)
Definition: LineStructureGravityHydro.h:36
Eigen::Vector3d m_Ca
Tangential drag coefficient.
Definition: LineStructureGravityHydro.h:38
virtual void ComputeConstraints(const double T, const double *const X)