// example27.edp, from chap3/convects.edp // Characteristics Galerkin border C(t=0, 2*pi) { x=cos(t); y=sin(t); }; mesh Th = buildmesh(C(100)); fespace Uh(Th,P1); Uh cold, c = exp(-10*((x-0.3)^2 +(y-0.3)^2)); real dt = 0.17,t=0; Uh u1 = y, u2 = -x; real [int] viso=[-0.1, 0, 0.5, 0.1, 0.5, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.9, 1]; for (int m=0; m<2*pi/dt ; m++) { t += dt; cold=c; c=convect([u1,u2], -dt, cold); plot(c,cmm=" t="+t + ", min=" + c[].min + ", max=" + c[].max, viso=viso, dim=3, fill=true); } plot(c,wait=true,fill=false,value=true,viso=viso, cmm="example27, min=" + c[].min + ", max=" + c[].max);