63. Hydrodynamic feature

The identification tag for this tutorial is PDS-ABT. Pregenerated input files for this tutorial are found in the folder named PDS-ABT in the provided tutorial input files.

63.1. Tutorial overview

This tutorial covers:

  • High-level overview of creating a hydrodynamic database using a potential flow solver
  • Using the ProteusDS RigidBodyRadDiffHydrodynamic feature
  • Replacing RigidBodyRadDiffHydrodynamic’s linear hydrostatic model with a non-linear buoyancy model
  • Replacing RigidBodyRadDiffHydrodynamic’s viscous resistance model with a different viscous loading model
  • Single point mooring
alternate text

Fig. 63.1 RigidBody DObject floating in waves

63.2. Using a hydrodynamic database in ProteusDS

Note

  • The RigidBodyRadDiffHydrodynamic feature can be used to model wave radiation forces, wave excitation forces including diffraction, hydrostatic forces and some viscous resistance forces.
  • It is reasonable to ignore radiation and diffraction loads when the characteristic length of the object in question can be said to be much smaller than the incident wavelengths, as described in Fig. 63.2. This is not the case for the 20 m by 20 m by 2 m barge, as the wavelength of the incoming waves is on the same order as the length of the barge.
  • To include wave radiation and diffraction loading in PDS, a database of the added mass, damping and loading as a function of wave frequency, heading and potentially also forward speed is required. This database can be obtained using a frequency domain potential flow solving tool such as ShipMo3D or WAMIT.
  • Incident wave loads, hydrostatic loads, and viscous resistance loads can be disabled and instead computed using a different RigidBody feature such as the Cuboid feature as discussed in Section 63.8 and Section 63.11.
  • More information on the hydrodynamic feature can be found in the ProteusDS User Manual. If you do not have a potential flow solving tool, you may skip to Section 63.3 and use the pre-generated database provided with this tutorial.
alternate text

Fig. 63.2 RigidBody DObject floating in waves

63.3. Creating the hydrodynamic database

  • Using a panel method potential flow hydrodynamics solver (e.g. ShipMo3D, WAMIT, InWave, Moses), define the floating body’s geometry as a flat 20 m by 20 m block with a height of 2 m, a draft of 1 m and the CG located in the geometric center.
  • Generate a mesh for the solver using around 1000 panels as shown in Fig. 63.3.
  • Compute a hydrodynamic forces database using the mesh, including radiation and diffraction effects.
alternate text

Fig. 63.3 20 m × 20 m × 2 m box as meshed by ShipMo3D, showing wet hull only

Note

  • It is important that the infinite frequency added mass and damping are properly reflected by the highest frequency entries in the database. That is, the frequency dependent added mass and damping results should have converged to the infinite frequency values for the highest frequencies in the database.
  • Wave excitation loads can be computed from the same headings and speeds but only require data for the frequency range that will be encountered in simulation.
  • Compute wave excitation forces for a range between 0.2 rad/s to 4 rad/s with 0.2 rad/s increments. This will create a coarse database for computing hydrodynamic forces with a large enough range to cover any waves the block might encounter.

Note

  • For waves modeled using a spectrum like JONSWAP, ProteusDS will create waves of 1/4 of the peak frequency to 4x the peak frequency.
  • Define the radius of gyration of 5.8 m, 5.8 m and 8.2 m for the body about its \(\mathbf{\hat{x}}\), \(\mathbf{\hat{y}}\), and \(\mathbf{\hat{z}}\) axes respectively.

Note

  • Forward resistance coefficients based on wetted surface area can be provided to ProteusDS as a function of forward speed to model forward motion resistance for ships. Lateral drag coefficients can also be defined which themselves are based on the submerged lateral projected area. For this tutorial, these resistance models will be disabled and modeled using a Cuboid feature; this is discussed in Section 63.5.
  • After creating the database, it must be exported to the input ProteusDS format. Save the file as 20x20x2Block.ini. ShipMo3D has this export function in the BuildShip interface.

