`Example run file for IMO High Speed Craft Annex 7

project HSCIMO

enter pm
units mt
title block catamaran
create cathull\stbd.s
class hull
ends 15f, 15a
top 4
bot 0
out 1.5
vector 0, 5, 0
comp prow.s
top 4
bot 3 @ 18f, 0 @ 15f
out 1.5 @ 15f, 0.1 @ 18f
join stbd.s
comp port.p
shape cathull\stbd.s
vector 0, -5, 0
comp deck
ends -14, 15
top 8
bot 4
out 6.5
/
create sail
class sail
top 30 @ -8, 10 @ 10
bot 10
out 0.01
/
create cmpt1
ends -5, 5
fit stbd
/

write
quit pm

report /box:bw

`di print /nooff
\\\\\\\\\\\\\Stability Report\
\\After IMO HSC code\

`Light ship & loads:
vcg 6
draft 2
solve weight, lcg

`Set these constants as appropriate:
VARIABLE NPASS = 30 `Number of crowding passengers
VARIABLE WPASS = 0.8 `MT/passenger?
VARIABLE DCROWD = 5.0 `Distance off CL of crowd center
VARIABLE WINDMPS = 30 `Wind speed in meters/sec
VARIABLE TURNRAD = 50 `Turn radius in meters
VARIABLE TURNSPEED = 20 `Knots
VARIABLE MAXDEQ = 15 `Max damage equilibrium 15 for passenger, 20 for cargo craft

MACRO WINDHM `%1 - I for intact or D for damaged
VARIABLE P
SET P = {WINDMPS} DIV 26
SET P = {P} TIMES {P}
IF "%1"="I" THEN SET P = {P} TIMES 500 ELSE SET P = {P} TIMES 120
\\Wind pressure = {P} N/sqm\
SET P = {P} DIV 9800
WIND (PRESS) {P}
TRIM = 0
HMMT WIND /CONST
HMMT REPORT
HMMT = {HMMT}
/
MACRO CROWD
VARIABLE %1
SET %1 = {NPASS} TIMES {WPASS} TIMES {DCROWD}
\\Passenger crowding heeling moment: {%1:2}\
\
/
MACRO TURN
HMMT TURN {TURNRAD}, {TURNSPEED}
HEEL = 0
SOLVE TRIM
VARIABLE %1 = {HMMT}
HMMT REPORT
HMMT OFF
/
MACRO FINDFLD
HEEL = 0
RA 0, 5 ... 40 /STOP:FLD /HOLD /NOPRINT
VARIABLE FLDANG = {HEEL}
HEEL = 0
/
MACRO FINDMAX
HEEL = 0
RA 0, 5 ... 60 /STOP:MAX /HOLD /NOPRINT
VARIABLE MAXANG = {HEEL}
HEEL = 0
/
MACRO LIM1
HMMT OFF
.FINDFLD
.FINDMAX
VARIABLE A = {FLDANG}
IF {A} > {MAXANG} THEN SET A = {MAXANG}
IF {A} > 30 THEN SET A = 30
UNITS MT
VARIABLE T
SET T = 1.65 DIV {A}
LIMIT AREA FROM 0 TO {A} > {T}
/
MACRO ROLLRA
LIMITS OFF
LIMIT AREA FROM EQU TO 15 OR FLD > 0.028
SOLVE
VARIABLE A
SET A = ABS {HEEL}
MACRO SAY
\\Capsized to an angle of {HEEL:0} degrees with this heeling moment.\
\
//
IF {A} > 20 THEN .SAY ELSE RA 0, 2 /LIM:ATT
HEEL = 0
/

`Area to limiting angle without considering heeling moment:
SUBTITLE
\Intact Stability\
\Absolute area\
PAGE
LIMITS OFF
.LIM1
LIMIT ANGLE AT MAX > 10
LIMIT REPORT
MACRO SAY
\Downflooding angle%1\
/
IF {FLDANG} > 30 THEN .SAY " is greater than 30 degrees." ELSE .SAY ": {FLDANG:1}"
\Angle of maximum righting arm: {MAXANG:1}\
\
HEEL = 0
RA 0, 2 /LIM:ATT

`Equilibrium angle with gust:
SUBTITLE
\Intact Stability\
\Equilibrium angle with wind gust\
PAGE
TRIM = 0
.WINDHM I
VARIABLE GHM
SET GHM = {HMMT} TIMES 1.5
\Gust Heeling moment is 1.5 x {HMMT:2} = {GHM:2}\
\
HMMT = {GHM}
LIMITS OFF
LIMIT ANGLE AT EQU < 10
RA 0, 5 /LIM:ATT /GRAPH:NONE

`Residual area in roll with wind plus crowding or turning:
SUBTITLE
\Intact Stability\
\Residual Area with wind plus crowding or turning\
PAGE
.CROWD PHM
.TURN THM
VARIABLE HM = {PHM}
IF {HM} < {THM} THEN SET HM = {THM}
SET HM = {HM} PLUS {GHM}
HMMT = {HM}
MACRO SAY
\Total heeling moment: %1 plus wind gust {GHM:2} = {HM:2}\
\
/
IF {PHM} > {THM} THEN .SAY "passenger {PHM:2}" ELSE .SAY "turning {THM:2}"
.ROLLRA

`Damage:
SUBTITLE
\Damage Stability\
PAGE
.WINDHM D
VARIABLE HM3 = {HMMT}
VARIABLE HM4
SET HM4 = {HM3} PLUS {PHM}
\Heeling moment with wind {HM3:2} plus crowding {PHM:2} = {HM4:2}\
\
MACRO FLDCASE
TYPE (%1) FLOOD
HMMT = {HM3}
SOLVE
STATUS
PAGE
LIMITS OFF
LIMIT ANGLE AT EQU < {MAXDEQ}
HEEL = 0
RA 0, 5 /LIM:ATT /GRAPH:NONE
HMMT = {HM4}
.ROLLRA
TYPE (%1) INTACT
/
.FLDCASE CMPT1

print preview
report off
end