General HydroStatics
Ship Stability Software
Command of the Week
(New or interesting aspects of GHS that you may not know about)

SEA /REL (part 1)
(Requires GHS version 16.50 or later with SK module)

SEA /REL gives users the option to compute relative vertical motion. Relative, that is, to the incident wave elevation. But because SEAKEEPING solves in the frequency domain, SEA /REL will return the relative RAOs, amplitudes, and phase angles for each Critical Point. Which raises the question: what exactly does a "relative amplitude" quantify?

To illustrate the physical meaning of SEA /REL, let us pose a very simple simulation. We subject SV.GF to a single sinusoidal wave with a period of 8 seconds, an amplitude of 6 meters, and a heading of 180 degrees (head seas). We place a Critical Point at the forward-most point on the bow, an area where we expect to observe rather substantial vertical motion. We then compute the relative motion, via /REL, and write both the wave data and the response data to data files, via /DATA:WA,RE.

We then use a few macros from the new SeaKeeping library SK.LIB (available here) to write a run file that converts the frequency domain output (the RAO and phase angles) from SEAKEEPING into the time domain. We use the macros GetRespData and GetWaveData to automatically parse the SK-RESPONSE.DAT and SK-WAVES.DAT data files we created. The contents of these files are automatically stored in user variables. (For more information regarding the macros in SK.LIB, type .sk.libinfo after running SK.LIB at the command line.)


crt (1) "bow" 61.949f,0,10.264

wave (spe) 6,8 `amplitude, period

sea /crt:1 /rel /data:wa,re /resp:p
report off

run sk.lib /call /quiet

set sk.nwaves=1 `number of wave components
set sk.ncrtpts=2 `number of Critical Points, CG included
set sk.relative=1 `parse for relative motions

.sk.GetRespData "SK-RESPONSE.DAT"
.sk.GetWaveData "SK-WAVES.DAT"

We then create a macro called TimeDomain, which converts the absolute and relative amplitudes and phase angles at CRT (1) into the time domain via the SK.LIB macro Position. In addition, we compute the wave elevation at the same longitudinal and transverse location using the macro WaveElevation. One will notice that the time, wave elevation, and both the absolute and relative bow position are then sent to a custom plot using the ME command before stepping forward in time.

macro TimeDomain
.sk.WaveElevation %2 -61.949 0 {t}
.sk.Position %2 3 1 {t} | set AbsPos={sk.Pos}
.sk.Position %2 R 1 {t} | set RelPos={sk.Pos}
me {t} {AbsPos} {sk.WELEV} {RelPos} 0 `send to plot
set t={t} PLUS {dt}


vari t=0
.TimeDomain({nsteps},0)1 1

Looping over the macro TimeDomain results in a time domain visualization of the absolute bow motion, wave elevation, and relative bow motion through two wave periods, as shown below.

It is very easy to see that the relative motion (the green curve) is simply the difference between the absolute bow motion (the red curve) and the wave elevation (the blue curve). One will notice that when the bow dips below the surface of the wave (first at 2.4 seconds and again at 10.4 seconds), the relative position goes negative. Conversely, when the bow emerges from the surface of the wave (at 4.5 seconds and 12.5 seconds), the relative position goes positive.

The relative amplitude is therefore the largest distance that occurs between the bow and the wave surface. A comparison of the relative amplitude and freeboard at a particular Critical Point will readily indicate whether the point will submerge.

The run file used to create this visualization is available here.

Questions, comments, or requests?
Contact Creative Systems, Inc.

USA phone: 360-385-6212 Fax: 360-385-6213
Office hours: 7:00 am - 4:00 pm Pacific Time, Monday - Friday

Mailing address:
PO Box 1910
Port Townsend, WA 98368 USA

Click here for an index to this and previous COWs