Note

  • The parameters required in the database are defined in the RigidBody section of the ProteusDS Input Files appendix in the manual.

63.4. The hydrodynamic database feature frame

Note

  • To integrate a hydrodynamic feature into ProteusDS, the hydrodynamic database feature frame must be defined. The feature frame defines the reference frame used by the feature. The hydrodynamic coefficients are defined relative to the center of loading (CL) frame which can be located offset from the feature frame if convenient. Both the feature frame and CL frame have the same orientation as the RigidBody object’s body-fixed frame. ShipMo3D exported hydrodynamic databases have the feature frame defined at the stern baseline of the ship, the CL location is automatically determine by ShipMo3D’s exporter.
  • The feature frame (F), RigidBody object local frame (B), and center of gravity or center of loading position (CL,CG) are shown in Fig. 63.4 for an example scenario. In this example, the feature frame was defined about the stern baseline of the ship (as in ShipMo3D).
  • The property $CLPositionFromBaseLine is in the hydrodynamic database file defines the location of the center of loading with respect to the feature frame (F). In this example, if the CL for the database is at the CG, the property is set to: $CLPositionFromBaseLine c 0 -(a+b) [1] .
  • The property $CLPositionFromWaterline in the hydrodynamic database file defines the z offset of the center of loading from the water line. In this example, this property is set to: $CLPositionFromWaterline a.
  • The property $RadDiffHydrodynamicModel in the RigidBody object input file defines the location of the hydrodynamic database feature frame relative to the RigidBody object frame. In this example, this property is set to: $RadDiffHydrodynamicModel radDiffFeatureName -c 0 0.
  • In this example the RigidBody object frame is not coincident with the center of gravity position, therefore, the property $CGPosition must be set. This property sets the center of gravity position relative to the RigidBody object frame. For this example the property is set to: $CGPosition 0 0 -(b+a).
alternate text

Fig. 63.4 Feature frame, CL/CG position and RigidBody frame example

63.5. The hydrodynamic database

  • View the contents of the 20x20x2Block.ini file that was produced in the previous section (This file is contained in the ProteusDS Required Tutorial Files archive).

Note

  • Note how there are a large number of ProteusDS properties defined here.
  • These properties once loaded into ProteusDS provide the database required to compute hydrodynamic forces as a function of forward speed, encounter frequency and heading.
  • One property worth noting is $CLPositionFromBaseLine which defines the location of the center of loading for the database relative to the feature frame as shown in Fig. 63.5.
  • For more information on the various parameters defined in this file, refer to the RigidBodyRadDiffHydrodynamic feature section of the ProteusDS manual.
alternate text

Fig. 63.5 The feature frame for the 20 m x 20 m x 2 m box showing the location of the center of loading frame.

63.6. Using the hydrodynamic feature

Note

  • This section assumes that a hydrodynamic database was exported/converted from a potential flow solver to ProteusDS’ hydrodynamic database input file format. This database can be created by following the previous sections, or the reader can use the database provided with this tutorial as a file named 20x20x2Block.ini.
  • In PST, create a new project and move the hydrodynamic database that was created or provided, 20x20x2Block.ini, into the project folder.
  • Create a new RigidBody object and call it barge.
  • Set the barge mass and moments of inertia as shown in the RigidBody properties below.
// Mechanical
$Ix 1.38e7
$Iy 1.38e7
$Iz 2.7e7
$Ixy 0
$Ixz 0
$Iyz 0
$Mass 4.1e5

