4

我在 Windows 子系统上为 linux 安装了 fenics 来完成我的作业。我正在尝试测试 fenics。所以我在教程中使用了 ft01_possion.py。

from fenics import *

# Create mesh and define function space
mesh = UnitSquareMesh(8, 8)
V = FunctionSpace(mesh, 'P', 1)

# Define boundary conditions
u_D = Expression('1 + x[0]*x[0] + 2*x[1]*x[1]', degree = 2)

def boundary(x, on_boundary):
      return on_boundary

bc = DirichletBC(V, u_D, boundary)

# Define variational problem
u = TrialFunction(V)
v = TestFunction(V)
f = Constant(-6.0)
a = dot(grad(u), grad(v))*dx
L = f*v*dx

# Compute solution
u = Function(V)
solve(a == L, u, bc)

# Plot solution and mesh
plot(u)
plot(mesh)
interactive()

它没有显示这个数字。我得到的错误是:

Solving linear variational problem.
Traceback (most recent call last):
File "ft01_poisson.py", line 29, in <module>
interactive()
NameError: name 'interactive' is not defined

我试图重新安装最新版本的 fenics,但没有成功。

虽然错误值的打印有效,但 NameError 会阻止显示图。

4

2 回答 2

4

不幸的是,一些 Fenics 的例子已经过时了。请参阅以下GitHub 帖子

将“交互式()”更改为

import matplotlib.pyplot as plt
plt.show()

这将显示您的结果。

于 2019-08-07T09:02:51.937 回答
0

错误显示如下:error_L2 = 0.008235098073354827 error_max = 1.3322676295501878e-15 但是有:NameError: name 'interactive' is not defined,可能这个错误不影响结果

于 2019-01-08T19:31:22.763 回答