Many offshore operations can be modeled using first order time domain analysis. Setting up the vessels for such a model using orcaflex is easy but not trivial, but in the end it is just book-keeping.

This guide presents a step-by-step guide for setting up a vessel with first order diffraction data from orcawave. It also introduces an alternative way of modeling the hydrostatics by removing the gravity effects from the stiffness matrix. This may sound difficult but it actually makes many things a whole lot easier. Especially if the vessel is composed of multiple elements such as cranes, cargo is placed on it or lifted from it or multiple vessels elements are interconnected. In those situations the standard formulation of hydrostatic stiffness becomes extremely complicated. In those cases you really need this. But also for a simple vessel I recommend to use this method.

This article is a practical guide. In the end it is all just book-keeping. All actions are marked as:

  • do this

But we will start with some theory to outline where we are going.


For a typical first order time-domain simulation involving floating bodies the following information is needed:

  1. Hydrostatics:
    • a. Static fluid effects (Static pressure distribution)
    • b. Static weight effects
  2. Hydrodynamics
  3. Structural inertia

Hydrostatics is the most tricky part as it comprises two components. The static component due to the weight of the vessel as well as the static component due to the displaced fluid. Typically these two are combined, resulting in the familiar GM value. Here G is the gravity acting on the vessel and M is the metacenter, a point derived from linearizing the horizontal displacement of the center of buoyancy due to vessel roll or pitch.

Combining fluid and structure is okay for simple vessels. But when a vessel is composed of multiple parts this combination is very troublesome. The simple solution is to keep fluid and structure separate, which is exactly what we will do.

1a Static fluid effects:

This is simply the water that the vessel displaces when there are no waves. This depends only on the shape of the hull of the vessel. In DAVE this is beautifully implemented using the “buoyancy-shape” node.

In orcaflex this is going to provide the data for vessel-type→stiffness, added mass, damping.

1b Static weight effects:

This is the gravity acting on the vessel and everything on and/or attached to it. This includes ballast tanks, deck cargo, items in a crane, pipes running overboard, mooring.

The good news: all these items will be modeled outside of the vessel and vessel type. They will not interfere with any of the data entered in the vessel-type.

2. Hydrodynamics

These are the fluid forces acting on the vessel due to the motions of the vessel relative to the fluid or the fluid relative to the vessel. This includes forces of waves on the vessel but also the damping of the vessel due to its own motions in still water.

This is the part that orcawave calculates (or any other diffraction package such as wamit, capytaine, etc).

3. Structural inertia

This is the dynamic version of 1b. Again, we will not include this in the vessel-type. Instead it will be included by adding 6D buoys or other items with inertia to the vessel

Product placement

This is exactly how DAVE exports vessels to Orcaflex. Instead of following the rest of this guide you can also do:


During the operation the draft, heel and trim of the vessel may change. However we can only provide hydrodynamic data for a single situation as every vessel can have only a single active set of hydrodynamic properties.

It is recommended to select a draft that corresponds to the draft of the vessel during the most critical part of the operation. For heel and trim it is recommended to use 0 if possible.

  • Choose a single heel, draft and trim to model
    • Heel = ….. (0 degrees)
    • Trim = …… (0 degrees)
    • Draft = …… (6.75m)

Next create a panel model to be used for the diffraction analysis. You will need an external program for this. Export the model such that the origin is horizontally more-or-less in the center. A typical choice is midship or LCF. In this example I’ve used a point 70m in front of the stern just for illustrational purposes.

  • Write down where the horizontal origin of the model is:
    • Panel model origin = …….. (70m in front of stern, centerline)