Note

  • All environmental loading for the barge will be handled by the RigidBodyRadDiffHydrodynamic feature. The feature uses the hydrodynamic database which contains frequency dependent added mass and damping data. Incident wave loads, wave diffraction loads, hydrostatic loads, wave radiation loads will be calculated and applied to the barge.
  • Create a RigidBodyRadDiffHydrodynamic feature and call it hydroBlock.
  • Add the property $RadDiffHydrodynamicModel hydroBlock -10 0 1 to barge. The last 3 numbers specify the \(\mathbf{\hat{x}}\), \(\mathbf{\hat{y}}\), and \(\mathbf{\hat{z}}\) coordinates of the feature frame relative to the barge body-fixed frame.
  • In the hydroBlock feature properties, ensure the $HydrodynamicDatabaseFile is referring to the correct database file (20x20x2Block.ini), and that the file is located in the simulation input directory.
  • Disable the viscous resistance model by setting $ResistanceLoading to 0. Viscous force modeling will be handled using a Cuboid feature, described in Section 63.8.
  • Disable $ExtraStiffnessDampingLoading, as those effects will not be modeled in this tutorial.

Note

  • The hydroBlock feature’s properties should look as follows:
// Data
$HydrodynamicDatabaseFile 20x20x2Block.ini

// Fluid loading
$IncidentLoading 1
$DiffractionLoading 1
$WaveRadiationLoading 1
$HydrostaticLoading 1
$ResistanceLoading 0
$LoadScaling 0
$ExtraStiffnessDampingLoading 0

63.7. Setting up the Environment

Note

  • The barge will be placed in a single Airy wave. It should follow the wave motion.
  • Set the depth of the water to 100 meters.
  • Initialize waves to 7 second 1.5 meter Airy waves heading North (0 degrees).
// Air
$AirDensity 1.29
$AirKinematicViscosity 1.568E-05

// Current
$CurrentProfile 0
$CurrentShielding 0

// Environment Transition
$EnvironmentTransitionMode 1
$CurrentTransitionMode 0
$WindTransitionMode 0
$WaveTransitionMode 1
$WaveStartTime 0
$WaveRampDuration 10

// Instrumentation
$WaveStatsProbe 0 0

// Mean water level
$MeanWaterLevelTransitionMode 0
$MeanWaterLevel 0

// Seabed
$WaterDepth 1000
$CustomBathymetry 0
$SoilProperties environmentSoil
$UseMultipleSoilLayers 0

// Water
$WaterDensity 1025
$WaterKinematicViscosity 1.8E-06

// Wave
$WaveType 1
$WaveHeading 0
$WavePeriod 7.0
$WaveHeight 1.5

// Wind
$WindProfile 4

63.8. Creating CustomMesh for viscous modeling and for visualization

Note

  • The RadDiffHydrodynamicModel does not create a mesh for PostPDS to visualize. A separate feature can be defined with all environmental loading disabled for visualization purposes. Here, a Cuboid feature will be used to both provide a mesh for visualization as well as to provide viscous load modeling.
  • Add a RigidBodyCuboid feature called viscousVizBlock with the following properties.
// Added Mass Coefficients
$CAx 0
$CAy 0
$CAz 0

// Dimensions
$LengthX 20
$LengthY 20
$LengthZ 2

// Drag Coefficients
$CDt 0
$CDx 1
$CDy 1
$CDz 1

// Fluid loading
$WindLoading 0
$HydroLoading 1
$HydrostaticFroudeKrylov 0

// Mesh
$SegmentsX 5
$SegmentsY 5
$SegmentsZ 5

// Soil loading
$SoilLoading 1

Note

  • Note that $HydrostaticFroudeKrylov model is disabled. This is because the RadDiffHydrodynamic feature is already modeling the hydrostatic forces. Enabling it would result in double counting of buoyancy and incident wave forces.
  • Wind modeling is not important for this tutorial, it has also been disabled.
  • The added mass coefficients were set to 0 since the RadDiffHydrodynamic feature is already modeling that effect.
  • The $HydroLoading parameter enables the modeling of viscous forces. Viscous forces are affected by the drag coefficients $CDx, $CDy and $CDz for modeling drag based on frontal area as well $CDt for modeling drag based on wetted surface area. For more information on how the Cuboid feature models viscous forces, the reader is referred to the ProteusDS manual.
  • The Cuboid feature’s mesh resolution is set using $SegmentX, $SegmentY and $SegmentZ which defines how the Cuboid is discretized in the X, Y and Z directions respectively. They are all set to 5 which creates a mesh with 150 faces. The resolution of the environmental forces will converge with increasing mesh resolution.
  • Add the Cuboid feature to the RigidBody at the RigidBody reference frame with the same orientation.
