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


  vi 1 1 1;rot y ang 30
  gr ou x 1
  gr ou y 1
  gr ou z 1
  gr ou x m
  gr ou y m
  gr ou z m
  msg  Drilling diagonal tube in a cube
  msg  Please wait .....
  surf mark x 0.99
  msg  Hit Enter to continue
  pause
  p
  p2


  msg  Drilling the cone in a cube
  con mark z 20 x 21 40 y 1 m fil;.01
  con mark x 20 y 1 m z 21 40 fil;.01
  msg  Please wait .....
  surf mark x 0.99
  msg  Hit Enter to continue
  pause
  p
  p3


  msg  Drilling the spherical chamber
  con mark z 20 x 21 40 y 1 m fil;.01
  con mark x 20 y 1 m z 21 40 fil;.01
  msg  Please wait .....
  surf mark x 0.99
  msg  Hit Enter to continue
  pause
  p
  p4



  msg Drilling the junction
  con mark z m x 1 20 fil;.01
  con mark x 20 y 1 m x 1 m fil;.01
  con mark y m x 1 20 z 1 m fil;.01
  msg  Please wait .....
  surf mark y 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 cartesian  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 one spherical drill
    bit is 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 tube in a cube
PATCH(INI1,INIVAL,1,NX,1,NY,1,NZ,1,1)
   VAL=SPHERE(0.,XG2D,XG2D,XG2D,2.5)
INIT (INI1,MARK,0.,GRND)
    In above  settings the coordinates of SPHERE vary with X
    direction coordinate.  For uniform  grid  it  makes  the
    SPHERE function to "drill" the circular diagonal pipe of
    2.5 diameter in a cube.  Each cell of the pipe  has  the
    marker MARK=0.0.
  <<<<<<<<<<<<<<<<<<<<<<< Comment ends <<<<<<<<<<<<<<<<<<<<<
    2.  Drilling the cone
   MARK=1.
  IF(ISTEP.EQ.2.AND.LSWEEP.EQ.1)
   MARK=SPHERE(0.,10.,YG2D,10.,0.25*(-YG2D+20.))
  IF(ISTEP.EQ.2.AND.LSWEEP.EQ.1)
    The centre  of SPHERE "drill bit" goes verticall upwards
    along the line of X=10 and Z=10. The "drill" diameter is
    linearly  diminished.  It  results  in conical step-wise
    fitting.
  <<<<<<<<<<<<<<<<<<<<<<< Comment ends <<<<<<<<<<<<<<<<<<<<<
    3.  Drilling spherical chamber
   MARK=1.
  IF(ISTEP.EQ.3.AND.LSWEEP.EQ.1)
   MARK=SPHERE(0.,10.,10.,10.,8.)
  IF(ISTEP.EQ.3.AND.LSWEEP.EQ.1)
   MARK=SPHERE(0.,XG2D,16.,10.,2.)
  REGION(1,20,1,NY,1,NZ,3,3) /LSWEEP.EQ.1
   MARK=SPHERE(0.,XG2D,4.,10.,2.)
  REGION(21,NX,1,NY,1,NZ,3,3) /LSWEEP.EQ.1
    The SPHEREs are used to "drill"  two  cylindrical  pipes
    joining  tangentially the spherical chamber at its upper
    and lower poles.
  <<<<<<<<<<<<<<<<<<<<<<< Comment ends <<<<<<<<<<<<<<<<<<<<<
    4. Drilling the junction
   MARK=1.
  IF(ISTEP.EQ.4.AND.LSWEEP.EQ.1)
   MARK=SPHERE(0.,10.,5.,ZGNZ,3.)
  REGION(1,NX,1,NY,10,NZ,4,4) /LSWEEP.EQ.1
   MARK=SPHERE(0.,10.,15.,ZGNZ,3.)
  REGION(1,NX,1,NY,10,NZ,4,4) /LSWEEP.EQ.1
   MARK=SPHERE(0.,10.,YV2D,10.,3.)
  REGION(1,NX,10,30,1,NZ,4,4) /LSWEEP.EQ.1
    Just three above statements are needed to "drill"  in  a
    cube  two parallel cylinders joined the vertical pipe of
    the same diameter.
  <<<<<<<<<<<<<<<<<<<<<<< Comment ends <<<<<<<<<<<<<<<<<<<<<
   PLANTEND
 ************************************************************
  Group 1. Run Title and Number
 ************************************************************
 ************************************************************
 
 TEXT( DRILling BOX: CARTES =T                )
 
 ************************************************************
 ************************************************************
 
 IRUNN = 1 ;LIBREF = 602
 ************************************************************
  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 = T
 NX = 40
 XULAST =20.
 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 =20.
 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)=1.
 
 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-05
 ************************************************************
  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)
 SPEDAT(SET,GXMONI,PLOTALL,L,T)
 ************************************************************
  Group 20. Preliminary Printout
 DISTIL = T ;NULLPR = F
 NDST = 0
 DSTTOL =1.0E-02
 EX(MARK)=0.8742
 ************************************************************
  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