有限元分析之离散
在上一个小短文之中提到了有限元的基本思想,开头提到“将求解域离散成互不重叠的仅有有限个节点相连接的单元”。这句话中提到有限元当中一个十分重要的概念:离散(discretized)。本篇小短文记录有限元当中一些关于离散的问题
有限元当中的离散主要分成三种:求解域物理离散、求解域数值离散、PDE离散,这是我个人的看法。
求解域物理离散
要求解的各种场,如物理场(力场)、温度场、电磁场,我们实际上视它们为一个连续的区域。如温度场,在这个区域当中处处存在着温度,这些温度是连续衔接在一起的。又如水杯里装了一些水,我们看到的水它是连续不间断的拥挤在一起(你是看不到彼此之间的界限的)。将这样处处充满且连续不间断的物质,称之为连续体。微观上看,水分子之间是存在着间隙的,实际上它们并不连续,在特定的封闭区域里面。
离散就是要从宏观上打破这种连续性,人为的将一个连续封闭的区域划分成有限多个小的区域,这些区域紧密连接在一起,但是彼此之间又有明显的界限,这就是物理区域的离散化。
上面这幅图是一个蜂巢的部分,是宏观世界真实形象的离散。对于整个区域,它是封闭,有界的。在软件当中,上述模型的离散成如下所示:
上图中每一个六边形,称之为一个单元。单独看每一个六边形,它有六条边,六个顶点。六条边称为单元边界,六个顶点称为单元节点。六边形边界是直线,即直边,也称为线性边界,一次函数。如果单元的边界是曲线或者曲面,而表达曲线至少需要二次及以上,也称为高阶单元。
计算的时候,只有上述节点才直接参与,而单元内部采用插值函数进行插值。假设整个六边形的某个量(如结构分析的位移)服从某种函数分布的规律,通过节点值就能够推出整个单元的值。整个单元上某个量要满足的函数,称之为位移模式,亦有称之为位移形函数,它表征了整个六边形单元各处的位移是如何分布的。
结构分析中,要解出由15个量(6个应力量,6个应变量,3个位移量)组成的方程主要有两种方法:位移法(刚度法)和力法(柔度法)。力法是以力作为基本未知量,将其他的量都以力表示进行求解。位移法以位移作为基本未知量,将其余量都用位移表示进行求解。在计算机里面,位移法比力法编程更容易实现,故普遍用位移法。我们通常以节点的位移作为基本未知量进行求解(如果是温度场则对应的节点温度,流场则对应的是速度和压力),以节点位移推知整个单元的位移。至此学习完了求解域的物理离散,物理模型的离散。
求解域数值离散
在数学上,我们通常使用多项式描述一个封闭有界区域。对求解域的物理离散,划分成一个个小的区域,对应的就是将多项式进行分解,将一个复杂的多项式分解成由几个或者许多函数进行表达。这就要实现数值上的离散,要离散的对象为描述求解域的多项式,尚未涉及到偏微分方程PDE的离散问题。
将多项式进行离散,主要有两种方法:第一种选择一些简单的多项式作为基函数,将这些基函数进行加权叠加,最后得到描述整个求解域的复杂多项式。如果要离散的多项式比较复杂(对应的是求解的形状比较复杂),而我们又希望用尽可能少的基函数来逼近(说拟合加合适,而加权系数可以看成是曲线局部调整),那必须提高基函数的阶次。因为基函数的阶次越高,它可以越复杂,那么它能更好的适应需要拟合的多项式。如果基函数是一次的(一条直线,对应着直边单元或者平面单元),阶次至少需要2次才可能是曲线,这种也称为高阶单元(曲边或者曲面单元)。第二种方法就是采用更简单的低阶函数一段一段的去拟合复杂的多项式,这样多项式就需要划分的足够细致(求解域需要划分的较细致)以减少离散误差,如果划分的不够细致,则每一段还是曲线,意味着我们是在用直线直接替代曲线,误差就十分明显了。
下图展示了这两种方法,第一种需要较复杂的基函数,基函数阶次较高(意味着我们要创建更加复杂的单个单元),仅需要几条基函数曲线就可以拟合好原来复杂的多项式(单元数目较少),所有基函数都定义在整个求解域上。在软件里面,这种方法称之为P-Method。第二种方法采用十分简单的线性基函数去拟合复杂的多项式,需要较多的基函数才可以有不错的离散精度(即求解域要划分的较细致),每个基函数定义在求解域的局部区域,该方法在软件里面称之为H-Method。
P-Method和H-Method方法的区别十分明显。要实现P方法,意味着我们需要创建单个表达能力十分优秀的曲边或者曲面单元,这个可能难度在于编程和数学计算上(据说计算机目前能够实现的高阶多项式比较有限)。优点也是十分明显的,只需几条曲线(几个单元)就能够很好的去拟合复杂的多项式,计算量小,这样对于计算资源的要求较低。要实现H方法就容易很多,它对单个单元的要求低很多,只需要创建最基础的直边或者平直面单元(线性单元)就可以实现拟合复杂的多项式。为了减少离散的误差,需要尽可能多的线性单元,这样复杂的曲线每一段近似可以看成是一段直线。如果线性单元不足,就以为我们在用直线直接替代曲线,离散误差就十分明显了。它的优点是:任意复杂的多项式(任意复杂的求解域),只要线性单元足够多(划分的足够),就可以很好的拟合复杂的多项式。对于编写单元要求低,容易实现。缺点是:需要很多的计算资源,对硬件配置要求高。下面一幅图展示了两种方法的区别:
到这里就学完了求解域的物理离散和数值离散。
偏微分方程离散