Orcawave can derive the hydrostatic properties from the panel model. This calculation is as accurate as the panel model. As the panel model normally has only a limited amount of panels it may be that the calculation of the hydrostatic properties is not too accurate. If you have a more accurate source of hydrostatic properties then it is advised to use those.

  • Optional: Write down the hydrostatic properties. Be sure to record relative to which point the values are given. In this case for example the center of flotation is given relative to the stern (example carene table: Derive a carene table from a buoyancy shape — DAVE ( What is needed is the CoB, CoF and the elevations of the metacenters.
    • Displacement = ……. (53291 m3)
    • Awl = …… ( 8821.55 m2)
    • CoF x = …… (98.9 m in front of stern)
    • CoF y = ……. ( 0 m in front of stern)
    • BMt = ……. (26.7 m)
    • BMl = ……. ( 530.2 m)
    • COB x = ….. (103.55 m in front of stern)
    • COB y = …… (0, midship)
    • KB = COB z = …….. ( 3.58 m)

Create the panel model and run orcawave

Since this guide is about orcaflex, it makes sense to use orcawave to calculate fluid forces due to dynamics. If you are unable to use orcawave then capytaine is a nice and free alternative.

In orcawave, from left to right:

  • Units screen:
Is anyone still using anything other than SI ? Really ?
  • Calculation and output screen: This is going to be a first-order simulation. So potential formation is sufficient.
  • Environment screen: Fill in a decent number of frequencies and headings. If the vessel is symmetric in PS and SB then only headings in range 0…180 are needed. For periods cover the full range of needed periods and then something extra.
  • Bodies: screen

Use the draft, heel and trim as selected during the preparations. Advise to leave X,Y and heading at 0.0

The X and Y position of the body do not “really” do anything and neither does the heading. These are only relevant in diffraction analysis with multiple bodies. The only thing they do in a single body analysis is influence the “phase origin” of the produced model. So if you enter anything other than 0 for these numbers then the phase origin of the wave-loads will be different. From the help: “In OrcaWave, the phase origin is at the global origin, so the OrcaFlex RAO phase origins are represented by the coordinates of the OrcaWave global origin relative to the OrcaFlex vessel origin”

  • Inertia Screen:

The only thing of importance here is to

  • Set the Z-value for the CoG to 0.

Inertia is not needed. Enter something that is clearly not correct to avoid confusion. Inertia is only needed to calculate displacement RAOs (which are evil) and second-order effects (which we don’t include in this guide)

  • Constrains, Field points, drawing screen: not needed
  • Mesh View screen:

Marvel at the beauty of your mesh for a moment. Then verify that everything looks nice. The vessel body frame (the axis system shown) should be somewhere in the middle of the vessel.

OrcaWave will cut the mesh at the still water level. If the resulting mesh does not look good (for example tiny parts panels remaining) then consider providing a source-mesh containing only the submerged part of the vessel.

Validation and Mesh details screens

This example mesh gave a lot of warnings. I ignored them all. My advise is to first look at the results of the calculation before starting to fix things. Maybe nothing is broken and nothing needs fixing.

Run the calculation

Run the calculation, this should normally not take too long. If it is taking hours then you are doing something wrong or you have a non-typical shape. A model with less than 2000 panels should be done in a matter of minutes.

  • Check the results. The curves should make sense and should look smooth in general. If they do not then check the scale on the y-axis. Roll may look horrible until you realize that you are looking at roll in head waves and that the values on the y-axis are in the order of 1e-9.

Get the calculated CoG

The last bit of information that we need to obtain in the CoG location.

Now this CoG location is not something we entered. Is was calculated by OrcaWave to be at the same horizontal position as the center of buoyancy that it calculated from the mesh.

We need it when importing hydrodynamic data into orcaflex later on.

  • Write down the CoG location as calculated by orcawave
    • COG x = ……… (33.76m)
    • COG y = ……….. ( 0.0 m )

Load the results into orcaflex

  • Open orcaflex
  • insert a new vessel
  • Open the vessel-type

Vessel type settings

Next thing is to import the data from orcawave.

This is the part that everybody does wrong the first two or three times, so read carefully and I’ll do my best to explain it clearly.

All the data from orcawave, or any other data-set that can be imported, has a position. The wave-forces for example are the forces and moments acting on certain point on the vessel. This point is called the “reference origin”. Every kind of load on the vessel has its own reference origin.

To determine where that point is orcaflex needs a point that is common in both the vessel-type and the imported data-set. That point is the center of gravity. Not because it is the center of gravity, but because it is a point that is always present. Therefore in this context think of the CoG as “just some point”.

  1. The first step is to decide where you want to have the origin of your vessel type in orcaflex. This is something we can choose freely, so make it something convenient. A common used reference position is stern, centerline and keel. Although stern, centerline, deck may also be a good idea.
  2. Then locate that point (stern, centerline, keel) in the panel mesh that was used for the hydrodynamic calculation. This tells you where the panel-mesh origin is relative to this point.
  3. Get the “CoG” position as manually obtained from the orcawave results. In horizontal direction this is the “CoG” position relative to the panel-mesh origin. In vertical direction this is whatever we entered in orcawave relative to the waterline. So if you followed the guide and entered 0 then the “CoG” will be on waterline.

The trick it now to set the vessel-type CoG such that the stern/centerline/keel points from both models will match. Again, this has nothing to do with the actual center of gravity.

  • Set the Centre of gravity to the position that we calculated.
Note: This position is only going to be used for importing the data. So set it BEFORE importing. Changing it afterwards is not going to have any effect
  • Click Import Data
  • Select the output file from orcawave
  • Check the “clear existing data” box.
  • In the requested data, uncheck the Displacement RAOs (remember: evil) and click import.

If you get an “The imported damping matrices were xx% asymmetric.” error, then head over to the “Conventions” tab and set the symmetry to its correct value:

  • In conventions: check the symmetry:
  • Remove all the inertia from the vessel (Remeber that we were going to separate the fluid and the inertia/weight parts of the vessel)
Set Mass and Inertia to something small. Center of gravity can be anything you like. Can you guess what I entered?

Enable local axis (Ctrl + Y) and see that the models mesh has been imported as visual and is at the position where you wanted it to be.

Note: this is the unsolved position, the vessel will not actually fly

And then to the hydrostatics

One of the key elements of this guide is removal of the vessel weight contribution from the hydrostatic matrix. The hydrostatic matrix is defined on the “stiffness, added mass and damping” tab of the vessel-type.

The reference origin is the location where the hydrostatic forces are applied. However it is also the location where the forces due to added-mass and damping are applied. This means that we should never-ever change this location. (Side-note: this is the location of the origin of the panel model but then shifted vertically to the waterline, aka the body frame or refence Bxyz in the orcawave manual).

The reference origin datum position gives the position of the reference origin when the hydrostatic springs are in rest, ie: unstretched. The linear and angular stiffness of these springs is defined in the “hydrostatic stiffness” matrix. Normally in orcaflex this matrix contains contributions from both the interaction with the fluid (metacenter, waterplane area, center of flotation, metacenters) as well as contributions from the displacement of the center of gravity. From the manual: “The hydrostatic stiffness matrix describes the way in which the net weight + buoyancy load varies with changes in position from the datum position”.

Removing the weight component from this matrix makes everything a lot easier and cleaner. And there is more good news: we have already removed it. In orcawave we defined the vertical position of the cog to be zero. This put the cog of the orcawave model at the waterline. At is happens, this is also where the reference origin for the hydrostatics is. The result is that the cog never moves relative to the reference position which makes all its contibutions zero.

TLDR; By putting the cog at the waterline in orcawave, we effectively kept the weight effects out of the hydrostatic stiffness matrix.

If you are ok with using the hydrostatic values as derived from the panel mesh, and you filled in a cog z of 0, then you can just keep the values as imported from orcawave and skip the remainder of this section.

If you have more accurate values for the hydrostatics (ref: preparations) then it is now time to use them.

Left: As derived from panel model / Right: Corrected with more accurate values

  • Replace the displaced volume with the volume as obtained during the preparations
  • Replace the COB with the values as obtained during the preparations. Note: These values are relative to the local vessel axis, not the reference origin

Then the hydrostatic stiffness. Without the weight contribution this is quite straight forward.

These define the hydrostatic springs attached to the reference origin. They model the effect of the displacement of the CoB and the change in buoyancy when this point moves.

 k_heave = Awl * rho * g
 Fbuoy = Displacement volume * rho * g
 COFy : position of the center of flotation relative to the reference origin (positive of cof is on PS of reference origin)
 COFx : position of the center of flotation relative to the reference origin (positive if cof is on bow-side of reference origin)
 Mt_z : vertical position of the transverse metacenter relative to the reference origin
 Ml_z : vertical position of the longitudinal metacenter relative to the reference origin
k_heave-k_heave * COFy-k_heave * COFx
Fbuoy * Mt_z0 (see note)
Fbuoy * Ml_z
Note: except is if there is roll/pitch coupling in the linearized hydrostatics

Weight and Inertia

As said earlier, it is beneficial to model the fluid part of the vessel separately from the structural part. In the previous section the fluid part was put in the vessel-type. Time to define the weight and inertia part.

  • If you did not do this already: remove the inertia from the vessel-type by setting it to almost zero.
  • Add the inertia by defining one or more 6D buoys or other elements and connecting them to the vessel. Don’t forget to set the volume of the buoys to 0 else they will pick-up buoyancy.

Use as many elements as you want. Also you are not restricted to just buoys. Cargo on a contact-surface: fine. Cargo suspended from a line, winch or spring: fine. Moving parts (cranes, trailered cargo items) modelled by constraints that are connected to the vessel: go for it. Really anything you can think of.

Calculation method

Final step is to tell orcaflex how to calculate the vessel motions.

  • For now leave “included in statics” to “None”

We want the motion of the vessel to be calculated based on the forces acting on it.

  • Set primary motion to Calculated (6 DOF)
  • Included effects:
    • Wave loads (1st order); these come from the orcawave model
    • Added mass and damping; these come from the orcawave model
  • Superimposed motion:
    • None


The basic model is now done. Time for a self-check.

One of the checks that should always be performed decay tests.

  • Set the simulation length to something like 100 seconds
  • Set the wave-height to zero
  • Give the vessel an initial position other than its equilibrium position. For example lift it 1m out for the water or give it some roll
  • Run time domain and see if is comes to rest in the correct equilibrium position.

Wave tests

Next test is to add some waves and visually check if the vessel behaves well.

And then

Wind and current forces can be added to the vessel type.

Additional damping due to viscous effects (bilge keels) can be added to the vessel type in the “other damping” section.

The vessel is currently not moored, so it will drift off during time-domain simulations. Attach it to a constraint with soft springs to keep it in place. Make sure that these springs are stiff enough to keep the vessel from drifting off but soft enough not to change the first order behavior.

The final result

Download the example file: