我目前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')