g[z_]=Log[z];(*Thiswayofevaluatingvwascausingproblems*)(*v[x_,y_]=D[ComplexExpand[Re[g[x+Iy]]],{{x,y}}];*)(*Weprovedbyhandthatit'sequivalenttothisformula,whichworksbetterwithsymbolicalgebra*)v[x_,y_]=ComplexExpand[ReIm[Conjugate[g'[x+Iy]]]];nparticles=1000;minx=miny=-2;maxx=maxy=2;minradius=0.1;maxradius=Sqrt[maxx^2+maxy^2];particlePositions=Transpose[{RandomReal[{minx,maxx},nparticles],RandomReal[{miny,maxy},nparticles]}];nframes=300;substeps=10;dt=0.01;update[{x_,y_},dt_]={x,y}+v[x,y]dt;stepOnce:=(particlePositions=(update[#,dt/substeps]&/@particlePositions));updateParticles:=Module[{},Do[stepOnce;particlePositions=Function[{x,y},If[Sqrt[x^2+y^2]>maxradius,minradius{Cos[#],Sin[#]}&[RandomReal[{0,2Pi}]],{x,y}]]@@@particlePositions;,substeps];]plottbl=Table[updateParticles;Graphics[{RGBColor[0.92,0.5,0.1],Point@particlePositions},Background->Black,PlotRange->{{minx,maxx},{miny,maxy}}],{frame,1,nframes}];Export["particleMoving.gif",plottbl,ImageSize->256,"DisplayDurations"->1/30,"AnimationRepetitions"->Infinity]