FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Branchable cable

Class containing a cable object with the ability to be branched.

+ Collaboration diagram for Branchable cable:
Author
Karl-Johan Reite
Date
24.07.2007 KJR: Initial version.
04.05.2010 KJR: Split into three different classes to facilitate with/without bottom contact.
Review issues:
0223 — Cable/* makes one flow query per element per RHS, each sampling every registered lumped wake

Simulates a cable object which is a collection of cable sections, which again are collections of one or more cable elements. The main properties of this class are an arbitrary number of cable sections, connected by an arbitrary number of nodes, with an arbitrary number of external connections. The external connections are nodes where the position and velocity is governed by the input ports. The node numbers of these must be the lowest one, starting from zero and going up to the number of external nodes minus one.

Each section is an InternalCable (see Cable/LumpedMass): its elements see the wave velocity and surface (R62, R66) and, in waves, take the Froude-Krylov and added-mass excitation (1 + Ca) rho A L f a_n normal to each element (owner ruling R104), left out of the analytical Jacobian as the drag is. The seafloor forces on the nodes and the elements are not in it either: HasJacobians is false while any of them is in bottom contact at the last OdeFcn state (fhsim_fishery FISH-0086, as Net/NetStructure, MARE-0134), and FhSim differences the block then.

Example configuration excerpt

<Lib
LibName = "marine_elements"
SimObject = "Cable/Branched"
File = "BranchedCableInput.xml"
Name = "CB"
/>
Note
The input file (here called BranchableCableInput.xml) must either be specified by a path relative to the bin-folder (e.g. ../examples/input/marine_elements/BranchableCableInput.xml) , or be located in the bin-folder itself. If the file is located in the bin-folder, the parameter File above only need to contain the filename of the input file (e.g. BranchableCableInput.xml).

Example BranchableCable configuration file

The simobject takes an argument filename, which specifies a path to a file. This file contains parameters general to the branchable cable component, and specific to the cable elements.

<BranchedCable>
<General
NumNodes = "6"
NumCables = "5"
NumCableFaces = "5"
FluidRho = "1025"
NumExternalConnections = "4"
NumericalDamping = "1"
MaxStepLength = "0.001"
AdaptationPeriod = "0"
StepSafetyFactor = "50"
/>
<CableElements>
<El1
NumElements = "1"
D = "0.025"
E = "1E+011"
NodeConnections = "0, 4"
Density = "7900"
DampingRatio = "0"
AddedWeightInWater = "0"
MaxTension = "1E+006"
MeanTension = "0"
NumericalDamping = "1"
MaterialName = "Trawl/Wire2"
NumCableFaces = "5"
DrawScale = "3"
/>
<El2
NumElements = "1"
D = "0.019"
E = "1E+011"
NodeConnections = "4, 5"
Density = "7900"
DampingRatio = "0"
AddedWeightInWater = "0"
MaxTension = "1E+006"
MeanTension = "0"
NumericalDamping = "1"
MaterialName = "Trawl/Wire2"
NumCableFaces = "5"
DrawScale = "3"
/>
<El3
NumElements = "1"
D = "0.019"
E = "1E+011"
NodeConnections = "5, 1"
Density = "7900"
DampingRatio = "0"
AddedWeightInWater = "0"
MaxTension = "1E+006"
MeanTension = "0"
NumericalDamping = "1"
MaterialName = "Trawl/Wire2"
NumCableFaces = "5"
DrawScale = "3"
/>
<El4
NumElements = "1"
D = "0.019"
E = "1E+011"
NodeConnections = "5, 2"
Density = "7900"
DampingRatio = "0"
AddedWeightInWater = "0"
MaxTension = "1E+006"
MeanTension = "0"
NumericalDamping = "1"
MaterialName = "Trawl/Wire2"
NumCableFaces = "5"
DrawScale = "3"
/>
<El5
NumElements = "1"
D = "0.019"
E = "1E+011"
NodeConnections = "4, 3"
Density = "7900"
DampingRatio = "0"
AddedWeightInWater = "0"
MaxTension = "1E+006"
MeanTension = "0"
NumericalDamping = "1"
MaterialName = "Trawl/Wire2"
NumCableFaces = "5"
DrawScale = "3"
/>
</CableElements>
</BranchedCable>

Input Ports

Name Width Description
Pos1...Pos<NumExternalConnections> 3 Position of each external connection.
Vel1...Vel<NumExternalConnections> 3 Velocity of each external connection.
Length1...Length<NumCables> 1 Length of each cable section

Output Ports

Name Width Description
Force1..Force<NumExternalConnections> 3 Force on each external connection.
Tension1..Tension<NumExternalConnections> 1 Tension in the element connected to each exxternal connection.
Length1...Length<NumCables> 1 The stretched length of each cable section.

Configuration parameters

Name Width Description
File 1 Path of the configuration file, relative to the directory of the main input file; failing that, to the working directory.

Configuration parameters in the General-tag of the input file in the BranchableCable-object.

These properties may be overridden by the specification of the individual cable elements.

Name Width Description
NumNodes 1 The total number of nodes.
NumCables 1 The total number of cables.
NumCableFaces 1 The visual number of faces on the cable. E.g. 4 would render the cable as a bar with rectangular cross sections.
NumExternalConnections 1 The number of external connections.
FluidRho 1 The water density.
NumericalDamping 1 The amount of artificial numerical damping.
MaxStepLength 1 The maximum integration step length.
AdaptationPeriod 1 If above zero, the elements correct the length errors of their decreased stiffness, so that the stretched length approaches that of an element with the correct elasticity: the mean tension starts at MeanTension and follows the element's tension with the time constant AdaptationPeriod [s], so that under a constant load it reaches the load and the strain that of the full stiffness; advanced once per integrator step, in PreOdeFcn from the step's start state, and held for every evaluation of the step (owner rulings R64, MARE-0358).
StepSafetyFactor 1 How concervative should the integration time step adjustmnent be.
DrawScale 1 The visual scale of the cables.
MaxLengthChangeSpeed 1 How fast are the cables allowed to change length.

Configuration parameters in the CableElements-tag of the input file in the BranchableCable-object.

These parameters are specified within each cable element (see the <El> tags in the code above)

Name Width Description
NodeConnections 2 The nodes the element connects to.
NumElements 1 Number of internal elements.
Density 1 Density of the element.
NumericalDamping 1 Numerical damping of the element.
D 1 Diameter of the element.
E 1 Elasticity modulus of the element.
DampingRatio 1 The damping ratio of the element.
FluidRho 1 The density of the surrounding fluid.
MaxTension 1 The maximum tension of the element.
MeanTension 1 The start value of the element's mean tension [N] (see AdaptationPeriod).
AdaptationPeriod 1 The time constant of the element's mean tension [s] (see the General AdaptationPeriod).
MaterialName 1 The name of the material to use for the visualisation of the element.
NumCableFaces 1 The visual number of cable faces of the element.
DrawScale 1 The visual scale of the element.

Initial conditions

Name Width Description
<name>Sec0...<name>Sec<NumCables-1> 6 per internal node of the section The internal states of cable section N (numbered from 0).
Pos_<NumExternalConnections+1>...Pos_<NumNodes> 3 The position of connection node N. Only the internal nodes have states; the external connection nodes are driven by the Pos input ports.
Vel_<NumExternalConnections+1>...Vel_<NumNodes> 3 The velocity of connection node N. Only the internal nodes have states.

Full example file

<Contents>
<OBJECTS>
<Lib
LibName = "marine_elements"
SimObject = "Cable/Branched"
File = "BranchableCableInput.xml"
Name = "CB"
/>
<Lib
LibName = "fhsim_environment"
SimObject = "Environment"
Name = "Env"
RandomSeed = "12345"
Waves.Model="Component"
Waves.NumWaves="0"
Bathymetry.Depth = "190"
Bathymetry.Model = "SumOfSines"
Bathymetry.NumStructures = "10"
Bathymetry.StructureLengthMax = "50"
Bathymetry.StructureLengthMin = "10"
Bathymetry.StructureMaxHeight = "3"
Visual.WorldRadius = "100"
Visual.Vertices = "170,170"
Current.Model = "Constant"
Current.Vector = "1,0,0"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
CB.Length1 = "100"
CB.Length2 = "100"
CB.Length3 = "100"
CB.Length4 = "100"
CB.Length5 = "100"
CB.Vel1 = "0,0,1"
CB.Vel2 = "0,0,1"
CB.Vel3 = "0,0,1"
CB.Vel4 = "0,0,1"
CB.Pos1 = "0,0,-10"
CB.Pos2 = "-10,10,10"
CB.Pos3 = "0,10,10"
CB.Pos4 = "10,10,10"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
/>
</INITIALIZATION>
<SIMULATION>
<Timing TStart="0" TEnd="100"/>
<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:states" -> configure via <OBSERVERS> section -->
</SIMULATION>
</Contents>

This SimObject is referred to as Cable/Branched