Steps to Making a Stability Report

What is presented here is an outline of one approach to producing a stability report using GHS. This is not meant to be detailed instruction, but rather to point you in the right direction. It is assumed that you are somewhat familiar with the various GHS modules. The mechanics of preparing the input mentioned in these steps can be found in the documentation associated with specific modules and commands.

1. Make the geometry

The first step is to define the geometry file for the vessel. The geometry file contains the "offsets" defining the hull model as well as any appendages, tanks and compartments plus any superstructure necessary for the wind plane.

The primary tool for creating the hull model is Section Editor, either through a digitizer or by entering offsets through the keyboard. Alternatively, offsets can be given through the LOCUS command in a Part Maker run file. If the model exists as a CAD drawing or in some other modeling or "lines fairing" program it can usually be imported to GHS through Model Converter.

In most cases, appendages are best defined using Part Maker (Appendage Maker). Section Editor can also be used to digitize appendages from a body-plan drawing.

Tanks/compartments are most easily created using Part Maker (Tank Maker).

Superstructure needed solely for wind plane purposes can be created using Part Maker or Section Editor. See the MAKESAIL bulletin for a method that saves time for wind plane components that do not need to have any breadth.

The geometry file is now assumed to be complete. The remaining steps involve Main Program commands. For best efficiency these commands should be written to a run file rather than being typed directly into the program. This run file will begin by reading the geometry file (READ command), then continue with commands to establish the weight of the vessel, etc.

2. Construct an approximate light ship weight curve

At this stage it is not necessary that the exact light ship weight and LCG be represented by the weight curve since it can be easily adjusted in the next step. The important thing is to represent the longitudinal distribution of weight. See the WEIGHT command in the main program for entering this information. If longitudinal strength is of no concern for the vessel, this step can be skipped.

3. Determine the exact light ship weight and LCG

If the weight and CG are known, they can be entered through the WEIGHT command. Or if the light ship draft and trim are known, the corresponding weight and LCG can be indirectly specified using the DRAFT command followed by the VCG command (typically giving an estimated VCG) and finally the command "SOLVE WEIGHT, LCG". If an inclining experiment has been done, the GMTMMT command can be used to find light ship weight and CG. These actions will adjust the weight distribution curve entered in step (2) if one exists.

4. Add other weights

Any common weight items (solids, not tank contents) in addition to the light ship weight can be added at this stage using the ADD command. Even consumables can be entered with zero or nominal weight values since it is easy to edit them later when making specific load cases.

5. Formulate the stability criterion

A stability criterion is represented by one or more LIMIT commands which address various characteristics of the righting arm curve. The particular class and service of the vessel will typically put it under certain stability regulations. Each aspect of the regulation must be expressed in terms of a LIMIT command. After the limit commands are formulated and entered, the criterion they set is used to evaluate righting arm curves and find maximum VCG values.

If more than one criterion must be met (intact and damage, for example), a set of LIMIT commands for each criterion must be written. This is a good application for the MACRO command. Each set of LIMIT commands can be placed within a MACRO definition and subsequently brought into play simply by executing that macro.


A set of curves representing maximum VCG vs. displacement and LCG can be generated using the MAXVCG command. This step is not always necessary, but it is usually helpful to know the maximum VCG when exploring load cases. This command can take several minutes to complete since finding each maximum VCG involves running several righting-arm curves.

The result of the MAXVCG command is a report in tabular and graphical form. Therefore it is best to open the report file before the MAXVCG command is issued. This is done by means of the REPORT command.

An additional result of the MAXVCG command is that the maximum VCG data are retained in memory during the GHS run. If it is desired to save this data in a file so that subsequent runs can RUN this file rather than repeat the MAXVCG command, the SAVE command can be used.

If more than one criterion or if various damage scenarios must be considered, the MAXVCG command can be repeated with the appropriate LIMIT commands, HMMT and TYPE commands establishing the particular damage and/or heeling moments to be used. A composite set of minimum maximum-VCG data will result from this if the /COMPOSITE parameter is included on the MAXVCG command.

7. Use Load Editor to find acceptable load cases

After the preliminary commands in steps (2) through (6) have been run, you are ready to investigate the stability and strength characteristics of given loading cases. The easiest way to do this is to make use of the Load Editor (LOAD EDIT command). This is an interactive process where you can quickly change liquid and solid weights while observing the draft, trim, stability and longitudinal shear/bending of the vessel.

8. Save load cases

If you find a load case that you want to include in the report, you can exit the Load Editor and issue the WRITE command to write the load settings on a file. Use the WRITE (LOADS) form of this command. When written to an existing file it will append the loading information to the end of the file so that a series of cases can be put on a single file.

The file written in this step is actually a run file consisting of commands like LOAD and ADD which constitute the loading case. It can be edited and run like any other run file, or a similar file could be created manually without the aid of the Load Editor.

9. Run to produce the report

If you look (using the EDIT or VIEW command) at the run file which was created in step (8) you will see that each load case is followed by an execution of a macro named CASE. The CASE macro is one that you have to write yourself. Its purpose is to generate a report of a given load case. Typically it will consist of a PAGE command to start a new page, followed by SOLVE, STATUS, RA /LIM and possibly an LS command.

After the CASE macro has been defined it is only necessary to run the file produced in step (8). It will establish each load case in turn, executing the CASE macro for each one, thereby producing a report which documents the stability and strength characteristics of a series of load cases.

Damage stability

Steps (7) through (9) apply equally to damaged cases (i.e. setting certain tanks/compartments to TYPE FLOODED). However there are other approaches to managing the large number of cases which are encountered in a damage stability analysis.

One approach is to find composite maximum VCG curves including flooding cases as mentioned above in step (6). Of course the final report cannot use the righting arm curves of intact load cases to demonstrate meeting the damage criterion unless the intact conditions are the limiting ones. But it can make use of a special form of the MAXVCG command to compare the VCG of a given case with the composite maximum VCG.

If the vessel is a tanker or carries significant liquid loads or ballast, the general MAXVCG approach is not strictly applicable because the results of damage depend on the specific loads in the damaged tanks before damage. However, maximum VCGs with damage for specific load cases can be determined using the SOLVE MAXVCG command. By this means the least maximum VCG for various flooding scenarios can be found on a case-by-case basis.

A very efficient approach to damage stability is probabilistic damage, which involves the DIVISION and DAMSTAB commands. Though this can be run for a given load case, unfortunately the regulations which sponsor this method also prescribe how the load cases are to be generated.

If intermediate stages of flooding are to be considered, the number of cases which must be examined is multiplied several times. By making good use of the macro command language, you can automate this task so that the worst cases are identified and reported without generating excessive output. The DAMSTAB run files which come with GHS offer an example of how this can be done.


If you would like to see another bulletin created regarding a specific topic, please email Creative Systems, Inc. at
Copyright (C) 2011 Creative Systems, Inc.