深度内容 | 北太天元PDE工具箱的有限元方法及算例详解

一、前言

偏微分方程(Partial Differential Equation, PDE)是数学中的一个重要分支,主要用于描述物理量随时间和空间变化的规律。偏微分方程的应用非常广泛,涵盖了物理学、工程学、生物学和化学等多个领域。例如,在物理学中,它们用于描述热传导、流体力学和电磁场理论等现象;在工程学中,用于描述结构力学、振动分析和传热等问题;在生物学和化学中,用于研究种群动态、化学反应和扩散过程等。此外,偏微分方程的应用也已扩展至经济学、金融预测、图像处理等现代领域。

大多数偏微分方程的解析解难以求得,数值方法成为求解偏微分方程的常用途径。数值解法旨在通过离散化的方式将偏微分方程转化为有限维的代数方程,从而可以在计算机上进行求解。常用的数值解法包括有限差分方法(Finite Difference Method, FDM)、有限元方法(Finite Element Method, FEM)和有限体积方法(Finite Volume Method, FVM)等。

北太天元PDE工具箱提供了偏微分方程数值解的有限差分法和有限元方法两类。本文主要介绍有限元方法及应用算例。

二、有限元方法基本原理

有限元方法的基本原理可以概括为将复杂问题分解为简单的小单元,通过局部近似来构建全局解u。首先将求解域划分为有限个简单的子区域,称为单元(elements)。这些单元可以是线段、三角形、四边形,四面体、六面体等。有限元法的关键是将问题从强形式转化为弱形式(积分形式),使得解的空间从连续可微函数扩展到更大的函数空间(通常是 Sobolev 空间)。在弱形式的基础上,结合单元的离散化和基函数,将问题的全局解u转化为一个矩阵形式的代数方程组 A U = b \mathbf{A}\mathbf{U}=\mathbf{b} AU=b。利用数值代数方法求解全局代数方程组得到节点上的近似解 U = [ u 1 , u 2 , ⋯   , u N ] T \quad \mathbf{U}=[ u_1,u_2,\cdots,u_N]^T U=[u1,u2,,uN]T,最终利用基函数在整个区域上得到有限元逼近解:
u ≈ u h = ∑ i = 1 N u i φ i u \approx u_h = \sum_{i=1}^N u_i \varphi_i uuh=i=1Nuiφi

1、弱形式

在有限元方法中,方程的弱形式化是一个核心原理。目的是将问题的解从要求在每个点上满足微分方程的强条件,转换为在一定函数空间内满足积分形式的条件。这种转化不仅可以简化问题,还可以容忍某些解的不连续性或低光滑性。

假设有如下问题:

∇ ⋅ ( − k ∇ u ) = g ( u , x ) in  Ω , \nabla \cdot (-k\nabla u)=g(u,x ) \quad \text{in} ~\Omega, (ku)=g(u,x)in Ω

该方程两端都乘以一个测试函数 φ ∈ V h \varphi\in V_h φVh,并在 Ω \Omega Ω上积分得

∫ Ω k ∇ ⋅ ( − k ∇ u ) φ d V = ∫ Ω g φ d V , ∀ φ ∈ V h \int_{\Omega} k\nabla \cdot (-k\nabla u)\varphi dV = \int_{\Omega} g \varphi dV,\quad \forall\varphi\in V_h Ωk(ku)φdV=ΩgφdV,φVh
然后通过分部积分可得:

∫ Ω k ∇ u ⋅ ∇ φ d V + ∫ ∂ Ω ( − k ∇ u ) ⋅ n φ d S = ∫ Ω g φ d V , ∀ φ ∈ V h \int_{\Omega} k\nabla u \cdot \nabla \varphi dV + \int_{ \partial \Omega} (- k\nabla u )\cdot \mathbf{n}\varphi dS = \int_{\Omega} g \varphi dV,\quad \forall\varphi\in V_h ΩkuφdV+Ω(ku)nφdS=ΩgφdV,φVh
该方程放宽了原方程的要求。原方程要求每一个点上都必须被明确定义,而弱形式公式只要求积分相等,可以允许解u不连续或不具备足够的光滑性。

