1

Fenics 文档中,提到了

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.

网格文件中的子域指示器在哪里?我如何改变它的价值?


背景:我正在解决一个具有多个边界部分的域,每个部分都有一个恒定的狄利克雷条件。

我使用的网格文件是使用Triangle生成的,并dolfin-convert获取一个 xml 文件。

据我了解,像 GMSH 这样的网格划分工具本身就提供了标记边界的选项,但我不想求助于另一个网格划分器,因为我习惯了三角形。

4

1 回答 1

0

我没有弄清楚如何修改网格以添加边界标记,但我确实在本文档的第 9 页找到了解决部分问题的方法。

这个想法是为每个边界定义一个边界条件

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), ...]

然而,这只有在每个边界都可以用一个方程来描述时才有效。所以这不是问题的一般解决方案

于 2018-03-11T16:00:53.633 回答