Marine systems simulation
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. 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.
Todo:
Check and finish documentation, and check example file.

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"
MaxAcceleration = "1000"
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> 3 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> 3 The stretched length of each cable.

Configuration parameters

Name Width Description
File 1 Relative path to a configuration file for the simObject. Only specifying the filename, places the file in the current working directory, i.e. the bin-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.
MaxAcceleration 1 An artificial limit on how fast any node is allowed to accelerate.
AdaptationPeriod 1 How fast the cable elements initial lengths are adjusted to make the actual stretched length equal that of an element with the correct elasticity.
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.
MaxAcceleration 1 The maximum acceleration of fthe element.
MeanTension 1 The expected average tension of the element.
AdaptationPeriod 1 The speed of adaptation of the element.
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>Sec<NumCables> 6*NumNodes The initial value of each internal state of cable section N.
Pos_<1>...Pos<NumNodes> 3 The position connection node N.
Vel_<1>...Vel<NumNodes> 3 The velocity of connection node N.

Full example file

<Contents>
<OBJECTS>
<Lib
LibName = "marine_elements"
SimObject = "Cable/Branched"
File = "BranchableCableInput.xml"
Name = "CB"
/>
<Lib
LibName = "base"
SimObject = "Environment/Basic"
Name = "Env"
MeanDepth = "190"
BottomRoughness = "5"
SurfaceTextureScale = "1000"
BottomTextureScale = "15"
BottomStructureScale = "50"
TerrainRadius = "100"
SurfaceDepth = "0"
NumTerrainRings = "170"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
Env.CurrentVel = "0.5,0,0"
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>
<INTEGRATION>
<Engine
IntegratorMethod = "2"
NumCores = "1"
TOutput = "0, 1, 100"
LogStates = "0"
Stepsize = "1e-4"
HMax = "100"
HMin = "1e-6"
AbsTol = "1e-7"
RelTol = "1e-7"
UseRSSNormInsteadOfInfNorm = "0"
FileOutput = "objects:states"
/>
</INTEGRATION>
</Contents>

This SimObject is referred to as Cable/Branched