pro setup_slab
  fin='glass_10x10x10'
  readnew,fin,h,'HEAD'
  readnew,fin,xin,'POS'
  xin[*,*] /= h.BOXSIZE
  Nin = TOTAL(h.npart,/int)
  
  Ndup = 10L
  fout='glass_100x100x10'
  
  Np = Ndup^2 * Nin
  x=fltarr(3,Np)

  i=0L
  FOR ix=0,Ndup-1 DO BEGIN
     FOR iy=0,Ndup-1 DO BEGIN
        FOR j=0L,Nin-1 DO BEGIN
           x[0,i] = xin[0,j] + ix 
           x[1,i] = xin[1,j] + iy
           x[2,i] = xin[2,j]
           i++
        END
     END
  END
  
  v = fltarr(3,Np)
  u=fltarr(Np)
  m=fltarr(Np)
  id=lindgen(Np)

  h.BOXSIZE=1
  h.MASSARR[*]=0

  gamma=5./3.
  rho = 1.0
  P = 1.0
  
  u[*] = P/(gamma-1)/rho
  m[*] = rho *  (h.BOXSIZE^3 / Ndup) / Np

  h.npart[*]=0
  h.npart[0]=Np

  h.PARTTOTAL[*]=0
  h.PARTTOTAL[0]=Np

  dL = 1.0
  dv = 1.0
;Left moving Plate
   jj=WHERE(x[0,*] LT dL)
   id[jj] = 0
   v[1,jj] = -1 * dv
   u[jj] *= 1.05

;Right moving Plate
   jj=WHERE(x[0,*] GT Ndup-dL)
   id[jj] = 0
   v[1,jj] = +1 * dv
   u[jj] *= 1.05

; Bring positions to [0,1]
   x /= ndup
   
   write_head,fout,h
   add_block,fout,x,'POS '
   add_block,fout,v,'VEL '
   add_block,fout,id,'ID  '
   add_block,fout,m,'MASS'
   add_block,fout,u,'U   '

   jj=where(abs(x[2,*]-0.5) LT 0.1)
   plot,x[0,*],x[1,*],psym=3
   jj=where(id[*] EQ 0)
   oplot,x[0,jj],x[1,jj],psym=3,col=128
   
end
