```
TALK=T;RUN( 1, 1)
DISPLAY

This In-Form case illustrates how to create simple shapes
by using the BOX function.

The kind of shape can be selected by setting of CASENO.
CASENOs from 1 to 3 are for the simple box. 1 used for cartesian
grid, 2 for BFC and 3 for polar grid.

CASENOs from 4 to 6 are for pyramids.
CASENOs from 7 to 9 are for spirals.
CASENOs from 10 to 11 are for curved channels.

The Q1 contains PHOTON USE commands
ENDDIS
PHOTON USE
p;;;

up z
gr ou x m; gr ou y m; gr ou z m
set prop off
*surf mark x .99 col 2
*surf mark y .99 col 6
surf mark z .99 col 6
ENDUSE

************************************************************
Group 1. Run Title
TEXT(Simple shapes by box In-Form object)
LIBREF=383
INTEGER(CASENO)
CASENO=1 ! Simple BOX for cartesian grid
CASENO=2 ! Simple BOX for BFC
CASENO=3 ! Simple BOX for polar grid
CASENO=4 ! Simple pyramid for cartesian grid
CASENO=5 ! Simple pyramid for BFC
CASENO=6 ! Simple pyramid for polar grid
CASENO=7 ! Simple spiral for cartesian grid
CASENO=8 ! Simple spiral for BFC
CASENO=9 ! Simple spiral for polar grid
CASENO=10 ! Simple curve channel for cartesian grid
CASENO=11 ! Simple curve channel for BFC
REAL(PI,PI2); PI=3.14159; PI2=2.*PI  ! Pythagoras's constant
************************************************************
Group 2. Transience
************************************************************
Groups 3, 4, 5  Grid Information
NX=50;NY=50;NZ=50
XULAST=1.0; YVLAST=1.0; ZWLAST=1.0
IF(CASENO.EQ.3.OR.CASENO.EQ.6.OR.CASENO.EQ.9) THEN
CARTES=F
XULAST=PI2
ENDIF
TEXT(Uniform Grid
#pause
mesg(unigrid macro has been loaded
grdpwr(t,lstep,tlast, 1.0)
grdpwr(x,nx   ,xulast,1.0)
grdpwr(y,ny   ,yvlast,1.0)

IF(CASENO.EQ.2.OR.CASENO.EQ.5.OR.CASENO.EQ.8.OR.CASENO.EQ.11) THEN
BFC=T
ENDIF
if(parab) then
parab
zfrac(1)= -nz;zfrac(2)=1/nz
else
grdpwr(z,nz   ,zwlast,1.0)
endif

if(cartes) then
mesg(uniform cartesian grid
else
mesg(uniform polar grid
endif
end of unigrid
** LOAD( 50) from the PHOENICS Input Library
** LOAD( 50) from the PHOENICS Input Library
Group 7. Variables: STOREd,SOLVEd,NAMEd
* Solved variables list
SOLVE(TEM1)
* Stored variables list
STORE(PRPS,MARK)
************************************************************
Group 11.Initialise Var/Porosity Fields
patch(patch1,volume,1,nx,1,ny,1,nz,1,1)
FIINIT(PRPS) =  0.000000E+00 !
inform11begin
(stored of mark at patch1 is 1.0 with infob_1)
(initial of prps is 100 with infob_1)
real(x0,y0,z0,xs,ys,zs,al,be,th)
char(cx0,cy0,cz0,cxs,cys,czs,cth)
IF(CASENO.EQ.1.OR.CASENO.EQ.2) THEN
x0=xulast/4
y0=yvlast/4
z0=zwlast/4
xs=xulast/2
ys=yvlast/2
zs=zwlast/2
al=0.25
be=0.25
th=0.25
(infob at patch1 is box(x0,y0,z0,xs,ys,zs,al,be,th) with infob_1)
ENDIF
IF(CASENO.EQ.3) THEN
x0=yvlast/2
y0=yvlast/2
z0=zwlast/2
xs=yvlast/2
ys=yvlast/2
zs=zwlast/2
al=0.25
be=0.25
th=0.25
(infob at patch1 is box(x0,y0,z0,xs,ys,zs,al,be,th) with infob_1)
ENDIF
IF(CASENO.EQ.4.OR.CASENO.EQ.5) THEN
x0=xulast/4
y0=yvlast/4
z0=0
cx0=:x0:*(1+zg/:zwlast:)
cy0=:y0:*(1+zg/:zwlast:)
cz0=0.
cxs=0.5*(:zwlast:-zg)
cys=0.5*(:zwlast:-zg)
czs=16.*(:zwlast:-zg)
al=0.; be=0.; th=0.

(infob at patch1 is box(cx0,cy0,cz0,cxs,cys,czs,al,be,th) with inf\$
ob_1)
ENDIF
IF(CASENO.EQ.6) THEN
x0=yvlast-yvlast/2
y0=yvlast-yvlast/2
z0=0
cx0=:x0:*(1+zg/:yvlast:)
cy0=:y0:*(1+zg/:yvlast:)
cz0=0.
cxs=:zwlast:-zg
cys=:zwlast:-zg
czs=16.*(:zwlast:-zg)
al=0.; be=0.; th=0.

(infob at patch1 is box(cx0,cy0,cz0,cxs,cys,czs,al,be,th) with inf\$
ob_1)
ENDIF
IF(CASENO.EQ.7.OR.CASENO.EQ.8) THEN
x0=xulast/2
y0=yvlast/2
z0=0
cx0=:x0:
cy0=:y0:
cz0=:z0:
cxs=xulast/2
cys=yvlast/4
czs=:zwlast:
al=0.; be=0.; th=0.
cth=zg*:pi2:
(infob at patch1 is box(cx0,cy0,cz0,cxs,cys,czs,al,be,cth) with inf\$
ob_1)
ENDIF
IF(CASENO.EQ.9) THEN
x0=yvlast
y0=yvlast
z0=0
cx0=:x0:
cy0=:y0:
cz0=:z0:
cxs=yvlast
cys=yvlast/4
czs=:zwlast:
al=0.; be=0.; th=0.
cth=zg*:pi2:
(infob at patch1 is box(cx0,cy0,cz0,cxs,cys,czs,al,be,cth) with \$
infob_1)
ENDIF
IF(CASENO.EQ.10.OR.CASENO.EQ.11) THEN
x0=0
y0=yvlast/2
z0=zwlast/2
cx0=:x0:+xg
cy0=:y0:
cz0=:z0:+0.25*sin(:pi2:*xg/xulast)
cxs=xulast/5
cys=yvlast/5
czs=zwlast/5
al=0.; be=0.; th=0.
(infob at patch1 is box(cx0,cy0,cz0,cxs,cys,czs,al,be,th) with inf\$
ob_1)
ENDIF
inform11end
************************************************************
Group 13. Boundary & Special Sources
patch(low,lwall,1,nx,1,ny,1,1,1,1)
coval(low,tem1,1,-1)
patch(high,hwall,1,nx,1,ny,nz,nz,1,1)
coval(high,tem1,1,1)
************************************************************
Group 15. Terminate Sweeps
LSWEEP  =      10
RESFAC  = 1.000000E-03
yzpr=t
nxprin=1;ixprf=nx/2;ixprl=nx/2+1
spedat(set,material,100,l,t)
tstswp=-1
isg50=1       ! endpause

** LOAD( 54) from the PHOENICS Input Library
** LOAD( 54) from the PHOENICS Input Library

isg52=2       ! maxabs

** LOAD( 53) from the PHOENICS Input Library
** LOAD( 53) from the PHOENICS Input Library
LITER(TEM1)=100
************************************************************
```