4 def __init__(self, X, Y, n):
\r
13 self.bords = [ Bord("x = cos(2*pi*t)", "y = sin(2*pi*t)", 100) ]
\r
18 def Flux(self, u1, u2):
\r
22 def Convection(self, cond_init, dt, n):
\r
24 f = open("/tmp/example.edp", "w")
\r
27 nb = len(self.bords)
\r
28 for b in self.bords:
\r
29 f.write("border b" + str(ib) + "(t=0,1){" + \
\r
30 b.X + "; " + b.Y + "; };\n");
\r
31 s = s + "b" + str(ib) + "(" + str(b.n)+ ")"
\r
38 f.write("mesh th = buildmesh(" + s + "\n");
\r
39 f.write("fespace Vh(th,P1);\n");
\r
40 f.write("Vh v = " + cond_init + ";\nplot(v);\n")
\r
41 f.write("real dt = " + str(dt) + ", t=0;\n");
\r
43 f.write("Vh u1 = " + str(self.u1) + \
\r
44 ", u2 = " + str(self.u2) + ";\n");
\r
46 f.write("int i;\nVh vv,vo;\n"
\r
47 "for ( i=0; i< " + str(n) + " ; i++) {\n"
\r
48 "t += dt;\nvo=v;\nv=convect([u1,u2],-dt,vo);\n"
\r
49 "plot(v,wait=0);\n};\n");
\r
51 os.system('FreeFem++ /tmp/example.edp');
\r