我的程序(在 Python 中,使用 FEniCS):
mesh=UnitSquareMesh(16,16)
U_h = VectorFunctionSpace(mesh, "Lagrange", 1)
B = VectorFunctionSpace(mesh, "Bubble", degree=3,dim=2)
Mini_h = U_h + B
边界定义(例如u0_boundary和u1_boundary分别是正方形的一部分):
w0 = Constant("0.0")
bc0 = DirichletBC(Mini_h.sub(0), w0, u0_boundary) #error
bc1 = DirichletBC(Mini_h.sub(1), w0, u1_boundary)
我得到:ValueError: Can only extract SubSpaces with i = 0 ... -1
谁能告诉我为什么?Mini_h.sub(0)是 的第一个组成部分Mini_h。
实际上,问题只是矢量气泡元素,一切正常。例如:
B = VectorFunctionSpace(mesh, "Bubble", degree=3,dim=2)
bc0 = DirichletBC(B.sub(0), w0, u0_boundary)
bc1 = DirichletBC(B.sub(1), w0, u1_boundary)
另外,我想知道为什么不能直接加一个mini有限元,而不是CG+Bubble。