```
#\$b001
TEXT(GRID_ON_CIRCLE                     :B544
TITLE
display
This Q1 demonstrates the use of 5 operations used
for the creation of BFC grids, namely:
* defining points,
* defining lines,
* defining frames,
* setting grid dimensions, and
* matching a grid to a frame.

Those operations are used here in order to:
1. create a circle,
2. dimension a grid,
3. match the grid to the circle, and
4. use the Laplace method to improve orthogonality.

The relevant PIL commands will be displayed, then processed.
The first sets the grid type to BFC

CT1=BFC=T
#\$b002
The coordinates of the four points used for defining the
circle will be taken as:
A (0,1,1); B(0,2,1); C(0,2,2); D(0,1,2)
real(ya,za,yb,zb,yyc,zzc,yd,zd,side,yp,zp,archite)
side=1;archite=side*(1.414-1)/2
ya=1;za=1;yb=ya+side;zb=za;yyc=yb;zzc=za+side;yd=ya;zd=zzc
mesg(Thus ya=:ya:, za=:za:, yb=:yb:, zb=:zb:
mesg(and  yyc=:yyc:, zzc=:zzc:, yd=:yd:, zd=:zd:
The command to define point A is:
CT1=GSET(P,A,0,ya,za)
#\$b003
The command to define point B is:
CT1=GSET(P,B,0,yb,zb)
#\$b003
The command to define point C is:
CT1=GSET(P,C,0,yyc,zzc)
#\$b003
The command to define point D is:
CT1=GSET(P,D,0,yd,zd)
#\$b003
The command to draw the arc L1 from A to B which goes through
(0.5*(ya+yb) ,  is:
CT1=GSET(L,L1,A,B,20,1.0,ARC,0,ya+side/2,za-archite)
#\$b003
The command to draw the arc L2 from B to C
CT1=GSET(L,L2,B,C,20,1.0,ARC,0,yb+archite,zb+side/2)
#\$b003
The command to draw the arc L3 from C to D
CT1=GSET(L,L3,C,D,20,1.0,ARC,0,yyc-side/2,zzc+archite)
#\$b003
The command to draw the arc L4 from A to D
CT1=GSET(L,L4,A,D,20,1.0,ARC,0,ya-archite,za+side/2)
#\$b003
The command to define frame F1 which has corner points
A,B,C,D is:
CT1=GSET(F,F1,A,-,B,-,C,-,D,-)
#\$b003
The command to set the BFC grid dimension as 1x20x20 is:
CT1=GSET(D,1,20,20)
#\$b003
The command to match grid plane I1 on frame F1 using the
trans-finite method is:
CT1=GSET(M,F1,+J+K,1,1,1,TRANS)
#\$b003
Now the PIL command to copy to the I2 plane from the I1
plane by shifting it through a distance (0.5,0,0) is:
CT1=GSET(C,I2,F,I1,1,20,1,20,+,5.0000E-01,0,0)
#\$b003
By this time, the BFC grid has already set, however,
to make it as orthogonal as possible, a Laplace
solver is used in the following operations-

The PIL command to match grid plane I1 on frame F1 using
the Laplace solver with 20 iterations is:
CT1=GSET(M,F1,+J+K,1,1,1,LAP20)
#\$b003
Finally the PIL command to copy to the I2 plane from the I1
plane by shifting it through a distance (0.5,0,0) is:
CT1=GSET(C,I2,F,I1,1,20,1,20,+,5.0000E-01,0,0)
#\$b003
enddis
```