Encyclopaedia Index
 TALK=F;RUN( 1, 1)

TEXT( library case Y615: Block passing through orifice

    GROUP 1. Run title and other preliminaries
  >>>>>>>>>>>>>>>>>>>>>>>>> Comment begins >>>>>>>>>>>>>>>>>>>>>>>>>
    PLANT information :
     * Data input groups used: 9, 11, 13, 19
     * Ground groups planted : 1, 9-6, 11, 13, 19-3
     * Headings used  : PRPT??, INIT??, SORC??, SC03??
     * Functions used : VELBC, XYBOX
     * Commands used  : IF, PLACE, REGION
  <<<<<<<<<<<<<<<<<<<<<<<<<  Comment ends <<<<<<<<<<<<<<<<<<<<<<<<<<

    GROUP 2. Transience; time-step specification
STEADY=F;GRDPWR(T,12,12.,1.0)
    GROUP 3. X-direction grid specification
GRDPWR(X,60,360.,1.0)
    GROUP 4. Y-direction grid specification
GRDPWR(Y,21,126.,1.0)
    GROUP 7. Variables stored, solved & named
SOLVE(P1,U1,V1)
    ** Harmonic averaging
SOLUTN(U1,Y,Y,N,P,P,Y)
SOLUTN(V1,Y,Y,N,P,P,Y)
STORE(MARK)
    GROUP 8. Terms (in differential equations) & devices
    GROUP 9. Properties of the medium (or media)
RHO1=1.
    ** Domain, object and orifice viscosities
ENUL=GRND
     * Set domain viscosity
   VISL=10.0
      * Set large viscosity in object
   VISL=1.E5
   REGION() 1
      * Set large viscosity in orifice blocks
   VISL=1.E5
   REGION() 2
  >>>>>>>>>>>>>>>>>>>>>>>>> Comment begins >>>>>>>>>>>>>>>>>>>>>>>>>
    The above settings introduce the viscous domain fluid and large
    artificial viscosities for solid blocks. The latter is essential for
    non-slip boundary conditions.

    By way of dummy REGION command with MARK value as parameter, PLANT
    is told to make the coding in grid-free manner, looking for the
    corresponding marker.
    <<<<<<<<<<<<<<<<<<<<<<<<< Comment ends <<<<<<<<<<<<<<<<<<<<<<<<<<
    GROUP 11. Initialization of variable or porosity fields
FIINIT(MARK)=0.0;FIINIT(P1)=0.0
FIINIT(U1)=0.0;FIINIT(V1)=0.0
INIADD=F
    ** Orifice initialization
     * Orifice LOWER block locations
PATCH(LOWBLOK,INIVAL,1,NX,1,NY,1,NZ,1,LSTEP)
   VAL=2.
INIT(LOWBLOK,MARK,0.0,GRND)
  PLACE(120.,240.,0.,48.)
     * Orifice UPPER block locations
PATCH(UPBLOK,INIVAL,1,NX,1,NY,1,NZ,1,LSTEP)
   VAL=2.
INIT(UPBLOK,MARK,0.0,GRND)
  PLACE(120.,240.,78.,126.)
  >>>>>>>>>>>>>>>>>>>>>>>>> Comment begins >>>>>>>>>>>>>>>>>>>>>>>>>
    All orifice cells are marked by MARK=2. PLACE command overwrites the
    whole-domain extants of the PATCH by physical extents of the blocks.
  <<<<<<<<<<<<<<<<<<<<<<<<<  Comment ends <<<<<<<<<<<<<<<<<<<<<<<<<<
    GROUP 13. Boundary conditions and special sources
PATCH(INLW,WEST,1,1,1,NY,1,NZ,1,LSTEP)
COVAL(INLW,P1,1000.,0.0)
PATCH(OUTLE,EAST,NX,NX,1,NY,1,NZ,1,LSTEP)
COVAL(OUTLE,P1,1000.,0.0)
    ** Set the object velocities
RG(1)=30.0; RG(2)=0.0
PATCH(OBJVEL,CELL,1,NX,1,NY,1,NZ,1,LSTEP)
   CO = VELBC(1.,FIXVAL)
   VAL= VELBC(1.,RG(1))
COVAL(OBJVEL,U1,GRND,GRND)
   CO = VELBC(1.,FIXVAL)
   VAL= VELBC(1.,RG(2))
COVAL(OBJVEL,V1,GRND,GRND)
  >>>>>>>>>>>>>>>>>>>>>>>>> Comment begins >>>>>>>>>>>>>>>>>>>>>>>>>
    Function VELBC is used to set the COefficients and VALues for all
    object cells . It fixes all lateral velocity components to zero and
    longitudinal ones to RG(1), which is the object velocity magnitude.
    The first function argument is set to object marker value. The
    second arguments are set equal to either FIXVAL for COefficients or
    object velocity components for VALues of momentum sources.
  <<<<<<<<<<<<<<<<<<<<<<<<<  Comment ends <<<<<<<<<<<<<<<<<<<<<<<<<<
    ** Nulify velocities in orifice blocks
PATCH(ORIVEL,CELL,1,NX,1,NY,1,NZ,1,LSTEP)
   CO = VELBC(2.,FIXVAL)
   VAL= VELBC(2.,0.0)
COVAL(ORIVEL,U1,GRND,GRND)
   CO = VELBC(2.,FIXVAL)
   VAL= VELBC(2.,0.0)
COVAL(ORIVEL,V1,GRND,GRND)
  >>>>>>>>>>>>>>>>>>>>>>>>> Comment begins >>>>>>>>>>>>>>>>>>>>>>>>>
    Function VELBC fixes velocities normal to the faces of all
    orifice  (1st argument is 2) cells to zero.
  <<<<<<<<<<<<<<<<<<<<<<<<<  Comment ends <<<<<<<<<<<<<<<<<<<<<<<<<<

    GROUP 15. Termination of sweeps
LSWEEP=50
    GROUP 17. Under-relaxation devices
relax(p1,linrlx,0.25)
RELAX(U1,FALSDT,.10)
relax(v1,falsdt,.10)

NAMSAT=MOSG
    ** Set the block positions at each time steps
     1. Nulify MARK field first
   MARK =0.
  IF(ISWEEP.EQ.1)
     2. Set lower orifice block
   MARK =2.
   PLACE(120.,240.,0.,48.) /ISWEEP.EQ.1
     3. Set upper orifice block
   MARK =2.
   PLACE(120.,240.,78.,126.) /ISWEEP.EQ.1
     4. Set the current object position
   MARK =XYBOX(1.0,RG(1)*(TIM-1.),48.,30.,30.,0.0,0.0)
  IF(ISWEEP.EQ.1)
  >>>>>>>>>>>>>>>>>>>>>>>>> Comment begins >>>>>>>>>>>>>>>>>>>>>>>>>
    Above set of PLANT blocks is responsible for planting codings to
    distribute the markers for each time step at the start of the first
    sweep. It is done in four stages indicated.

    First three reproduce the location of stationary orifice and clean
    the domain space. At the fourth stage, the function XYBOX is used to
    calculate time varying re-location of unity object marker ( 1st
    argument) as a linear function of current time and object velocity (
    2nd argument expression). The next three arguments set the cartesian
    coordinate of south-west box corner and the sizes of its sides. The
    sixth and seventh arguments, representing rotation angles, are zeros
    here.

  <<<<<<<<<<<<<<<<<<<<<<<<<  Comment ends <<<<<<<<<<<<<<<<<<<<<<<<<<

    Group 21. Print-out of Variables
OUTPUT(U1  ,Y,N,Y,N,N,N)
OUTPUT(V1  ,Y,N,Y,N,N,N)
    GROUP 22. Spot-value print-out
NPRMON=LSWEEP;IXMON=5;IYMON=12;IZMON=1
NXPRIN=1;NYPRIN=1
    GROUP 23. Print-out & plot control
TSTSWP=-1;idispa=1; csg1=p; selref=t; resfac=1.e-2
  PHOTON USE
  p;p1;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 1 sec
  msg Hit Enter to continue
  pause
  p;p2;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 2 sec
  msg Hit Enter to continue
  pause
  p;p3;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 3 sec
  msg Hit Enter to continue
  pause
  p;p4;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 4 sec
  msg Hit Enter to continue
  pause
  p;p5;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 5 sec
  msg Hit Enter to continue
  pause
  p;p6;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 6 sec
  msg Hit Enter to continue
  pause
  p;p7;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 7 sec
  msg Hit Enter to continue
  pause
  p;p8;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 8 sec
  msg Hit Enter to continue
  pause
  p;p9;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 9 sec
  msg Hit Enter to continue
  pause
  p;p10;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 10 sec
  msg Hit Enter to continue
  pause
  p;p11;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 11 sec
  msg Hit Enter to continue
  pause
  p;p12;

  con MARK z 1 fil;.001
  gr ou z 1;set vec ref 35;vec z 1
  msg  Velocity vectors field at 12 sec
  msg Type E to end
  ENDUSE
STOP