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

(Requires GHS version 16.40A or later with CG)

Brave souls have oft ventured into HELP LOAD and (if they return) they are usually changed forever.

Most users are well-versed in loading tanks to a specific load fraction. This is the standard use of the LOAD command, and you have likely used it to set up a multitude of operating load cases when evaluating intact stability. This is, of course, only scratching the surface when it comes to the capabilities that the LOAD command offers.

One handy example is LOAD /SEQ. The SEQ stands for "sequence" and greatly reduces the number of commands needed to simulate sequential loading or unloading of tanks. Sure, you could accomplish this with a couple macro loops, some if-statements, and other programming trickery, but LOAD /SEQ simplifies things considerably.

As an example, we wish to ballast down DOCK.GF. The dock has six P/S pairs of main ballast tanks. For simplicity, let us assume we have two ballast pumps that may be operated simultaneously. We can simulate the ballasting sequence as follows:

macro down
load (BAL2*,BAL1*,BAL3*) VOL:*+%2 /SEQ:0.8
load (BAL5*,BAL4*,BAL6*) VOL:*+%3 /SEQ:0.8
so | wait %4

macro up
load (BAL6*,BAL2*,BAL1*) VOL:*-%2 /SEQ
load (BAL3*,BAL5*,BAL4*) VOL:*-%3 /SEQ
so | wait %4

In the above example, the aft ballast tank pairs (4, 5, and 6) and the forward ballast tank pairs (1, 2, and 3) are sequentially loaded up to a maximum load of 0.8. A LOAD /SEQ command is issued for each of the two ballast pumps so that two tanks are always filling (or unfilling) simultaneously. The flow rate for each pump is controlled with the %2 or %3 parameter. When loading the tanks, LOAD /SEQ fills each tank in the tank list from left to right. Once the current tank is filled to 0.8, the next tank then begins filling, and so forth. When unloading, the sequence is performed in reverse order: from right to left. In the unloading macro, /SEQ is not given a value so it defaults to 0, although a "minimum" load could be specified.

It is now very easy to loop through the loading and unloading process.

.down(150,1)1 1000 1000 0.1
wait 0.5
.up(160,1)1 1000 1000 0.1

The result looks something like the following. Notice how the order of the tank list governs the order that tanks are filled.

One can imagine the myriad of possibilities for LOAD /SEQ. Just think what else lurks in the vastness beyond.

The run file and geometry file used in this example may be found 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