// Mechanical
$Ix 1.38e7
$Iy 1.38e7
$Iz 2.7e7
$Ixy 0
$Ixz 0
$Iyz 0
$Mass 4.1e5

$RadDiffHydrodynamicModel hydroBlock -10 0 1

$Cuboid viscousVizBlock 0 0 0 0 0 0

63.9. Adding a mooring line

  • Add a cable called mooring.
  • Set the state such that node 0 is at (0,0,0) m and node N is at (10,0,100) m.
  • Set the cable length to 100 m with 10 cable elements.
  • Connect the cable to the barge at the center.
  • Create the anchor point at node N by enabling the $NodeNStatic flag.

63.10. Run the simulation

  • Run the simulation for 20 seconds.

Note

  • Watch the motion of the barge and check to be sure that it is following the wave motions.

63.11. Modeling buoyancy and incident wave using non-linear models

Note

  • If non-linear buoyancy and incident wave loads are important to accurately capture the dynamics of the system, the hydrostatic and incident wave loads can be disabled in the RigidBodyRadDiffHydrodynamic feature and modeled with a CustomMesh feature instead.
  • CustomMesh based non-linear buoyancy and incident wave loading comes at the cost of execution speed over the HydrodynamicDatabase feature’s hydrostatic and incident wave loading.
  • Disable the $IncidentLoading and $HydrostaticLoading parameters in the RigidBodyRadDiffHydrodynamic feature’s properties:
// Data
$HydrodynamicDatabaseFile 20x20x2Block.ini

// Fluid loading
$DiffractionLoading 1
$HydrostaticLoading 0
$IncidentLoading 0
$WaveRadiationLoading 1
$ResistanceLoading 0
$LoadScaling 0
$ExtraStiffnessDampingLoading 0

Note

  • Non-linear buoyancy and Froude-Krylov forces will be modeled by the cuboid mesh.
  • The Cuboid feature’s Buoyancy and Froude-Krylov modelling component computes the same hydrostatic and incident wave loading forces as the RigidBodyRadDiffHydrodynamic feature except that can handle variable submergence more accurately for large displacements since it is a non-linear model.
  • Ensure $HydrostaticFroudeKrylov is set to 1 in the viscousVizBlock properties.
// Added Mass Coefficients
$CAx 0
$CAy 0
$CAz 0

// Dimensions
$LengthX 20
$LengthY 20
$LengthZ 2

// Drag Coefficients
$CDt 0
$CDx 1
$CDy 1
$CDz 1

// Fluid loading
$HydroLoading 1
$WindLoading 0
$HydrostaticFroudeKrylov 1

// Mesh
$SegmentsX 5
$SegmentsY 5
$SegmentsZ 5

// Soil loading
$SoilLoading 1

Note

  • The Cuboid feature’s Buoyancy and Froude-Krylov modeling component computes the same hydrostatic and incident wave loading forces as the RigidBodyRadDiffHydrodynamic feature except that can handle variable submergence more accurately for large displacements since it is a non-linear model.

63.12. Rerun the simulation

  • Run the simulation for 20 seconds.

Note

  • Watch the motion of the barge and check to be sure that it is following the wave motions.

Footnotes

[1]The $CLPositionFromBaseLine property is misleadingly named. The property defines the position of the center of loading with respect to the hydrodynamic database feature frame location, and not necessarily the baseline.