我正在尝试获得插值函数(在 3D 中)在单元格的所有顶点。我提取单元格的所有顶点,然后将值分配给每个顶点:如果它在半径范围内,然后我分配值,例如 3.91。如果它在球体之外,那么我将值赋值为 0。我让它在没有错误消息的情况下运行,但是当我在不是顶点的点处计算函数值时,它不会给我 3.91 或 0。我在做什么这里有什么问题吗?
这是我的代码的一部分:
提取所有单元格的顶点,然后导出这些点并使用另一个软件为每个点分配值(例如 3.91 表示球内的点,0 表示球外的点)
coor = mesh.coordinates()
numpy.savetxt('meshforE.txt',coor)
我得到所有顶点的值,然后将其插入到函数 f
qvalues2 = numpy.loadtxt('qdata.txt')
V = FunctionSpace(mesh, "CG", 1)
f = Function(V)
f.vector()[:] = qvalues2
然后我读(xp, yp)
了点平面并评估这些点的功能
with open('xpdata.txt') as g:
xp = g.readlines()
print "xp[1]=", xp[1]
with open('ypdata.txt') as h:
yp = h.readlines()
print "yp[2]=", yp[2]
for i in range(len(xp)):
g_in[i] = f(xp[i],yp[i],0.0)
现在当我绘制,它看起来不像它应该是的,即圆圈内的常数(3.91), 外为 0。任何帮助,将不胜感激。