Exemplo n.º 1
0
# visual_mesh.write_png("Image/mesh_%gx%g.png"%(nx,ny))

# Plot solution
X = 0; Y = 1;
u1,u2 = u0.split(deepcopy = True)

us = u1 if u1.ufl_element().degree() == 1 else \
     interpolate(u1, FunctionSpace(mesh, 'Lagrange', 1))
u_box = scitools.BoxField.dolfin_function2BoxField(us, mesh, (nx,ny), uniform_mesh=True)


ev.contour(u_box.grid.coorv[X], u_box.grid.coorv[Y], u_box.values, 20, 
           savefig='Image/Contour of u1_P%g(mesh:%g-%g).png'% (nz,nx,ny), title='Contour plot of u1', colorbar='on')

ev.figure()
ev.surf(u_box.grid.coorv[X], u_box.grid.coorv[Y], u_box.values, shading='interp', colorbar='on', title='surf plot of u1', savefig='Image/Surf of u1_P%g(mesh:%g-%g).png'% (nz,nx,ny))

#ev.figure()
#ev.mesh(u_box.grid.coorv[X], u_box.grid.coorv[Y], u_box.values,colorbar='on',shading='interp', title='mesh plot of u1', savefig='Image/Mesh of u1_P%g(mesh:%g-%g).png'% (nz,nx,ny))

# Plot exact solution
u1_ex,u2_ex = u_ex.split(deepcopy = True)
u1_ex = u1_ex if u1_ex.ufl_element().degree() == 1 else \
     interpolate(u1_ex, FunctionSpace(mesh, 'Lagrange', 1))
u_box = scitools.BoxField.dolfin_function2BoxField(u1_ex, mesh, (nx,ny), uniform_mesh=True)

ev.figure()
ev.contour(u_box.grid.coorv[X], u_box.grid.coorv[Y], u_box.values, 20, 
           savefig='Image/Contour of exact solution u1_P%g(mesh:%g-%g).png'% (nz,nx,ny), title='Contour plot of exact u1',colorbar='on')

ev.figure()
Exemplo n.º 2
0
i = nx
j = ny
print 'u(%g,%g)=%g' % (u_box.grid.coor[X][i], u_box.grid.coor[Y][j],
                       u_box.values[i, j])
ev.contour(u_box.grid.coorv[X],
           u_box.grid.coorv[Y],
           u_box.values,
           14,
           savefig='tmp0.eps',
           title='Contour plot of u',
           clabels='on')
ev.figure()
ev.surf(u_box.grid.coorv[X],
        u_box.grid.coorv[Y],
        u_box.values,
        shading='interp',
        colorbar='on',
        title='surf plot of u',
        savefig='tmp3.eps')
ev.figure()
ev.mesh(u_box.grid.coorv[X],
        u_box.grid.coorv[Y],
        u_box.values,
        title='mesh plot of u',
        savefig='tmp4.eps')

# Extract and plot u along the line y=0.5
start = (0, 0.5)
x, uval, y_fixed, snapped = u_box.gridline(start, direction=X)
if snapped:
    print 'Line at %s adjusted (snapped) to y=%g' % (start, y_fixed)
Exemplo n.º 3
0
     interpolate(u, FunctionSpace(mesh, 'Lagrange', 1))
# alternatively: interpolate onto a finer mesh for higher degree elements
u_box = scitools.BoxField.dolfin_function2BoxField(
        u2, mesh, (nx,ny), uniform_mesh=True)

# Write out u at mesh point (i,j)
i = nx; j = ny
print('u(%g,%g)=%g' % (u_box.grid.coor[X][i],
                       u_box.grid.coor[Y][j],
                       u_box.values[i,j]))
ev.contour(u_box.grid.coorv[X], u_box.grid.coorv[Y], u_box.values,
           14, savefig='tmp0.eps', title='Contour plot of u',
           clabels='on')
ev.figure()
ev.surf(u_box.grid.coorv[X], u_box.grid.coorv[Y], u_box.values,
        shading='interp', colorbar='on',
        title='surf plot of u', savefig='tmp3.eps')