2、伽辽金(Galerkin)法

伽辽金法用于求解微分方程的弱形式。它是有限元方法的基础,具体思想是在弱形式中采用一种特定的离散化策略:选择一组基函数 { φ 1 , φ 2 , ⋯   , φ n } \{\varphi_1,\varphi_2,\cdots,\varphi_n\} {φ1,φ2,,φn},这些函数通常是多项式或其他合适的基函数,并且它们在问题的定义域上有某些特性(如满足边界条件)。这些函数组成了一个有限元逼近空间 V h V_h Vh,对于任意的函数 u h ∈ V h u_h \in V_h uhVh可以表示为:
u h = ∑ i u i φ i ( x ) u_h = \sum_i u_i \varphi_i(x) uh=iuiφi(x)

代入到弱形式,可得:

∑ i n u i ∫ Ω k ∇ φ i ⋅ ∇ φ j d V + ∑ i n ∫ ∂ Ω ( − k u i ∇ φ i ) ⋅ n φ j d S = ∫ Ω g ( ∑ i n u i ∇ φ i ) φ j d V , φ j ∈ V h \sum_{i}^{n} u_i \int_{\Omega} k\nabla \varphi_i \cdot \nabla \varphi_j dV + \sum_{i}^{n} \int_{ \partial \Omega} (-k u_i\nabla \varphi_i )\cdot \mathbf{n}\varphi_j dS = \int_{\Omega} g\left ( \sum_{i}^{n} u_i\nabla \varphi_i \right ) \varphi_j dV,\quad\varphi_j \in V_h inuiΩkφiφjdV+inΩ(kuiφi)nφjdS=Ωg(inuiφi)φjdV,φjVh
然后就得到了一个线性方程组:

A U = b , U = [ u 1 , u 2 , ⋯   , u N ] T \mathbf{A}\mathbf{U}=\mathbf{b}, \quad \mathbf{U}=[ u_1,u_2,\cdots,u_N]^T AU=b,U=[u1,u2,,uN]T

A \mathbf{A} A是一个 n × n n\times n n×n的矩阵,由上面的积分表达式决定。求解这些方程组,就给出了偏微分方程的数值近似解。

三、已实现的有限元方法求解PDE类型

北太天元PDE工具箱已实现的有限元方法求解PDE类型包括:

  • 椭圆方程(组)

  • 抛物方程(组)

  • 双曲方程(组)

  • 特征方程(组)

  • 结构力学模型

  • 静电学模型

  • 静磁学模型

  • 交流电力电磁学模型

  • 导电介质直流模型

  • 热传导模型

  • 扩散模型

  • 相场模型

四、有限元方法求解PDE算例

下面从方程模块、方程组模块、应用模块对工具箱展开介绍。

1、方程模块

  • 椭圆方程求解

考虑以下形式的椭圆型偏微分方程

− ∇ ⋅ ( c ∇ u ) + a u = f , 在  Ω -\nabla \cdot(c \nabla u)+a u=f \text {, 在 } \Omega (cu)+au=f Ω
该方程用于描述稳态的物理现象,定义在有界二维区域 Ω \Omega Ω上, Ω \Omega Ω通常表示物理对象的一个截面或空间域。 u = u ( x , y ) u=u(x,y) u=u(x,y)是在区域 Ω \Omega Ω上的未知函数, c = c ( x , y ) c=c(x,y) c=c(x,y) a = a ( x , y ) a=a(x,y) a=a(x,y) f = f ( x , y ) f=f(x,y) f=f(x,y)是在区域 Ω \Omega Ω上的已知函数,它们可以是实数或复数值函数。

考虑区域 Ω \Omega Ω为正方形区域 [ − 1 , 1 ] × [ − 1 , 1 ] [-1,1]\times[-1,1] [1,1]×[1,1],系数为:
c = e x + y ; a = 0 ; f = sin ⁡ ( π x ) cos ⁡ ( π y ) c = e^{x+y};\quad a = 0;\quad f = \sin(\pi x)\cos(\pi y) c=ex+y;a=0;f=sin(πx)cos(πy)

