TALK=T;RUN(1,1)
  PHOTON USE
  p
  p1


  msg  Drilling the sphere
  GR Z 1
  con mark x 1 fil;.01
  con mark x 20 fil;.01
  con mark z 20 fil;.01
  msg  Please wait .....
  surf mark x 0.99
  msg  Hit Enter to continue
  pause
  p
  p2


  msg  Drilling the cylinder
  gr z 1 y 1 19
  gr z m y 1 19
  msg  Please wait .....
  surf mark x 0.99
  msg  Hit Enter to continue
  pause
  p
  p3


  msg  Drilling the bullet
  gr z 5 y 1 19
  msg  Please wait .....
  surf mark x 0.99
  msg  Hit Enter to continue
  pause
  p
  p4


  msg  Drilling the annulus
  GR Z 1
  con mark Z 1 X 1 20 Y 1 M fil;.01
  con mark Z 10 X 1 20 Y 1 M fil;.01
  con mark Z m X 1 20 Y 1 M fil;.01
  GR OU Y M;GR OU Z M;GR OU Z M
  msg  Please wait .....
  surf mark x 0.99
  msg  Hit E to finish
  enduse
  DISPLAY
    This input demonstrates the "drilling-milling" technique
    available  in  PLANT  to generate marker distribution to
    fit the complex shapes on polar,  CARTES=F,  grids.  The
    method rests on PLANT ability to handle virtually "live"
    mathematical  expressions  as  the  arguments   of   its
    functions.

    All cases  of the file are wholly focused on calculation
    of marker disributions.  Therefore, no other actions are
    supported by input data.

    Four different   cases,   in   which   the  variants  of
    "drilling"  are  used  to  get  different  shapes,   are
    arranged  as  unsteady problem:  at each time moment the
    new marker distribution is PLANTed calculated and dumped
    into  specified  file  to  be  viewed by PHOTON commands
    supplied.
  ENDDIS
   PLANTBEGIN
       1. Drilling the sphere
PATCH(INI1,INIVAL,1,NX,1,NY,1,NZ,1,1)
   VAL=SPHERE(1.,10.,10.,10.,5.)