ev.figure()
ev.mesh(u_box.grid.coorv[X], u_box.grid.coorv[Y], u_box.values,
        title='mesh plot of u', savefig='tmp4.eps')

# Extract and plot u along the line y=0.5
start = (0,0.5)
x, uval, y_fixed, snapped = u_box.gridline(start, direction=X)
if snapped:
    print('Line at %s adjusted (snapped) to y=%g' % (start, y_fixed))
ev.figure()
ev.plot(x, uval, 'r-', title='Solution',
        legend='finite element solution')

# Plot the numerical (projected) and exact flux along this line
Exemplo n.º 4
0
                                                   mesh, (nx, ny),
                                                   uniform_mesh=True)

ev.contour(u_box.grid.coorv[X],
           u_box.grid.coorv[Y],
           u_box.values,
           20,
           savefig='Image/Contour of u1_P%g(mesh:%g-%g).png' % (nz, nx, ny),
           title='Contour plot of u1',
           colorbar='on')

ev.figure()
ev.surf(u_box.grid.coorv[X],
        u_box.grid.coorv[Y],
        u_box.values,
        shading='interp',
        colorbar='on',
        title='surf plot of u1',
        savefig='Image/Surf of u1_P%g(mesh:%g-%g).png' % (nz, nx, ny))

#ev.figure()
#ev.mesh(u_box.grid.coorv[X], u_box.grid.coorv[Y], u_box.values,colorbar='on',shading='interp', title='mesh plot of u1', savefig='Image/Mesh of u1_P%g(mesh:%g-%g).png'% (nz,nx,ny))

# Plot exact solution
u1_ex, u2_ex = u_ex.split(deepcopy=True)
u1_ex = u1_ex if u1_ex.ufl_element().degree() == 1 else \
     interpolate(u1_ex, FunctionSpace(mesh, 'Lagrange', 1))
u_box = scitools.BoxField.dolfin_function2BoxField(u1_ex,
                                                   mesh, (nx, ny),
                                                   uniform_mesh=True)
x = y = np.linspace(-10., 10., 41)
xv, yv = plt.ndgrid(x, y)
hv = h0/(1+(xv**2+yv**2)/(R**2))

s = np.linspace(0, 2*np.pi, 100)
curve_x = 10*(1 - s/(2*np.pi))*np.cos(s)
curve_y = 10*(1 - s/(2*np.pi))*np.sin(s)
curve_z = h0/(1 + 100*(1 - s/(2*np.pi))**2/(R**2))

# Simple plot of mountain
plt.figure(1)
plt.mesh(xv, yv, hv)

# Simple plot of mountain and parametric curve
plt.figure(2)
plt.surf(xv, yv, hv)
plt.hold('on')

# add the parametric curve. Last parameter controls color of the curve
plt.plot3(curve_x, curve_y, curve_z, 'b-')
# endsimpleplots

# Default two-dimensional contour plot
plt.figure(3)
plt.contour(xv, yv, hv)

# Default three-dimensional contour plot
plt.figure(4)
plt.contour3(xv, yv, hv, 10)

# 10 contour lines (equally spaced contour levels)
x = y = np.linspace(-10., 10., 41)
xv, yv = plt.ndgrid(x, y)
hv = h0 / (1 + (xv**2 + yv**2) / (R**2))

s = np.linspace(0, 2 * np.pi, 100)
curve_x = 10 * (1 - s / (2 * np.pi)) * np.cos(s)
curve_y = 10 * (1 - s / (2 * np.pi)) * np.sin(s)
curve_z = h0 / (1 + 100 * (1 - s / (2 * np.pi))**2 / (R**2))

# Simple plot of mountain
plt.figure(1)
plt.mesh(xv, yv, hv)

# Simple plot of mountain and parametric curve
plt.figure(2)
plt.surf(xv, yv, hv)
plt.hold('on')

# add the parametric curve. Last parameter controls color of the curve
plt.plot3(curve_x, curve_y, curve_z, 'b-')
# endsimpleplots

# Default two-dimensional contour plot
plt.figure(3)
plt.contour(xv, yv, hv)

# Default three-dimensional contour plot
plt.figure(4)
plt.contour3(xv, yv, hv, 10)

# 10 contour lines (equally spaced contour levels)