|
FhSim
3.1.0
Marine systems simulation
|
Mooring line of top chain, mid rope and bottom chain that joins a TrawlCable's solver so that trawl gear can collide with it.
Collaboration diagram for Mooring cable:The mooring line runs from end A (PosA) to end B (PosB) in three sections: a top chain at end A, a mid rope, and a bottom chain at end B. It is split into NumElements rigid cylinders of the same length, TotalLength/NumElements. The number of chain elements comes from TopChainLength and BottomChainLength, rounded down, and the mid rope takes the rest. Each of the three sections must get at least one element, or setup fails with an error. Joints are compliant, Baumgarte-type regularised constraints, as in TrawlCable. Both ends are ball joints to the external positions.
The line has no solver of its own. In FinalSetup it adds its bodies, joints and hydrodynamic loads to the solver of the TrawlCable named by the TrawlCable parameter, and takes that TrawlCable's RegulatorFrequencyCoefficient and collision frequency. Its OdeFcn does nothing, because the owning TrawlCable integrates all the bodies. The three sections are added to the collision manager as the "main" cable segments, and the trawl gear elements of every TrawlCable in the same solver are tested against them, whatever the order of the <Lib> elements. TrawlCable reports the contacts in its NormalForce* and ContactPosition* outputs. Mooring lines are not tested against each other.
Reproducibility. The line is solved by its TrawlCable's solver, so when that TrawlCable has NumCpuCore above 1, two runs of the same input give different results that start at round-off and grow. This is accepted by design (MARE-0075). With the default of one thread, repeated runs have given byte-identical results.
The environment forces are those of TrawlCable: Reynolds-number-dependent normal drag and tangential drag on every element, gravity, buoyancy and seabed contact, from the Environment shared resource.
An optional buoy can be attached to one mid-rope element (see BouyConnection, spelled so in the code). Its properties are fixed in the code: 2000 kg of extra mass, 20/1.025 m³ of extra displaced volume, and a 2 m diameter for drag. The buoy element's inertia is that of a cylinder of the element's length, the rope and buoy diameters added, and the rope and buoy masses added.
| Name | Width | Description |
|---|---|---|
| PosA | 3 | Position of end A [m]. The first top-chain element is ball-jointed to it. |
| PosB | 3 | Position of end B [m]. The last bottom-chain element is ball-jointed to it. |
| VelA | 3 | Velocity of end A [m/s]. |
| VelB | 3 | Velocity of end B [m/s]. |
| Name | Width | Description |
|---|---|---|
| ForceA | 3 | Force from the line on end A [N], which is the reaction force of the end-A ball joint. |
| ForceB | 3 | Force from the line on end B [N]. |
| BuoyPositionNED | 3 | Centre position of the element the buoy is attached to [m]. Registered only when BouyConnection is given. |
Parameters without a default are required. d is the diameter of the section concerned.
Geometry and coupling:
| Name | Width | Description |
|---|---|---|
| TrawlCable | 1 | Name of the TrawlCable whose solver this line joins. It must be a TrawlCable that owns a solver, which means one without a TrawlCable parameter of its own. Required. |
| NumElements | 1 | Total number of rigid elements in the line. Required. |
| TotalLength | 1 | Unstretched length of the line [m]. Required. |
| TopChainLength | 1 | Length of the top chain at end A [m]. The number of top-chain elements is int(TopChainLength/(TotalLength/NumElements)), and must be at least 1. Required. |
| BottomChainLength | 1 | Length of the bottom chain at end B [m]. The number of elements is rounded down in the same way, and must be at least 1. The two chains must leave at least one element for the mid rope. Required. |
| TopChainDiameter | 1 | Nominal diameter of the top chain [m]. Used for drag, inertia, contact radius and the default cross-section values. Required. |
| MidRopeDiameter | 1 | Nominal diameter of the mid rope [m]. Used for drag, inertia, contact radius and the default cross-section values. Required. |
| BottomChainDiameter | 1 | Nominal diameter of the bottom chain [m]. Used for drag, inertia, contact radius and the default cross-section values. Required. |
| BouyConnection | 1 | Buoy attachment position along the line from end A [m]. The buoy goes on the element with index floor(BouyConnection/(TotalLength/NumElements)), counted from element 0 at end A. That element must be in the mid rope, or setup fails with an error (Default: absent, so there is no buoy and no BuoyPositionNED port). |
| MooringPreTension | 1 | Tension used only for the initial shape [N]. Each section is stretched by the factor (1 + MooringPreTension/EA) before the catenary is laid out (Default: 0). |
| HQrender | 1 | Boolean. Visualisation only: draws each element as a capsule mesh (Default: true). |
Section material. Each row lists the top chain, mid rope and bottom chain parameter. Where the defaults differ, they are listed as top chain / mid rope / bottom chain:
| Name | Width | Description |
|---|---|---|
| TopChainFrictionCoefficient, MidRopeFrictionCoefficient, BottomChainFrictionCoefficient | 1 | Friction coefficient of the contacts on the section (Default: 0.8 / 1.2 / 0.8). |
| TopChainStructuralDampingCoefficient, MidRopeStructuralDampingCoefficient, BottomChainStructuralDampingCoefficient | 1 | Relative damping of the section's joint constraints: the damping gain is this value times β. The source comment says 1 is critical damping (Default: 1). |
| TopChainTensileCrossSectionArea, MidRopeTensileCrossSectionArea, BottomChainTensileCrossSectionArea | 1 | Load-bearing cross-section area A [m²]. Used in the axial stiffness EA and in the MooringPreTension stretch (Default: πd²/2 / 0.9πd²/4 / πd²/2). |
| TopChainTensileCrossSectionSecondAreaMoment, MidRopeTensileCrossSectionSecondAreaMoment, BottomChainTensileCrossSectionSecondAreaMoment | 1 | Second area moment I [m⁴]. Used in the bending stiffness EI (Default: 7πd⁴/5184 / πd⁴/64 / 7πd⁴/5184: seven strands of diameter d/3 for the chains, whose links articulate, and a solid rod for the rope). |
| TopChainTensileCrossSectionTorsionalAreaMoment, MidRopeTensileCrossSectionTorsionalAreaMoment, BottomChainTensileCrossSectionTorsionalAreaMoment | 1 | Torsional area moment J [m⁴]. Used in the torsional stiffness GJ (Default: 2 × the section's second area moment). |
| TopChainYoungsModulus, MidRopeYoungsModulus, BottomChainYoungsModulus | 1 | Young's modulus E [Pa] (Default: 5.4e10 / 1e10 / 5.4e10). |
| TopChainShearModulus, MidRopeShearModulus, BottomChainShearModulus | 1 | Shear modulus G [Pa] (Default: the section's Young's modulus/2.6). |
| TopChainDisplacementCrossSectionArea, MidRopeDisplacementCrossSectionArea, BottomChainDisplacementCrossSectionArea | 1 | Cross-section area that displaces water [m²]. Gives the buoyancy (Default: (2.5 + π)πd²/7 / πd²/4 / (2.5 + π)πd²/7). |
| TopChainWeight, MidRopeWeight, BottomChainWeight | 1 | Mass per unit length [kg/m]. Gives element mass, inertia and gravity (Default: chain DisplacementCrossSectionArea × 7900 / mid rope TensileCrossSectionArea × 1400). |
| TopChainTensionStabilityFactor, MidRopeTensionStabilityFactor, BottomChainTensionStabilityFactor | 1 or 2 | Numerical stabiliser for heavy loads, as in TrawlCable. The first value divides the bending and torsion frequency coefficient. The second value multiplies the bending and torsion stiffness. With one value, both factors take that value. An unprefixed TensionStabilityFactor is not read (Default: 1). |
The elements are numbered from 0 within each section, starting at the end-A side.
| Name | Width | Description |
|---|---|---|
| TopChainPos<i>, MidRopePos<i>, BottomChainPos<i> | 3 | Position of the element centre [m]. |
| TopChainVel<i>, MidRopeVel<i>, BottomChainVel<i> | 3 | Velocity of the element centre [m/s]. |
| TopChainOmega<i>, MidRopeOmega<i>, BottomChainOmega<i> | 3 | Angular velocity of the element [rad/s] (frame not determined from source). |
| TopChainQuater<i>, MidRopeQuater<i>, BottomChainQuater<i> | 4 | Orientation quaternion (w, x, y, z) of the element. |
InitialConditionSetup overwrites all states once PosA and PosB have values. The elements are laid out on a catenary from PosA to PosB, using the length stretched by MooringPreTension (solved to a relative 1e-12 by SolveCatenary, CatenarySolve.h). When TotalLength is no longer than the distance from PosA to PosB (to a relative 1e-9), or no catenary solution exists, they are laid out on the straight line from PosA toward PosB. That straight layout uses the stretched element lengths too, so the line ends the stretched length from PosA, not at PosB: when TotalLength equals the distance, it overshoots PosB by the pretension stretch. A line that should sag but has no catenary solution logs a warning. All velocities and angular velocities start at zero. Until then, ForceA and ForceB are marked not ready.
This SimObject is referred to as MooringCable