0

我目前UnitCubeMesh(2,2,2)在 Fenics 中有一个简单的,我希望为网格表面上的每个元素提取法向量的坐标(不为网格本身的主体内的任何元素提取法向量)。然后我输出网格上每个元素的坐标 (x,y,z),以及该元素的法线向量的相应坐标 (nx,ny,nz)。FacetNormal()显然,由于在 Fenics 中如何定义局部和全局法线,因此简单地使用 存在问题?

下面是我为提取边界上每个元素的空间坐标而编写的代码,如何将其扩展为法向量分量?

from dolfin import *
import numpy as np

mesh = UnitCubeMesh(2,2,2)
Space = FunctionSpace(mesh,'P', 1)


# Coordinates of DoFs in Space, as a matrix with a row for each point's
# x, y, and z coordinates:
x_Space = Space.tabulate_dof_coordinates().reshape((-1,mesh.geometry().dim()))

# Put together into a matrix of the desired form:
data = np.append(x_Space,1)
print(data)

filename = "output.txt"


with open(filename, 'w') as f:
  np.savetxt(f, data, header = 'x,y,z')
4

0 回答 0