我正在寻找有关如何编写程序以数值求解 PDE 的一些指导。作为一维比较的示例:
我们可以尝试 6 个介于 0 和 1 之间的等距节点,在每个元素内用二次插值,并确保和在边界处,并在每个元素内求解,我们可以对每个元素积分微分方程。我相信这种恒定权重整合造就了这个 FVM。那是对的吗?
在任何情况下,5 个元素中的每一个都有 3 个自由度,每个元素有 1 个积分方程,4 个内部边界中的每一个都有 2 个兼容性条件,以及作为问题的一部分给出的 2 个边界条件。所以这是可以求解的 15 个变量中的 15 个方程。在尝试制作等效的 2D 方法时,我无法弄清楚如何生成正确数量的兼容性方程。例如:
想象一下,我们用 5 x 5 个正方形的网格进行网格划分,每个正方形分成两个三角形。每个三角形元素都可以用二次方表示和(6 个自由度)。DE 对每个元素都进行了集成。连续性和可以确保在边界处,尽管这可能已经受到过度/不足的约束。
有 50 个元素,65 个内部边界和 20 个外部边界。有 300 个自由度。兼容性和在单个内部边界上产生 5 个方程,但是每个内部边界的 5 个方程组不是相互独立的,或者系统由于已经有太多方程而受到过度约束。
据我了解,代表自由度的价值在三角形的角和边缘中点是本质上满足连续性的一种方式条件和减少自由度的数量,但它并不能从本质上满足其他兼容性条件。但我会提到这一点,以防正确表示自由度是帮助理解问题的关键。
如果我以大致正确的方式考虑这个问题,我如何确定兼容性条件并生成正确数量的方程来求解给定数量的自由度?如果我没有以正确的方式思考问题,但您可以帮助我将其引入一个更具体、更普遍相关的问题,请这样做。