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 joints between the elements (numElements points, the wakes too: the ring is closed, so joint j lies between element j and element j + 1, the last with the first) and the drag is that at two Gauss points along each element, so that an element turning about a normal axis gets a drag moment (wet_cylinder_water::ChainJoints, 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 at the joints between the elements and the drag at 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>