68. A-frame launch and recovery
The identification tag for this tutorial is PDS-ACB. Pregenerated input files for this tutorial are found in the folder named PDS-ACB in the provided tutorial input files.
68.1. Tutorial overview
This tutorial covers:
- Simulating a barge and an articulated A-frame using the RigidBody DObject
- Simulating lifting wire and payout using the Cable DObject
- Creating an A-frame that can be moved inboard or outboard using an ABA connection

Fig. 68.1 Launch barge with A-Frame
68.2. Creating the Barge
- Create a new RigidBody and name it Barge.
Note
- For this simulation, the barge motions will be ignored, therefore, we will kinematically constrain the RigidBody’s position is space.
- In the RigidBody input file, set the
$Kinematic
flag to 1.
Note
- Since the motions of the barge are ignored, it’s mass properties can be left as default.
- Add a cuboid feature called hull to the rigid body for visualization purposes:
$Cuboid hull 0.0 0.0 0.0 0.0 0.0 0.0
- With the cursor on the
$Cuboid
entry, press F12 to auto-generate or navigate to the hull Cuboid feature’s library entry.
Note
- The Barge’s reference frame will remain at the global origin (0,0,0) m.
// Added Mass Coefficients
$CAx 1
$CAy 1
$CAz 1
// Dimensions
$LengthX 40
$LengthY 15
$LengthZ 4
// Drag Coefficients
$CDt 0
$CDx 1
$CDy 1
$CDz 1
// Fluid loading
$WindLoading 0
$HydroLoading 0
$HydrostaticFroudeKrylov 0
// Mesh
$SegmentsX 5
$SegmentsY 5
$SegmentsZ 5
// Soil loading
$SoilLoading 0
68.3. Creating the A-frame
- Create a new RigidBody named A-Frame.
Note
- The A-Frame’s reference frame will be located at its pivot point. This is done so that it is straightforward to reference connection locations with the barge and the lifting cable.
- An assumption is made that the A-Frame can handle the loads without deflection. So the A-Frame’s motion will be kinematically constrained.
- Because the dynamics of the A-frame and A-Frame will not be modeled, the mass properties of the A-Frame can be left as default.
- In the A-Frame RigidBody input file, set the
$Kinematic
flag to 1.
Note
- We will use primitive cuboid shapes to provide the A-frame’s geometry for visualization.
- Create a 13 m x 1 m x 1 m cuboid named crossBeam aligned along the Y axis and add it to the A-Frame.
- Add the cuboid to the RigidBody with
$Cuboid crossBeam -20.0 0.0 0.0 0.0 0.0 0
.
Note
- The crossBeam cuboid feature properties should look like the following:
// Added Mass Coefficients
$CAx 1
$CAy 1
$CAz 1
// Dimensions
$LengthX 1
$LengthY 13
$LengthZ 1
// Drag Coefficients
$CDt 0
$CDx 1
$CDy 1
$CDz 1
// Fluid loading
$WindLoading 0
$HydroLoading 0
$HydrostaticFroudeKrylov 0
// Mesh
$SegmentsX 5
$SegmentsY 5
$SegmentsZ 5
// Soil loading
$SoilLoading 0
- Create two 20 m x 1 m x 1 m cuboids named vertBeam aligned along the X axis and add them to the A-Frame.
- The cuboids can be added with
$Cuboid vertBeam -10.0 6.0 0.0 0.0 0.0 0.0
and$Cuboid vertBeam -10.0 -6.0 0.0 0.0 0.0 0
.
Note
- The vertBeam cuboid feature properties should look like the following:
$CAx 1
$CAy 1
$CAz 1
// Dimensions
$LengthX 20
$LengthY 1
$LengthZ 1
// Drag Coefficients
$CDt 0
$CDx 1
$CDy 1
$CDz 1
// Fluid loading
$WindLoading 0
$HydroLoading 0
$HydrostaticFroudeKrylov 0
// Mesh
$SegmentsX 5
$SegmentsY 5
$SegmentsZ 5
// Soil loading
$SoilLoading 0
68.4. Revolute joint connection between the A-frame and the Barge
- Click the Connection button to bring up the Create new connection dialog.
- Select the Barge for the master object, the A-Frame for the follower object, and ABA for connection type.
Note
- The auto-generated connection name of Barge_A-Frame_ABA can be kept or modified.
- The connection properties should be set as follows:
// Mechanical
$MasterConnectionLocation -19 0 -2 0 0 0
$FollowerConnectionLocation 0 0 0 0 0 0
$Joint 1
$RevoluteJointAngular jointProperties
$FollowerJointAxis 1
// Uncategorized properties
// $PrismaticJointLinear jointProperties
Note
- By connecting the A-frame by an ABA revolute joint connection, the A-frame changed from being a 6DOF RigidBody to a 1DOF RigidBody. The A-frame’s state must be set accordingly.
- Select the A-frame RigidBody from the simulation tree and click the State button in the menu to bring up the A-frame’s state properties.
- Change the RigidBody’s state generation method to ABA.
- Change the Required degrees of freedom to one.
- Set the values of velocity and position/angle to 0.0 deg/s and -60.0 deg respectively.
Note
- Different outboard angles of the A-frame can be achieved by adjusting the state.
- Prescribe a non-zero angular rate in the state to achieve a moving A-frame in the simulation.
68.5. Create the equipment package
- Create a new RigidBody named Equipment.
- Define the Equipment’s inertial properties,
$Ix
,$Iy
,$Iz
and$Mass
, as: 1.0e3 kgm2 , 1.0e3 kgm2, 1.0e3 kgm2 and 1.0e4 kg, respectively. - Change the Equipment’s state so its reference frame is positioned at (-29,0,-2) m with respect to the global reference frame.
- Assign a 2 m x 5 m x 0.5 m cuboid feature named Load to the Equipment located at the Equipment’s body-fixed reference frame:
$Cuboid load 0.0 0.0 0.0 0.0 0.0 0.0
. - Define the Equipment’s library properties as:
// Added Mass Coefficients
$CAx 1
$CAy 1
$CAz 1
// Dimensions
$LengthX 2
$LengthY 5
$LengthZ 0.5
// Drag Coefficients
$CDt 0
$CDx 1
$CDy 1
$CDz 1
// Fluid loading
$WindLoading 1
$HydroLoading 1
$HydrostaticFroudeKrylov 1
// Mesh
$SegmentsX 5
$SegmentsY 5
$SegmentsZ 5
// Soil loading
$SoilLoading 1
68.6. Creating the lifting lines
- Create two Cable objects called LiftingLineSB and LiftingLineP.
- Change the
$CableSegment
parameter for both cables to$CableSegment AmsteelBlue40mm 10
and create the AmsteelBlue40mm CableSegment library entry. - Change the properties of the AmsteelBlue40mm library entry to:
// Axial Rigidity
$AxialRigidityMode 0
$EA 3.556E7
// Fluid loading
$CDc 1.5
$CDt 0.01
$CAc 1
//Mechanical
$EI1 3.556E3
$EI2 3.556E3
$GJ 3.556E3
$Diameter 0.04
$Density 771.9
$AxialDampingMode 1
$AxialReferenceDampingRatio 0.5
$BCID 10
$TCID 0
$CE 0
$BuoyancyDiameter 0.0355
- Change LiftingLineSB’s state so node 0 is located at (-29.0,2.0,-19.0)m and node N is located at (-29, 2,-2.25) m.
- Give LiftingLineSB 3 elements and a length of 17.1 m.
- Change LiftingLineP’s state so node 0 is located at (-29,-2,-19) m and node N is located at (-29, -2,-2.25) m.
- Give LiftingLineP 3 elements and a length of 17.1 m.
68.7. Connecting the cables to the A-frame and Equipment
- Create a new connection with the A-frame as master and the LiftingLineSB as follower as a point connection type.
- Define the connection’s properties as:
// Mechanical
$DCableFollowerNodeN 0
$DCableFollowerLocation -20 2 0
- Create a new connection with the A-frame as master and the LiftingLineP as follower as a point connection type.
- Define the connection’s properties as:
// Mechanical
$DCableFollowerNodeN 0
$DCableFollowerLocation -20 -2 0
- Create a new connection with the Equipment as master and the LiftingLineSB as follower as a point connection type.
- Define the connection’s properties as:
// Mechanical
$DCableFollowerNodeN 1
$DCableFollowerLocation 0 2 -0.25
- Create a new connection with the Equipment as master and the LiftingLineP as follower as a point connection type.
- Define the connection’s properties as:
// Mechanical
$DCableFollowerNodeN 1
$DCableFollowerLocation 0 -2 -0.25
- Run the simulation and visualize the results.
Note
- The load should remain suspended on the lifting lines. Some small oscillations should be noticeable until the system reaches a steady state.
68.8. Paying out cable
- In both cables’ input files, add
$Node0Payout 1
.
Note
- This tells the cable to payout cable at Node 0 at a constant rate.
- In both cables’ input files, add
$Node0PayoutSpeed 0.1
.
Note
- This tells the cables to payout cable at a constant rate of 0.1 m/s.
68.9. Adjusting the soil properties
- In the environment input file, set the water depth to be 5 m (
$Depth 5
). - Run the simulation for 60 seconds and visualize the results.
Note
- The Equipment should lower down to the sea floor as the cable is payed out. The load will come to rest on the floor (or slightly below the sea floor due to a low default soil stiffness).
- In the environmentSoil feature’s library entry, change the soil properties to the following to prevent the equipment from penetrating into the seabed:
// Mechanical
$KNSoil 1e5
$CNASoil 1e4
$CNBSoil 0.0
$MuSoil 0.2
$MuNormalSoil 0
$DeadZoneVel 0.001
- Rerun simulation.
Note
- Notice the updated penetration depth of the equipment platform.