在Fenics documentation中,提到了
DirichletBC takes three arguments, the first one is our function space V, the next is the boundary condition value and the third is the subdomain indicator which is information stored in the mesh.
网格文件中的子域指示符在哪里?如何更改它的价值?
上下文:我在具有多个边界部分的域上求解,每个部分都有一个常数Dirichlet条件。
我使用的网格文件是使用Triangle和dolfin-convert
生成的,以获取xml文件。
据我所知,GMSH等网格划分工具本身提供了标记边界的选项,但我宁愿不求助于另一个网格物体,因为我已经习惯了Triangle。
答案 0 :(得分:0)
我没有弄清楚如何修改网格以添加边界标记,但我确实找到了page 9 of this document中部分问题的解决方法。
我们的想法是为每个边界定义边界条件
u_1 = Constant(0.0)
def b_1(x, on_boundary):
return on_boundary and \
near(x[0]*x[0]+x[1]*x[1], 1, 1e-2)
然后定义可以传递给solve
函数
bcs = [DirichletBC(V, u_1, b_1), ...]
然而,这仅在每个边界可以用等式描述时才有效。所以这不是问题的一般解决方案