在边界 ∂ Ω \partial\Omega Ω上,设定狄利克雷边界条件 u = 0 u=0 u=0

image.png

网格模型和求解结果如下。

image.pngimage.png

  • 抛物方程求解

抛物型偏微分方程一般形式为:
d ∂ u ∂ t − ∇ ⋅ ( c ∇ u ) + a u = f ,  在  Ω d \frac{\partial u}{\partial t}-\nabla \cdot(c \nabla u)+a u=f, \quad \text { 在 } \Omega dtu(cu)+au=f,  Ω
其中, u = u ( x , y , t ) u=u(x,y,t) u=u(x,y,t)表示物理量随时间 t t t和空间位置 ( x , y ) (x,y) (x,y)的变化,d是时间上的扩散系数, c 、 a 、 f c、 a、 f caf分别为空间上的扩散系数、反应系数和源项。 f f f可以依赖于时间和位置, c 、 a c、a ca只依赖于位置。

考虑区域 Ω \Omega Ω为正方形区域 [ − 1 , 1 ] × [ − 1 , 1 ] [-1,1]\times[-1,1] [1,1]×[1,1]

对于方程取以下系数和初边值边界条件:
d = 1 ; c = 0.01 ; a = 0 ; f = sin ⁡ ( π x ) cos ⁡ ( π y ) d = 1;\quad c = 0.01;\quad a = 0;\quad f = \sin(\pi x)\cos(\pi y) d=1;c=0.01;a=0;f=sin(πx)cos(πy)
在时间 t = 0 t=0 t=0时,初始条件设为
u ( x , y , 0 ) = 15 e − ( x − 1 ) 2 + ( y − 1 ) 2 0.02 u(x,y,0) = 15e^{-\frac{(x-1)^2+(y-1)^2}{0.02}} u(x,y,0)=15e0.02(x1)2+(y1)2 在边界 ∂ Ω \partial\Omega Ω上,设定狄利克雷边界条件 u = 0 u=0 u=0

image.png

求解后可视化如下:
在这里插入图片描述

图片2.gif

  • 双曲方程求解

双曲型偏微分方程一般形式为:

d ∂ 2 u ∂ t 2 − ∇ ⋅ ( c ∇ u ) + a u = f ,  在  Ω d \frac{\partial^2 u}{\partial t^2}-\nabla \cdot(c \nabla u)+a u=f, \quad \text { 在 } \Omega dt22u(cu)+au=f,  Ω
其中, u = u ( x , y , t ) u=u(x,y,t) u=u(x,y,t)表示物理量随时间 t t t和空间位置 ( x , y ) (x,y) (x,y)的变化, t t t是时间上的扩散系数, c 、 a 、 f c、 a、 f caf分别为空间上的扩散系数、反应系数和源项。 f f f可以依赖于时间和位置, c 、 a c、a ca只依赖于位置。

考虑区域 Ω \Omega Ω为正方形区域 [ − 1 , 1 ] × [ − 1 , 1 ] [-1,1]\times[-1,1] [1,1]×[1,1]。对于方程取以下系数和初边值边界条件:
d = 1 ; c = 0.01 ; a = 0 ; f ( x , y , t ) = e − ( x − 1 ) 2 + ( y − 1 ) 2 2 σ 2 ∗ sin ⁡ ( ω t ) d = 1;\quad c = 0.01;\quad a = 0;\quad f(x,y,t) = e^{-\frac{(x-1)^2+(y-1)^2}{2\sigma^2}}*\sin(\omega t) d=1;c=0.01;a=0;f(x,y,t)=e2σ2(x1)2+(y1)2sin(ωt)
初始条件设为:
u ( x , y , 0 ) = e − ( x − 1 ) 2 + ( y − 1 ) 2 2 σ 2 ; ∂ u ∂ t ( x , y , 0 ) = 0 u(x,y,0) = e^{-\frac{(x-1)^2+(y-1)^2}{2\sigma^2}};\quad \frac{\partial u}{\partial t}(x,y,0) = 0 u(x,y,0)=e2σ2(x1)2+(y1)2;tu(x,y,0)=0
在边界 ∂ Ω \partial\Omega Ω上,设定狄利克雷边界条件 u = 0 u=0 u=0

