有限元法解偏微分方程(FEniCS)
有限元法求解牛顿流体(FEniCS)
这两篇笔记仅做入门之用。 为了深入掌握,建议阅读《Automated Solution of Differential Equations by the Finite Element Method》。 为此,我一边学习一边翻译权当笔记。
【章节目录】
有限元方法已经成为求解微分方程的通用方法。有限元方法的成功大部分可以归因于它的通用性和优雅性,它允许在一个通用框架内分析和求解来自科学所有领域的各种微分方程。有限元方法成功的另一个因素是公式的灵活性,可以通过选择近似的有限元空间来控制离散化的属性。
在本章中,我们回顾有限元方法,并总结整本书中使用的一些基本概念和符号。
在接下来的章节中,我们将更详细地讨论这些概念,并特别关注有限元方法的实现和自动化,这是FEniCS项目的一部分。
...
在Julia环境中,使用FenicsPy.jl调用FEniCS
库,求解偏微分方程。
纳维-斯托克斯方程组
纳维-斯托克斯方程:
\[
\color{red}{\frac{\partial \boldsymbol{u}}{\partial t}+(\boldsymbol{u} \cdot \nabla)\boldsymbol{u}=\frac{1}{\rho}\nabla\cdot \boldsymbol{\sigma}+\boldsymbol{f}}
\]
其中,张量
\(\boldsymbol{\sigma}\)
是应力张量
, 取决于具体流体的特性假设,比如:牛顿流体
。
连续性方程:
\[
\frac{\partial \rho}{\partial t}+\nabla \cdot (\rho \boldsymbol{u})=0
\]
...
在Julia环境中,使用FenicsPy.jl调用FEniCS
库,求解偏微分方程。
以泊松方程(第一边界条件)为例
\[
-\Delta u = f \qquad \boldsymbol{x} \in \Omega \\ u|_{\partial \Omega} =g
\]
范例而已, 本例提供的套路是通用的,大不了多看看文档。
关键的地方,我特意列出相关链接。
本文采用软件包: FEniCS。
...