INIT (INI1,MARK,0.,GRND)
    Ih the above settings the  sphere  is  "drilled-out"  in
    cylinder.   Crucial  faeture  of  this  example  is  the
    specification  of   center   coordinates:   unlike   for
    cartesian cases,  the line of X=0 and Y=0 in cylindrical
    polar coordinate system has got the coordinates  Xr=RV2D
    and  Yr=RV2D  in  reference  frame.  It is the latter in
    which the arguments of  geometrical  functions  must  be
    specified.
  <<<<<<<<<<<<<<<<<<<<<<< Comment ends <<<<<<<<<<<<<<<<<<<<<
       2. Drilling the cylinder
   MARK=0.
  IF(ISTEP.EQ.2.AND.LSWEEP.EQ.1)
   MARK=SPHERE(1.,10.,10.,ZGNZ,5.)
  IF(ISTEP.EQ.2.AND.LSWEEP.EQ.1)
    This example  seems  to  be  even simpler than foregoing
    one.  It deals  with  the  "drilling-out"  the  cylinder
    cavity  of 5 m diameter in coaxial cylindrical domain by
    spherical  "drill  bit".  The  "drilling  "  effect   is
    activated  by  using  the  distances  from  Z=0 plane as
    coordinates of sphere centre.
  <<<<<<<<<<<<<<<<<<<<<<< Comment ends <<<<<<<<<<<<<<<<<<<<<
       3. Drilling the bullet shape
   MARK=0.
  IF(ISTEP.EQ.3.AND.LSWEEP.EQ.1)
   MARK=SPHERE(1.,10.,10.,10.,5.)
  IF(ISTEP.EQ.3.AND.LSWEEP.EQ.1)
   MARK=XYCIRC(1.,10.,10.,5.)
  REGION(1,NX,1,NY,5,20,3,3) /LSWEEP.EQ.1
    Another variant of  "drilling"  technique  is  used  for
    specification  of  bullet-shape  cavity.  The  shape  is
    combination  of  stationary   sphere   and   2D   circle
    "drill-bit".  The  "drilling" is activated by extents of
    REGION commands over which XYCIRC function  is  applied.
    The  command  PLACE  may  also be used with advantage to
    employ physical rather than cell numbers extents.
  <<<<<<<<<<<<<<<<<<<<<<< Comment ends <<<<<<<<<<<<<<<<<<<<<
       4. Drilling the annulus
   MARK=0.
  IF(ISTEP.EQ.4.AND.LSWEEP.EQ.1)
   MARK=SPHERE(1.,15.,10.,ZGNZ,4.)
  IF(ISTEP.EQ.4.AND.LSWEEP.EQ.1)
    This examples differs from "drilling" the cylinder  case
    mainly  in  shifting  the axis of "drill bit" of 5 meter
    away from domain centre line.
  <<<<<<<<<<<<<<<<<<<<<<< Comment ends <<<<<<<<<<<<<<<<<<<<<
  PLANTEND
 ************************************************************
  Group 1. Run Title and Number
 ************************************************************
 ************************************************************
 
 TEXT( DRILling CYLINDER: CARTES=F            )
 
 ************************************************************
 ************************************************************
 
 IRUNN = 1 ;LIBREF = 603
 ************************************************************
  Group 2. Time dependence
 STEADY = F
    * Set overall time and no. of steps
 TFIRST =0. ;TLAST =4.
 FSTEP = 1 ;LSTEP = 4
 TFRAC(1)=0.25 ;TFRAC(2)=0.5
 TFRAC(3)=0.75 ;TFRAC(4)=1.
 ************************************************************
  Group 3. X-Direction Grid Spacing
 CARTES = F
 NX = 40
 XULAST =6.28
 XFRAC(1)=0.025 ;XFRAC(2)=0.05
 XFRAC(3)=0.075 ;XFRAC(4)=0.1
 XFRAC(5)=0.125 ;XFRAC(6)=0.15
 XFRAC(7)=0.175 ;XFRAC(8)=0.2
 XFRAC(9)=0.225 ;XFRAC(10)=0.25
 XFRAC(11)=0.275 ;XFRAC(12)=0.3
 XFRAC(13)=0.325 ;XFRAC(14)=0.35
 XFRAC(15)=0.375 ;XFRAC(16)=0.4
 XFRAC(17)=0.425 ;XFRAC(18)=0.45
 XFRAC(19)=0.475 ;XFRAC(20)=0.5
 XFRAC(21)=0.525 ;XFRAC(22)=0.55
 XFRAC(23)=0.575 ;XFRAC(24)=0.6
 XFRAC(25)=0.625 ;XFRAC(26)=0.65
 XFRAC(27)=0.675 ;XFRAC(28)=0.7
 XFRAC(29)=0.725 ;XFRAC(30)=0.75
 XFRAC(31)=0.775 ;XFRAC(32)=0.8
 XFRAC(33)=0.825 ;XFRAC(34)=0.85
 XFRAC(35)=0.875 ;XFRAC(36)=0.9
 XFRAC(37)=0.925 ;XFRAC(38)=0.95
 XFRAC(39)=0.975 ;XFRAC(40)=1.
 ************************************************************
  Group 4. Y-Direction Grid Spacing
 NY = 40
 YVLAST =10.
 YFRAC(1)=0.025 ;YFRAC(2)=0.05
 YFRAC(3)=0.075 ;YFRAC(4)=0.1
 YFRAC(5)=0.125 ;YFRAC(6)=0.15
 YFRAC(7)=0.175 ;YFRAC(8)=0.2
 YFRAC(9)=0.225 ;YFRAC(10)=0.25
 YFRAC(11)=0.275 ;YFRAC(12)=0.3
 YFRAC(13)=0.325 ;YFRAC(14)=0.35
 YFRAC(15)=0.375 ;YFRAC(16)=0.4
 YFRAC(17)=0.425 ;YFRAC(18)=0.45
 YFRAC(19)=0.475 ;YFRAC(20)=0.5
 YFRAC(21)=0.525 ;YFRAC(22)=0.55
 YFRAC(23)=0.575 ;YFRAC(24)=0.6
 YFRAC(25)=0.625 ;YFRAC(26)=0.65
 YFRAC(27)=0.675 ;YFRAC(28)=0.7
 YFRAC(29)=0.725 ;YFRAC(30)=0.75
 YFRAC(31)=0.775 ;YFRAC(32)=0.8
 YFRAC(33)=0.825 ;YFRAC(34)=0.85
 YFRAC(35)=0.875 ;YFRAC(36)=0.9
 YFRAC(37)=0.925 ;YFRAC(38)=0.95
 YFRAC(39)=0.975 ;YFRAC(40)=1.
 ************************************************************
  Group 5. Z-Direction Grid Spacing
 PARAB = F
 NZ = 40
 ZWLAST =20.
 ZFRAC(1)=0.025 ;ZFRAC(2)=0.05
 ZFRAC(3)=0.075 ;ZFRAC(4)=0.1
 ZFRAC(5)=0.125 ;ZFRAC(6)=0.15
 ZFRAC(7)=0.175 ;ZFRAC(8)=0.2
 ZFRAC(9)=0.225 ;ZFRAC(10)=0.25
 ZFRAC(11)=0.275 ;ZFRAC(12)=0.3
 ZFRAC(13)=0.325 ;ZFRAC(14)=0.35
 ZFRAC(15)=0.375 ;ZFRAC(16)=0.4
 ZFRAC(17)=0.425 ;ZFRAC(18)=0.45
 ZFRAC(19)=0.475 ;ZFRAC(20)=0.5
 ZFRAC(21)=0.525 ;ZFRAC(22)=0.55
 ZFRAC(23)=0.575 ;ZFRAC(24)=0.6
 ZFRAC(25)=0.625 ;ZFRAC(26)=0.65
 ZFRAC(27)=0.675 ;ZFRAC(28)=0.7
 ZFRAC(29)=0.725 ;ZFRAC(30)=0.75
 ZFRAC(31)=0.775 ;ZFRAC(32)=0.8
 ZFRAC(33)=0.825 ;ZFRAC(34)=0.85
 ZFRAC(35)=0.875 ;ZFRAC(36)=0.9
 ZFRAC(37)=0.925 ;ZFRAC(38)=0.95
 ZFRAC(39)=0.975 ;ZFRAC(40)=1.
 ************************************************************
  Group 6. Body-Fitted Coordinates
 ************************************************************
  Group 7. Variables: STOREd,SOLVEd,NAMEd
 ONEPHS = T
 NAME(150)=MARK
    * Y in SOLUTN argument list denotes:
    * 1-stored 2-solved 3-whole-field
    * 4-point-by-point 5-explicit 6-harmonic averaging 
 SOLUTN(MARK,Y,N,N,N,N,Y)
 ************************************************************
  Group 8. Terms & Devices
    * Y in TERMS argument list denotes:
    * 1-built-in source 2-convection 3-diffusion 4-transient
    * 5-first phase variable 6-interphase transport         
 DIFCUT =0.5 ;ZDIFAC =1.
 GALA = F ;ADDDIF = F
 ISOLX = -1 ;ISOLY = -1 ;ISOLZ = -1
 ************************************************************
  Group 9. Properties used if PRPS is not
  stored, and where PRPS = -1.0 if it is!
 RHO1 =1. ;TMP1 =0.
 EL1 =0.
 TSURR =0. ;TEMP0 =0.
 PRESS0 =0.
 DVO1DT =0. ;DRH1DP =0.
 EMISS =0. ;SCATT =0.
 RADIA =0. ;RADIB =0.
 ENUL =1.0E-05 ;ENUT =0.
 CP1 =1. ;CP2 =1.
 ************************************************************
  Group 10.Inter-Phase Transfer Processes
 ************************************************************
  Group 11.Initial field variables (PHIs)
 FIINIT(MARK)=0.
 
 PATCH(INI1 ,INIVAL, 1, 40, 1, 40, 1, 40, 1, 1)
 INIT(INI1 ,MARK,0. , GRND )
 INIADD = F
 FSWEEP = 1
 NAMFI =CHAM
 ************************************************************
  Group 12. Patchwise adjustment of terms
  Patches for this group are printed with those
  for Group 13.
  Their names begin either with GP12 or &
 ************************************************************
  Group 13. Boundary & Special Sources
   No PATCHes yet used for this Group
 XCYCLE = F
 EGWF = T
 WALLCO = GRND2
 ************************************************************
  Group 14. Downstream Pressure For PARAB
 ************************************************************
  Group 15. Terminate Sweeps
 LSWEEP = 1 ;ISWC1 = 1
 LITHYD = 1 ;LITFLX = 1 ;LITC = 1 ;ITHC1 = 1
 SELREF = T
 RESFAC =1.0E-02
 ************************************************************
  Group 16. Terminate Iterations
 ************************************************************
  Group 17. Relaxation
 RELAX(MARK,LINRLX,1.)
 OVRRLX =0.
 EXPERT = F ;NNORSL = F
 ************************************************************
  Group 18. Limits
 VARMAX(MARK)=1.0E+10 ;VARMIN(MARK)=-1.0E+10
 ************************************************************
  Group 19. Data transmitted to GROUND
 NAMSAT =MOSG
 PARSOL = F
 ISG62 = 1
 SPEDAT(SET,GXMONI,TRANSIENT,L,F)
 ************************************************************
  Group 20. Preliminary Printout
 DISTIL = T ;NULLPR = F
 NDST = 0
 DSTTOL =1.0E-02
 EX(MARK)=0.1812
 ************************************************************
  Group 21. Print-out of Variables
 INIFLD = F ;SUBWGR = F
    * Y in OUTPUT argument list denotes:
    * 1-field 2-correction-eq. monitor 3-selective dumping      
    * 4-whole-field residual 5-spot-value table 6-residual table
 OUTPUT(MARK,Y,N,Y,N,N,N)
 ************************************************************
  Group 22. Monitor Print-Out
 IXMON = 1 ;IYMON = 1 ;IZMON = 1
 NPRMON = 100000 ;NPRMNT = 1 ;TSTSWP = 1
 UWATCH = T ;USTEER = T
 HIGHLO = F
 ************************************************************
  Group 23.Field Print-Out & Plot Control
 NPRINT = 100000 ;NUMCLS = 5
 NTPRIN = 100000 ;ISTPRF = 1 ;ISTPRL = 100000
 NXPRIN = -1 ;IXPRF = 1 ;IXPRL = 10000
 NYPRIN = -1 ;IYPRF = 1 ;IYPRL = 10000
 NZPRIN = -1 ;IZPRF = 1 ;IZPRL = 10000
 XZPR = F ;YZPR = F
 IPLTF = 1 ;IPLTL = -1 ;NPLT = -1
 ISWPRF = 1 ;ISWPRL = 100000
 ITABL = 3 ;IPROF = 1
 ABSIZ =0.5 ;ORSIZ =0.4
 NTZPRF = 1 ;NCOLPF = 50
 ICHR = 2 ;NCOLCO = 45 ;NROWCO = 20
   No PATCHes yet used for this Group
 ************************************************************
  Group 24. Dumps For Restarts
 SAVE = T ;NOWIPE = F
 NSAVE =CHAM
 IDISPA = 1 ;IDISPB = 0 ;IDISPC = 0
 CSG1    ='P'
STOP