image.png

求解后可视化如下:
在这里插入图片描述在这里插入图片描述

2、方程组模块

  • 椭圆方程组求解

一般椭圆方程组表达式为:

− ∇ ⋅ ( c ∇ u ) + a u = f -\nabla\cdot(c\nabla u) + au = f (cu)+au=f
其中,

c = [ c 11 c 12 c 21 c 22 ] , c = \begin{bmatrix} c_{11} & c_{12}\\ c_{21} & c_{22} \end{bmatrix},\quad c=[c11c21c12c22], a = [ a 11 a 12 a 21 a 22 ] , a = \begin{bmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{bmatrix},\quad a=[a11a21a12a22], f = [ f 1 f 2 ] f = \begin{bmatrix} f_1 \\ f_2 \end{bmatrix} f=[f1f2]

c 11 , c 12 , c 21 , c 22 c_{11},c_{12},c_{21},c_{22} c11,c12,c21,c22:控制二维系统中的扩散率, a 11 , a 12 , a 21 , a 22 a_{11},a_{12},a_{21},a_{22} a11,a12,a21,a22: 控制二维系统中的对流作用, f 1 , f 2 f_1,f_2 f1,f2:体力源项或外部作用源。

image.pngimage.png

  • 抛物方程组求解

一般抛物方程组表达式为:
d ∂ u ∂ t − ∇ ⋅ ( c ∇ u ) + a u = f d\frac{\partial u}{\partial t}-\nabla\cdot(c\nabla u) + au = f dtu(cu)+au=f其中,

d = [ d 11 d 12 d 21 d 22 ] , d = \begin{bmatrix} d_{11} & d_{12}\\ d_{21} & d_{22} \end{bmatrix},\quad d=[d11d21d12d22], c = [ c 11 c 12 c 21 c 22 ] , c = \begin{bmatrix} c_{11} & c_{12}\\ c_{21} & c_{22} \end{bmatrix},\quad c=[c11c21c12c22], a = [ a 11 a 12 a 21 a 22 ] , a = \begin{bmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{bmatrix},\quad a=[a11a21a12a22], f = [ f 1 f 2 ] f = \begin{bmatrix} f_1 \\ f_2 \end{bmatrix} f=[f1f2]

c 11 , c 12 , c 21 , c 22 c_{11},c_{12},c_{21},c_{22} c11,c12,c21,c22:控制二维系统中的扩散率, a 11 , a 12 , a 21 , a 22 a_{11},a_{12},a_{21},a_{22} a11,a12,a21,a22:控制二维系统中的对流作用, f 1 , f 2 f_1,f_2 f1,f2:体力源项或外部作用源 d 11 , d 12 , d 21 , d 22 d_{11},d_{12},d_{21},d_{22} d11,d12,d21,d22: 控制时间演化的质量系数。

image.pngimage.png

  • 双曲方程组求解

一般双曲方程组表达式为:

d ∂ 2 u ∂ t 2 − ∇ ⋅ ( c ∇ u ) + a u = f d\frac{\partial^2 u}{\partial t^2}-\nabla\cdot(c\nabla u) + au = f dt22u(cu)+au=f
其中,

d = [ d 11 d 12 d 21 d 22 ] , d = \begin{bmatrix} d_{11} & d_{12}\\ d_{21} & d_{22} \end{bmatrix},\quad d=[d11d21d12d22], c = [ c 11 c 12 c 21 c 22 ] , c = \begin{bmatrix} c_{11} & c_{12}\\ c_{21} & c_{22} \end{bmatrix},\quad c=[c11c21c12c22], a = [ a 11 a 12 a 21 a 22 ] , a = \begin{bmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{bmatrix},\quad a=[a11a21a12a22], f = [ f 1 f 2 ] f = \begin{bmatrix} f_1 \\ f_2 \end{bmatrix} f=[f1f2]

c 11 , c 12 , c 21 , c 22 c_{11},c_{12},c_{21},c_{22} c11,c12,c21,c22: 控制二维系统中的扩散率, a 11 , a 12 , a 21 , a 22 a_{11},a_{12},a_{21},a_{22} a11,a12,a21,a22:控制二维系统中的对流作用, f 1 , f 2 f_1,f_2 f1,f2:体力源项或外部作用源, d 11 , d 12 , d 21 , d 22 d_{11},d_{12},d_{21},d_{22} d11,d12,d21,d22:控制时间演化的质量系数。

image.pngimage.png

  • 特征方程组求解

一般特征值方程组表达式为:
− ∇ ⋅ ( c ∇ u ) + a u = λ d u -\nabla\cdot(c\nabla u) + au = \lambda du (cu)+au=λdu其中,

d = [ d 11 d 12 d 21 d 22 ] , d = \begin{bmatrix} d_{11} & d_{12}\\ d_{21} & d_{22} \end{bmatrix},\quad d=[d11d21d12d22], c = [ c 11 c 12 c 21 c 22 ] , c = \begin{bmatrix} c_{11} & c_{12}\\ c_{21} & c_{22} \end{bmatrix},\quad c=[c11c21c12c22], a = [ a 11 a 12 a 21 a 22 ] a = \begin{bmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{bmatrix} a=[a11a21a12a22]

c 11 , c 12 , c 21 , c 22 c_{11},c_{12},c_{21},c_{22} c11,c12,c21,c22: 控制二维系统中的控制扩散和模态振动的传播, a 11 , a 12 , a 21 , a 22 a_{11},a_{12},a_{21},a_{22} a11,a12,a21,a22:控制二维系统中的对流作用, d 11 , d 12 , d 21 , d 22 d_{11},d_{12},d_{21},d_{22} d11,d12,d21,d22:控制振动加速度的相关系数。

image.pngimage.png

3、应用模块

  • 结构力学模型(应力)

结构力学模型用于描述材料在力作用下的应力和应变行为。平面应力问题位移方程为:
− ∇ ⋅ ( c ⊗ ∇ u ) = K -\nabla\cdot(c\otimes\nabla u) = K (cu)=K其中, u u u是二维向量, c c c是秩为 4 的张量, K K K为体积力,张量 c c c可以写成 4 个 2×2 的矩阵:

c 11 = [ 2 G + μ 0 0 G ] c_{11}=\left[\begin{array}{cc}2 G+\mu & 0 \\0 & G\end{array}\right] c11=[2G+μ00G], c 12 = [ 0 μ G 0 ] c_{12}=\left[\begin{array}{ll}0 & \mu \\G & 0\end{array}\right] c12=[0Gμ0],
c 21 = [ 0 G μ 0 ] c_{21}=\left[\begin{array}{ll}0 & \mathrm{G} \\\mu & 0\end{array}\right] c21=[0μG0] c 22 = [ G 0 0 2 G + μ ] c_{22}=\left[\begin{array}{cc}\mathrm{G} & 0 \\0 & 2 G+\mu\end{array}\right] c22=[G002G+μ]

剪切模量 G G G定义为 G = E 2 ( 1 + v ) G = \frac{E}{2(1+v)} G=2(1+v)E μ \mu μ定义为 μ = 2 G v 1 − v \mu = \frac{2Gv}{1-v} μ=1v2Gv, 外力 F = [ K x K y ] F= \begin{bmatrix} K_{x} \\ K_{y} \\ \end{bmatrix} F=[KxKy]

方程涉及杨氏模量 E E E、泊松比 ν \nu ν、以及作用在材料上的体积力 K K K

image.pngimage.png

  • 静电学模型

静电学模型用于描述静止电荷产生的电场分布。该模型的方程形式为:
− ∇ ⋅ ( ε ∇ V ) = ρ -\nabla \cdot(\varepsilon \nabla V)=\rho (εV)=ρ其中, V V V表示电势, ε \varepsilon ε为介电系数, ρ \rho ρ为空间电荷密度。

电场 E E E通过 V V V的梯度给出,即 E = − ∇ V E=-\nabla V E=V

该方程用于分析静电场,例如电容器中的电场分布、绝缘体中的电荷行为等。

image.pngimage.png

  • 交流电力电磁学模型

交流电力电磁学模型用于描述交流电场和磁场的相互作用。该模型的方程形式为:

− ∇ ⋅ ( ( 1 / μ ) ∇ E ) + ( i ω σ − ω 2 ε ) E = 0 -\nabla \cdot((1 / \mu) \nabla E)+\left(i \omega \sigma-\omega^2 \varepsilon\right) E=0 ((1/μ)E)+(iωσω2ε)E=0
其中 , E E E表示电场强度, ω \omega ω是角频率, μ \mu μ为磁导率, σ \sigma σ为电导率, ε \varepsilon ε为介电系数。

该方程描述了电场的传播、衰减及其与介质的相互作用,广泛用于天线设计、电力传输等领域。

image.pngimage.png

image.pngimage.png

  • 热传导模型

热传导问题的抛物型偏微分方程:
ρ C ∂ T ∂ t − ∇ ⋅ ( k ∇ T ) = Q + h ( T e x t − T ) \rho C\frac{\partial T}{\partial t}-\nabla\cdot(k\nabla T) = Q + h(Text - T) ρCtT(kT)=Q+h(TextT)方程描述了二维热传导现象,以及轴对称三维问题经简化后的热传导问题,

其中, T T T:温度, ρ \rho ρ:密度, C C C:比热, k k k:导热系数, Q Q Q:热源, h h h:传热系数, T e x t T_{ext} Text:环境温度。

稳态情形下的方程简化为:

− ∇ ⋅ ( k ∇ T ) = Q + h ( T e x t − T ) -\nabla\cdot(k\nabla T) = Q + h(Text - T) (kT)=Q+h(TextT)边界条件可以为Dirichlet条件、Neumann条件或Robin条件。

image.pngimage.png

  • 相场方程

Cahn-Hilliard 方程描述二相系统中的相分离过程,适用于合金、流体混合物等具有相分离特性的系统。方程如下:
∂ c ∂ t = ∇ ⋅ ( M ∇ ( ∂ f ( c ) ∂ c − κ ∇ 2 c ) ) \frac{\partial c}{\partial t}=\nabla \cdot\left(M \nabla\left(\frac{\partial f(c)}{\partial c}-\kappa \nabla^2 c\right)\right) tc=(M(cf(c)κ2c))其中, c c c表示浓度或组分分布, M M M为系数, f ( c ) f(c) f(c)是自由能密度函数,通常采用双井势函数形式,以确保在系统中形成两相区域。 κ \kappa κ是一个常数,控制界面的宽度和平滑性。Cahn-Hilliard 方程广泛应用于材料科学中的二元合金相分离、流体混合物的扩散过程、以及相变和传热模拟。它为研究物质在特定条件下的分离行为提供了重要工具。该方程可以帮助我们深入理解不同物质在不同条件下的相互作用、扩散行为,以及它们如何在空间中分离、重组。

image.png
在这里插入图片描述

另外,北太天元工具箱还开发了其他相场方程有限元方法,可用于描述两相界面的演化,如枝晶生长、材料裂纹拓展、形核和界面演化等现象。

image.png相场方程动图2.gif

五、PDE工具箱特色

北太天元PDE工具箱对外部网格具有很强的通用性,可读入外部网格用于计算。对于导入的外部网格,可自动识别求解区域网格的边界,并直接应用用户指定的边界条件进行计算。同时,PDE工具箱具有后处理技术。

image.pngimage.png

image.pngimage.png

image.pngimage.png

image.png

image.png

六、参考文献

  1. 王烈衡, 许学军. 有限元方法的数学基础,科学出版社,2004.

  2. 杜其奎, 陈金如. 有限元方法的数学理论,科学出版社,2012.

  3. Vidar Thomée. Galerkin Finite Element Methods for Parabolic Problems. Springer-Verlag Berlin Heidelberg, 2006.

  4. S.C. Brenner, L.R. Scott. The Mathematical Theory of Finite Element Methods. Springer New York, 2008.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值