Using Free Surface Moments in Stability Calculations

Applies to GHS/BHS versions 6.36 and later.

A partially-filled tank reduces the hydrostatic stability of the ship by virtue of the shifting of the fluid within the tank. GHS and BHS account for this "free surface" effect by actually calculating the new C.G. of the fluid with each change of trim and heel.

Another method of representing the free surface effect is to elevate the ship's center of gravity by a suitable amount. This simplifies the calculation of righting moments as a function of heel since the tank's contribution to the center of gravity is considered to be fixed. The amount by which the C.G. is elevated may be chosen such that the additional righting moment produced by a small change of heel is the same as would be produced by the shifting of the tank's contents. This elevation of the C.G., multiplied by the weight of the ship, is called the free surface moment, or FSM.

The primary disadvantage of using the FSM is that it does not accurately represent the tank's effect on stability beyond a small increment of heel, since the FSM itself can be very different at different heel angles.

Applications of the FSM

In the past, the primary advantage of using the FSM was its relative simplicity, and although the availability of high-speed computers has made that less of an issue today, there remain some applications where the FSM is still a useful shortcut.

One such application uses maximum FSM values to represent the free surface even in a case of loading where the true FSM is less than maximum. The intent is to make a few sample cases representative, in a worst-stability sense, of all the various loads which would occur during normal operation.

Another application where the FSM is necessary is in the use of precomputed maximum VCG data for a quick stability check. In order to use maximum VCG data to assess the stability of a particular load case, the effect of slack tanks is conveniently and quickly represented by the FSM. The present VCG is increased by an FSM adjustment before being compared with the maximum VCG.

GHS Facilities for using FSM

In order to accommodate these applications, GHS associates two FSM functions with each tank. One function is used for load factors between zero and a user specified load factor. The other is used with loads from the boundary load factor up to 100%.

Each FSM function is allowed to have one of three forms: 1) a constant value; 2) a constant value except at zero and 100% loads where the value becomes zero; and 3) a variable equal to the true FSM value at each particular load.

GHS allows the value used by the first two forms of the FSM function to be either specified directly by the user or taken from one of four options which are described in GHS HELP - FSMMT: FREE, PRESENT, MAX, or VMAX.

In addition, GHS provides for a minimum FSM -- a "floor" value which becomes the effective FSM when it is greater than the FSM sum from the tanks. In addition to the overall FSM floor, individual FSM floors can be designated for each of the various descriptions of tank contents.

Assigning FSM functions to a tank is done by means of the command which has the form,
    FSMMT [(tanklist)] = f1 [,f2 [@ boundary]] [/UNCONDITIONAL] [/BOTHSIDES]
tanklist is a list of the names of the tanks to be affected.

f1 is the function which applies to the larger of two ranges of load factors, either 0.0 - boundary, or boundary - 1;

f2 is the function which applies to the smaller range of load factors.

If f2 is not specified, it becomes identical to f1.

boundary is the load fraction boundary between the two functions. If not specified, it defaults to 0.95.

The variable, or true-FSM form of the function is specified by the keyword TRUE. This is the "default" form of the FSM functions before the FSM command is issued.

A second option for the variable form of the function is specified by the keyword FREE. FREE is like TRUE, except it uses the waterplane inertia taken about the ships centerline, as if the tank were freely connected to its mirror image on the opposide side of the vessel. This allows interconnected port and starboard tanks to be modeled separately so their loads can be set differently (as if due to some pressurization).

Four options are available in specifying the constant form. One is simply to give the FSM value directly. The other three use keywords:

PRESENT uses the present FSM value (at the present load, heel and trim).

MAX first finds the maximum FSM value (of all loads at the present heel and trim) and makes that the present load. It then takes that FSM value for the constant. This cannot be used for f2 unless f1 is also MAX.

VMAX is like MAX, except that the level in the tank is set such that the sum of the free surface moment and the vertical moment of volume is as its maximum. This option is only compatible if heel and trim angles equal zero.

The /UNCONDITIONAL parameter modifies the constant function forms which, by default, are actually constant only when the load is greater than zero and less than 1.0. This parameter makes the constant absolute so that the same FSM value is used even in the empty and full conditions.

The /BOTHSIDES parameter causes the calculation for PRESENT and [V]MAX functions to be done at both the current and opposite-side heel angles, with the greater value assigned to the function.

Because the FSM function does not always represent the true FSM (except in the variable or TRUE form), the value given by the function is called a "formal" FSM value.

In the case of flooded and frozen tank types, the FSM value is regarded as zero, even if a constant formal FSM has been assigned.

The STATUS /FSM command shows the FSM values yielded by the FSM functions in the current condition, and it marks with an asterisk those which depart from true FSM values. STATUS /TRUEFSM shows true values for all tanks regardless of what the formal values might be.

The total FSM in any condition is determined by summing the FSM values of all tanks.

The means by which a lower bound is placed on the total FSM is the FSMFLOOR command. This command can also be used to place minimum values on the total FSMs of all tanks sharing the same contents. It has the following form.
    FSMFLOOR ["contents"] = FSM | n 
Without the "contents" parameter this command sets the overall FSM floor. With the "contents" parameter a floor value is established for all those tanks which have the indicated contents.

