FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
+ Collaboration diagram for Ring:
Author
Jørgen Haavind Jensen
Date
Q3 2011 JHJ: Initial version.

Hydrodynamics

The simulation must include an Environment (fhsim_environment): a model without one is a setup error (MARE-0315). Each element is a cylinder loaded by the water on its wet part, as RbCable/Cable loads it (wet_cylinder_water::FixedDragLoadOnElement, the wet-cylinder law of fhsim_environment, MARE-0227, MARE-0315):

The other objects' wakes are taken once per integrator step, in PreOdeFcn, at the element centres of the step start and held for the step, at the non-casting cutoff tier; the current and the waves stay live (ExternalWakeUpdate, fhsim_environment's ElementFlowInteraction, MARE-0223).

With gaussPointDrag (MARE-0396) the water is taken at the two Gauss points of each element (2 numElements points, the wakes too) and the drag is that at them, so that an element turning about a normal axis gets a drag moment (wet_cylinder_water::ElementGaussPoints, environment::wet_cylinder::GaussPointDragLoad). The centre is not queried.

Example configuration excerpt

<Lib
LibName = "marine_elements"
SimObject = "RbCable/Ring"
Name = "C"
Length = "20"
numElements = "7"
AlphaN = "1.0"
BetaN = "1.0"
EpsilonN = "0.0001"
AlphaM = "1.0"
BetaM = "1.0"
EpsilonM = "0.0001"
AlphaT = "1.0"
BetaT = "1.0"
EpsilonT = "0.0001"
Weight = "200"
Radius = "0.1"
BuoyancyFactor = "0.1"
CentrePosInit = "0.0,0.0,0.0"
Damping_Tangential = "0.01"
Damping_Normal = "1.2"
/>

Input Ports

If addinional connections are specified in configuration parameters, then the following are the simObjects input ports:

Name Width Description
Force<1>...Force<NumConnectors> 3 Force applied at additional connector i

Output Ports

If addinional connections are specified in configuration parameters, then the following are the simObjects output ports:

Name Width Description
ConnectorPos<1>...ConnectorPos<NumConnectors> 3 Position of additional connector i
ConnectorVel<1>...ConnectorVel<NumConnectors> 3 Velocity of additional connector i

Configuration parameters

Name Width Description
Length 1 Length of cable
numElements 1 Number of internal mass elements.
AlphaN 1 ...
BetaN 1 ...
EpsilonN 1 ...
AlphaM 1 ...
BetaM 1 ...
EpsilonM 1 ...
AlphaT 1 ...
BetaT 1 ...
EpsilonT 1 ...
Weight 1 Weight of the cable.
Radius 1 Radius of the cable.
BuoyancyFactor 1 ... (Default: 0.1)
CentrePosInit 3 Initial position of the ring centre (Default: "0.0,0.0,0.0")
AdditionalConnectors 1 Whether or not there are additional connectors. If there are, NumConnectors needs to be set (Default: false)
NumConnectors 1 Number of additional connectors (Default: 0)
Damping_Tangential 1 Tangential damping coefficient. (Default: 0)
Damping_Normal 1 Normal damping coefficient. (Default: 0)
ExternalWakeUpdate 1 How the other objects' wakes reach the element centres; listed in fhsim_environment's doc/user/wake-parameters.md. (Default: Step)
gaussPointDrag 1 Boolean. Takes the water and the drag at the two Gauss points along each element, so that an element turning about a normal axis gets a drag moment (MARE-0396). Off: the drag on the water at the element centre (Default: true; owner ruling 2026-10-22)

Initial conditions

Name Width Description
pos<i> 3 Position of point \(i \in {0\cdots\text{numElements}-1}\).
vel<i> 3 Velocity of point \(i \in {0\cdots\text{numElements}-1}\).
theta<i> 4 Orientation in quaternion of point \(i \in {0\cdots\text{numElements}-1}\)..
omega<i> 3 Angular velocity in rad per second of point \(i \in {0\cdots\text{numElements}-1}\)..

Full example file

<Contents>
<OBJECTS>
<Lib
LibName="environment"
SimObject="Environment"
Name="Env"
Waves.Model="Component"
Waves.NumWaves="0"
Bathymetry.Depth="500"
Current.Model = "Constant"
Current.Vector = "0,0,0"
/>
<Lib
LibName = "marine_elements"
SimObject = "RbCable/Ring"
Name = "C"
Length = "20"
numElements = "7"
AlphaN = "1.0"
BetaN = "1.0"
EpsilonN = "0.0001"
AlphaM = "1.0"
BetaM = "1.0"
EpsilonM = "0.0001"
AlphaT = "1.0"
BetaT = "1.0"
EpsilonT = "0.0001"
Weight = "200"
Radius = "0.1"
BuoyancyFactor = "0.1"
CentrePosInit = "0.0,0.0,0.0"
Damping_Tangential = "0.01"
Damping_Normal = "1.2"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
/>
</INITIALIZATION>
<SIMULATION>
<Timing TStart="0" TEnd="10"/>
<Integrator Method="RK45_i" NumCores="1" LogStates="0" UseRSSNorm="0">
<StepControl Step="1e-4" StepMax="100" StepMin="1e-6" AbsTol="1e-7" RelTol="1e-7"/>
</Integrator>
<!-- TODO migrate_v3: FileOutput="objects:all" -> configure via <OBSERVERS> section -->
</SIMULATION>
</Contents>