pro show_ngp window,xsize=1000,ysize=1000 readnew,'snap_144',h,'HEAD' ngrid=20 vel_grid=fltarr(3,ngrid,ngrid,ngrid) n_grid=fltarr(ngrid,ngrid,ngrid) readnew,'snap_144',x,'POS',part=0 readnew,'snap_144',v,'VEL',part=0 FOR i=0L,h.npart[0]-1 DO BEGIN ix=FLOOR(x[0,i]/h.BOXSIZE*ngrid) iy=FLOOR(x[1,i]/h.BOXSIZE*ngrid) iz=FLOOR(x[2,i]/h.BOXSIZE*ngrid) vel_grid[*,ix,iy,iz] += v[*,i] n_grid[ix,iy,iz] += 1.0 END FOR k=0,2 DO vel_grid[k,*,*,*] = vel_grid[k,*,*,*]/n_grid[*,*,*] jj=WHERE(ABS(x[2,*]-h.BOXSIZE/2) LT 2*h.BOXSIZE/ngrid) plot,[1],[1],xst=1,yst=1,xr=[0,h.BOXSIZE],yr=[0,h.BOXSIZE],/nodata oplot,x[0,jj],x[1,jj],psym=1,col=64,symsize=0.5 seed=1234L Nlines = 10 ind_lines = ROUND(randomu(seed,Nlines)*h.npart[0]) NSTEPS = 40 dt=5.0 FOR ix=0,ngrid-1 DO BEGIN FOR iy=0,ngrid-1 DO BEGIN ; FOR iz=0,ngrid-1 DO BEGIN FOR iz=ngrid/2-1,ngrid/2-1 DO BEGIN x0=([ix,iy,iz]+0.5)*h.BOXSIZE/ngrid oplot,[x0[0]],[x0[1]],psym=4,col=255 FOR k=0L,NSTEPS DO BEGIN print,x0 ix0=FLOOR(x0[0]/h.BOXSIZE*ngrid) iy0=FLOOR(x0[1]/h.BOXSIZE*ngrid) iz0=FLOOR(x0[2]/h.BOXSIZE*ngrid) x1 = x0 + vel_grid[*,ix0,iy0,iz0] * dt oplot,[x0[0],x1[0]],[x0[1],x1[1]],col=255 x0 = x1 END END END END stop end