The keyword FSM specifies that the present total FSM is to be assigned as the lower bound.

n sets the lower bound to the given value.

The OFF parameter sets all fsmfloor values to zero.

GHS can perform an FSM-like modification to the C.G. during a righting-arm calculation while still calculating the actual C.G. shifts within tanks. This feature is enabled through the /EXTRAFSM parameter on the RA and SOLVE MAXVCG commands. It uses the difference between the formal and true FSM (but not less than zero) to raise the C.G..

/FSM and /TRUEFSM Parameters

In general, the /FSM parameter refers to the formal FSM value while the /TRUEFSM parameter refers to the true FSM in the current condition. The /MAXFSM and /USERFSM parameters are no longer used. Following is a summary of the FSM parameters now available on various commands.

GHS:          /FSM - Use formal FSM values.
              /TRUEFSM - Ignore formal values and use true values instead.
              Default:  Same as /FSM.


MAXVCG (without primary parameters):  See GHS.

RA:           /FSM - Cause the tanks to be frozen and the C.G. to be raised
               perpendicular to the waterplane according to the formal FSM.
              /TRUEFSM - Same as /FSM except uses true FSM values.
              /FSMEXTRA keeps tanks liquid but raises the C.G. according to the
               difference between the formal and true FSM.
               Default: Keep tanks liquid and do not change C.G..

ROLL PERIOD:  Same as GHS except the default is /TRUEFSM.

ROLL IMO:     See GHS.

STATUS:       /FSM - Use the formal FSM in the TANKS and WPL sections.
              /TRUEFSM - Use the true FSM in the TANKS and WPL sections.
              Default - Do not show FSM in the TANKS section; use the true FSM
              in the WPL section.

SOLVE:        See RA, except with an addition optional subparameter,
              [:UPright], which forces the VCG to be temporarily increased
              according to the free surface moments existing at zero heel and
              trim.  This subparameter also communicates to any subsequent
              RA /FSM command that the FSM is to be applied from an upright
              waterplane.  If the UPRIGHT subparameter is not used, the CG is
              temporily elevated perpendicular to the existing equilibrium
              waterplane.  If the vessel is not in equilibrium when a SOLVE
              /FSM|TRUEFSM|EXTRAFSM command is executed, the upright
              subparameter is assumed.

USERFSM:      Discontinued.

VCG MAX:      See GHS.

US Code of Federal Regulations 46-170.285: Intact stability using maximum FSMs. Allows tank LCG shifts to contribute to initial trim. Forces initial heel to zero by adjusting TCG. Raises C.G. normal to waterplane. Uses maximum FSM values derived at zero heel and zero trim for all tanks. Always counts at least "Big Consumables" FSM. Only counts other consumables FSMs if they exceed "Big Consumables" for each consumable type.

Note: This is not the only interpretation of this regulation.
    FSMMT (*) = MAX
    \Determine by inspection the "Big Consumables" from above FSM values.
    FSMMT (*) = 0
    LOAD (*) = 0
    FSMMT (Big Consumables) = MAX
    FSMFLOOR "*" = FSM
    STATUS TANKS /FSM   `Documents the derivation of the floor FSM

    LOAD (*) = 0

    HEEL = 0 | TRIM = 0
    STATUS /FSM       `Documents the current condition & FSM
    RA /FSM

  HEEL = 0 | TRIM = 0
  FSM (*) = MAX
  WEIGHT ...

 .COND 1
 .COND 2

For a more realistic calculation in the spirit of 170.285, substitute /FSMEXTRA for /FSM on the RA command.

US Code of Federal Regulations 46-170.290 by (c)(1) - Damage stability using FSM at 5 degrees heel.
    TANKS = %1
    HEEL = 0
    STATUS %2
    ANGLES = *
    RA %2

    HEEL = 5 | TRIM = 0

  HEEL = 5 | TRIM = 0
  WEIGHT ...
 .COND 1
 .DAMCALC "Damaged Tanks" /FSM
 .COND 2
 .DAMCALC "Damaged Tanks" /FSM

US Code of Federal Regulations 47-170.290 by (c)(2) - Damage stability using moments of transference.
  WEIGHT ...
 .COND 1
 .DAMCALC "Damaged Tanks"
 .COND 2
 .DAMCALC "Damaged Tanks"

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

Updating Old FSM Commands
Versions prior to 6.16 used a command called FSM (alias USERFSM) and the parameters /MAXFSM and /USERFSM on various other commands. These have been deleted since the new FSM command together with the FSMFLOOR command accomplish the same purpose more directly. Following are examples where the usage has changed. Old method for applying a fixed overall FSM: USERFSM = n     and /USERFSM on various commands.
New method: FSMMT (*) = 0 FSMFLOOR = n     and /FSM on the same commands where /USERFSM appeared. Old method for applying maximum FSM values: STATUS /MAXFSM      or STATUS /MAXFSM: tank list      and /MAXFSM on various other commands. New method: FSMMT (*) = MAX      or FSMMT (tank list) = MAX /UNCONDITIONAL FSMFLOOR OFF      and /FSM on the same commands where /MAXFSM appeared.
Copyright (C) 2011 Creative Systems, Inc.