Fenics:期待计算节点的位移

计算科学 Python 芬尼克斯
2021-12-13 13:45:17

我刚刚浏览了 Fenics 书以获取节点位移并尝试了此代码....

u_nodal_values = U.vector()
u_array = u_nodal_values.array()
coor = mesh.coordinates()
center = (0.5,0.5,0.5)
print U(center)
if mesh.num_vertices()==len(u_array):
   for i in range(mesh.num_vertices()): 
       print ’U(%8g,%8g,%8g) = %g’% (coor[i][0], coor[i][1], u_array[i])

但我没有得到预期的结果..有人可以建议我修改吗?

1个回答

我认为问题在于您依赖于特定的 DOF 顺序,该顺序在 1.1 版中已更改。但是,您需要解决问题的顶点到自由度映射可以通过以下代码获得

map = V.dofmap().vertex_to_dof_map(mesh)