Exemple #1
0
"""
N1, N2 = 50, 50
l1, l2 = 1., 1.
Ncolor = 200
levels = linspace(0., 10., 20)

mesh = RegularQuadMesh(N1 = N1, N2 = N2, l1 = l1, l2 = l2)
nodes = mesh.nodes

tensorField = mesh.nodes.eval_tensorFunction(Bo.sigma_boussinesq())

sigma_zz = tensorField.get_component(22) 
VM = tensorField.vonmises() 
P = tensorField.pressure() 

xt,yt,zt = mesh.convert2tri3().get_edges() 
xb,yb,zb = mesh.get_border()
X,Y,Z,tri = mesh.dump2triplot()

"""
Display of stress fields
"""
fig = plt.figure(figsize=(16,4))

g1 = fig.add_subplot(131)
g1.set_aspect('equal')
g1.set_title(r'$\sigma_{zz}$')
g1.tricontourf(X,Y,tri,sigma_zz.data, levels = levels)
g1.tricontour(X,Y,tri,sigma_zz.data, levels = levels, colors = 'black')

g2 = fig.add_subplot(132)
ax.set_aspect('equal')
ax2.set_aspect('equal')
ax3.set_aspect('equal')
ax.set_xticks([])
ax.set_yticks([])
ax2.set_xticks([])
ax2.set_yticks([])
ax3.set_xticks([])
ax3.set_yticks([])
ax.set_frame_on(False)
ax2.set_frame_on(False)
ax3.set_frame_on(False)
ax.set_title(r'$\sigma_{zz}$')
ax2.set_title(r'Von Mises $\sigma_{eq}$')
ax3.set_title(r'Pressure $p$')
xt, yt, zt = mesh.convert2tri3().get_edges()  # Triangular mesh edges
xb, yb, zb = mesh.get_border()

X, Y, Z, tri = mesh.dump2triplot()

ax.plot(xb, yb, 'k-', linewidth=2.)
ax.tricontourf(X, Y, tri, field.data, levels=levels)
ax.tricontour(X, Y, tri, field.data, levels=levels, colors='black')
ax2.plot(xb, yb, 'k-', linewidth=2.)
ax2.tricontourf(X, Y, tri, field2.data, levels=levels)
ax2.tricontour(X, Y, tri, field2.data, levels=levels, colors='black')
ax3.plot(xb, yb, 'k-', linewidth=2.)
ax3.tricontourf(X, Y, tri, field3.data, levels=sorted(-levels))
ax3.tricontour(X, Y, tri, field3.data, levels=sorted(-levels), colors='black')
ax.set_xlim([-.1 * l1, 1.1 * l1])
ax.set_ylim([-.1 * l2, 1.1 * l2])
ax2.set_aspect('equal')
ax3.set_aspect('equal')
ax.set_xticks([])
ax.set_yticks([])
ax2.set_xticks([])
ax2.set_yticks([])
ax3.set_xticks([])
ax3.set_yticks([])
ax.set_frame_on(False)
ax2.set_frame_on(False)
ax3.set_frame_on(False)
ax.set_title('Orginal Mesh')
ax2.set_title('Triangularized Mesh')
ax3.set_title('Field')
x,y,z = mesh.get_edges() # Mesh edges
xt,yt,zt = mesh.convert2tri3().get_edges() # Triangular mesh edges
xb,yb,zb = mesh.get_border()
X,Y,Z,tri = mesh.dump2triplot()
ax.plot(x,y,'k-')
ax2.plot(xt,yt,'k-')
ax3.plot(xb,yb,'k-', linewidth = 2.)
ax3.tricontourf(X,Y,tri,field.data, Ncolor)
ax3.tricontour(X,Y,tri,field.data, Ncolor, colors = 'black')
ax.set_xlim([-.1*l1,1.1*l1])
ax.set_ylim([-.1*l2,1.1*l2])
ax2.set_xlim([-.1*l1,1.1*l1])
ax2.set_ylim([-.1*l2,1.1*l2])
ax3.set_xlim([-.1*l1,1.1*l1])
ax3.set_ylim([-.1*l2,1.1*l2])
plt.show()