(PETSc with FEM)我们如何设置边界条件(Dirichlet和neumann)?

时间:2018-01-15 06:31:45

标签: finite-element-analysis petsc

我需要帮助来理解PETSc使用SNES非线性求解器的有限元方法的例子。是否有任何好的材料或资源来理解这些例子? (我已阅读PETSc用户手册,但没有我需要的信息。)

我将创建一个包含rectangular geometryPetscFEDMPlex的代码(用于非结构化网格)。该代码将使用非线性热源处理传热方程。

我想用两个dirichlet条件选择边界条件

  1. 矩形的上下边界。
  2. 两个neumann条件(矩形上的左右边界)。
  3. SNES的示例12 ,用户应定义:

      

    quadratic_u_2d作为精确解决方案(以提高收敛性   解决方案)

         

    f_0(测试函数项的积分(与负载有关)   vector'f'))

         

    f_bc_0(测试函数项的边界积分(与之相关)   与通量'g'))(我认为,这可能是边界条件)

         

    f_1(测试函数梯度项的积分(与...有关)   u_x [d]))

         

    f_bc_1(测试函数梯度项的边界积分(它为零,   我认为,这个词并没有在治理形成薄弱的时期定义   方程))

         

    g3(测试函数梯度和基函数梯度的积分   术语)(我认为这个术语在任何情况下都固定为1)

    但是没有办法单独设置每个边界条件。请给我一些建议,以便更好地承担责任。

    感谢您阅读我的问题..

1 个答案:

答案 0 :(得分:0)

我使用FVM方法在流体流动问题中使用Petsc,我通过修改矩阵A及其相应的RHS值来设置边界条件。