谢谢你们
1.)我正在尝试使用通用“混合”有限元方法解决不可压缩斯托克斯和纳维尔斯托克斯方程的盖子驱动腔问题。dirchlet 边界条件在边界上的任何地方都指定。
当我尝试求解这些方程组时,我的矩阵显示它是奇异的。我的疑问是是否有必要在某个时候指定压力值?否则如何施加约束“域上的平均压力为零”?在有限元法中。
2.) 我正在尝试使用混合有限元方法模拟气缸上的不可压缩流动。dirchlet 边界条件在入口、顶部、底部、圆上指定,在出口处不执行任何操作。
是否有必要在某个时候给出压力值?
谢谢你们
1.)我正在尝试使用通用“混合”有限元方法解决不可压缩斯托克斯和纳维尔斯托克斯方程的盖子驱动腔问题。dirchlet 边界条件在边界上的任何地方都指定。
当我尝试求解这些方程组时,我的矩阵显示它是奇异的。我的疑问是是否有必要在某个时候指定压力值?否则如何施加约束“域上的平均压力为零”?在有限元法中。
2.) 我正在尝试使用混合有限元方法模拟气缸上的不可压缩流动。dirchlet 边界条件在入口、顶部、底部、圆上指定,在出口处不执行任何操作。
是否有必要在某个时候给出压力值?
你的矩阵是奇异的是有道理的,因为压力只知道一个常数。也就是说,如果是方程组的解,那么也是一种解决方案。
要看到这意味着奇点,请注意,如果鞍点线性系统写为, 然后是系统的解决方案. 但是之后还解决了系统,因此是一个非平凡的零空间和一个奇异的线性系统。
如果不知道你的方案的细节,很难准确地说出你应该做什么。但是您可以采取一些一般方法:
在您的线性系统中添加一行,强制在域上平均单元压力的平均值为 0,或者域中某个点的压力为 0。然后以最小二乘法求解系统(使用一些迭代线性求解器)。这可能是最简单的方法。
不是求解鞍点系统,而是使用增强拉格朗日方法,其中压力和速度是解耦的,并在压力和速度猜测之间迭代直到收敛。如果您从压力的零均值猜测开始,则将保留均值零属性。有关更详细的讨论,请参见本文。解耦压力和速度也可以具有计算优势,因为它减小了您必须求解的线性系统的大小。
与其求解鞍点系统,不如使用投影方法来解耦压力和速度(参见 Chorin,Guermond 论文)。在这种情况下,您将有一个奇异的压力校正方程泊松方程,您可以在其中应用惩罚方法来消除奇异性。
请检查这篇文章。
当对 FEA 理论感兴趣时(基本上,我们无法强制执行),使用零平均压力空间是为了方便为了因为它没有意义);从计算的角度来看,修复其中一个压力自由度更容易(尽管如果您愿意,可以在后处理步骤中减去平均值)。当你在使用多项式空间时——这正是你在 FEM 中所做的——强制执行是完全可以的. 像处理 Dirichlet BC 一样处理这个约束(例如,通过修改矩阵)。
在某些情况下也可以忽略这个约束(例如,Krylov 求解器可以很好地解决这个问题)。
在这种情况下,您的矩阵将是合适的。Neumann 条件解决了将压力定义为常数的问题。
当您说使用一般的“混合”有限元方法时,我假设您使用的是耦合速度-压力公式。如果我错了,请纠正我。
您尚未指定您使用的是 LBB 稳定元素还是稳定配方。然而,无论您使用的是稳定的配方还是 LBB 稳定的元素,当您使用消除方法应用 Dirichlet BC 时,将有助于在某一点固定压力。
当您使用稳定的公式时,如果您在某些示例中不固定一个节点的压力,您可能不会遇到任何收敛问题。但是,当您使用 LBB 稳定单元时,您必须在一个节点处固定压力;如果不这样做,您将遇到收敛问题。
如果您使用消除方法来应用 Dirichlet BC,那么您可以简单地消除固定压力节点的相应行和列。
对于您感兴趣的示例问题,我建议参考这篇关于不可压缩流体流动的稳定有限元公式的优秀博士论文。
Donea 和 Huerta的教科书也是不可压缩流体流动混合配方的极好参考。