34. RigidBody with Cylinder feature
The identification tag for this tutorial is PDS-AAY. Pregenerated input files for this tutorial are found in the folder named PDS-AAY in the provided tutorial input files.
34.1. Tutorial overview
This tutorial covers:
- Creating a RigidBody DObject
- Setting RigidBody state
- Creating a RigidBody Cylinder feature

Fig. 34.1 RigidBody DObject floating in waves
Fig. 34.2 Rigid body with cylinder layout
34.2. Creating a RigidBody
Note
- A RigidBody represents an inelastic structure with 6 degrees of motion freedom. It can respond to loading from current, wave, wind, soil, as well as other DObjects.
- Create a new project in PST and add a new RigidBody DObject.
- Navigate to the RigidBody input file. The core properties of a RigidBody DObject are the moments of inertia, products of inertia, and mass.
Note
- The RigidBody is defined by the global position, orientation, and velocity of a local coordinate frame that is fixed to the body.
- Use the following mass and moments of inertia:
// Mass properties
$Ix 1e5
$Iy 1e5
$Iz 1e5
$Ixy 0
$Ixz 0
$Iyz 0
$DefineInertiaAboutCG 1
$CGPosition 0 0 3
$Mass 1e5
Note
- By design, the RigidBody will be 50% submerged when the cylinder hull is added. The moment of inertia values are set arbitrarily.
- The moments and products of inertia can be defined about the RigidBody coordinate frame or about the center of gravity by using the optional flag
$DefineInertiaAboutCG
. By default, the values are defined about the RigidBody local coordinate frame.
- By design, the cylinder hull sits vertically in the water. To keep it stable in this position so it does not fall at on the water, the center of gravity is set 3 m along the Z axis of the RigidBody local frame by specifying:
$CGPosition 0 0 3
. - Add the flag
$DefineInertiaAboutCG 1
. This indicates that the mass moment of inertia values specified are about a corresponding frame located at the CG location. This will result in an automatic parallel axis computation to determine the total equivalent inertia seen at the RigidBody local frame.
34.3. Defining the RigidBody state
Note
- Rigid bodies have 6 degrees of freedom: velocity and position in the X, Y, and Z direction as well as roll, pitch, and yaw Euler angles and Euler angle rates that orient it with respect to the global reference frame. Like other DObjects, all initial positions and velocities must be set in the DObject.dat file prior the running the simulation.
- While viewing the RigidBody input file, click the State button. Choose a location at (3,3,-5) and angle orientation of roll, pitch, and yaw (heading) of 45,0,0, respectively, and with all velocities set to 0. This will place the DObject 3 meters from the origin in the X and Y direction and 5 m above the water surface. The DObject will also start with a roll angle of 45 degrees.
- The RigidBody state can also be generated by the custom option in the initial state window. This allows the user to input value directly into the state section of the .dat file, which contains state information. Select State button (Ctrl-K) and select Custom from the generation method drop down box.
- The custom state data file follows the format \([V_x, V_y, V_z, \dot{\phi}, \dot{\theta}, \dot{\gamma}, P_x, P_y, P_z, \phi, \theta,\gamma]\). Enter the following values into the custom text window to create the same initial state as above.
<state>
0
0
0
0
0
0
3
3
-5
45
0
0
</state>
Note
- More information on the RigidBody state can be found in the ProteusDS User Manual.
34.4. Creating and adding RigidBody features
Note
- A RigidBody needs features to give it a physical presence in order to compute environmental loads from currents, waves, wind, and soil.
- Basic geometric shapes such as cylinders can be easily defined. Alternatively, a custom shaped hull mesh file can be imported. For this tutorial, a cylinder will be used.
- Add a new RigidBodyCylinder feature to the library by clicking Feature. Use the name float.
- The cylinder properties are defined in the cylinder library feature under the name float. Use a diameter of 5 m and length of 10 m and leave the remaining parameters at default values.
Note
- The axial, angular, and radial segments properties are used to generate a polygonal mesh of the cylinder for drag, added mass, and buoyancy loads. More segments in the cylinder results in more polygonal faces and therefore higher accuracy for the calculations performed. However, having too many segments may result in slower simulation speed.
- The
$WindLoading
and$HydroLoading
properties toggle wind and hydrodynamic forces acting on the feature. - The
$HydrostaticFroudeKrylov
property determines whether Froude-Krylov forces will act on the feature by a surface integral of the undisturbed water pressure field over the wetted mesh surface.
// Added Mass Coefficients
$CaAxial 1
$CaNormal 1
// Dimensions
$Diameter 5
$Length 10
// Drag Coefficients
$CDt 0
$CdAxial 1
$CdNormal 1
// Fluid loading
$WindLoading 1
$HydroLoading 1
$HydrostaticFroudeKrylov 1
// Mesh
$AxialSegments 10
$RadialSegments 3
$AngularSegments 8
// Soil loading
$SoilLoading 1
Note
- Features and connections are located with a fixed position and orientation with respect to the RigidBody local coordinate frame. Multiple cylinders and custom mesh features can be applied to a RigidBody.
- The cylinder feature will be used as the hull for the RigidBody. To add the cylinder to the RigidBody, add to the RigidBody input panel
$Cylinder float 0 0 0 0 0 0
.
Note
- These 6 numbers correspond to the location of the cylinder feature with respect to the local RigidBody frame. The first three numbers correspond to distance in the local x, y, and z direction and the second three numbers correspond to the Euler angles about the RigidBody x, y, and z axes that indicate how the cylinder feature frame has rotated away from the RigidBody frame. Since all location values are 0, the cylinder feature and the RigidBody have coincident coordinate frames.
34.5. Running the simulation and processing results
- Initialize an Airy wave profile with a 3 s period, 1 m wave height, and a heading of 0 deg.
- Set a uniform current with a speed of 1 m/s and a heading of 90 degrees.
- Set a 10 second ramp for both current and waves. Specify
$EnvironmentTransitionMode 1
and resolving follower properties. Set$CurrentTransitionMode 1
and$WaveTransitionMode 1
to ramp current and wave conditions. - Set corresponding ramp durations to 10 seconds.
- Set the simulation to run for 30 s.
- Save the project and click Run Simulation.
- Visualize the simulation using PostPDS
- Right click on the RigidBody DObject in the object tree and display mesh edges. This will show the polygonal mesh edges on the cylinder.