FEM 和 XFEM 之间的主要区别是什么?我们什么时候应该(不)使用 XFEM 而不是 FEM,反之亦然?换句话说,当我遇到一个新问题时,我怎么知道使用哪一个?
有限元法与扩展有限元法(FEM 与 XFEM)
有限元方法 (FEM) 是启发了许多其他方法和方法的父方法,这些方法和方法实际上是 FEM 但假装不是。
在有限元法中,“形状函数”被用来提供一个近似空间,使解可以用一个向量来表示。在经典 FEM 中,这些形状函数是多项式。
在扩展有限元方法 (XFEM) 中,除了多项式形状函数外,还使用附加的“丰富”函数来近似解。选择这些富集函数以具有已知解决方案遵循的属性。
最明显的 XFEM 富集函数是在裂纹尖角处引入的幂函数,以表示解梯度中的奇异性(即固体力学问题的应力奇异性)。XFEM 可用于其他富集功能和其他解决方案领域(特别是传热),但该名称与断裂分析同义。
各种方法之间的区别——这是否是 XFEM?等等——是棘手的、微妙的和不重要的。
至于使用哪个,XFEM 几乎没有什么实际用途。实际有限元代码中有少数应用,最著名的是 Abaqus,但尚未得到广泛接受。
对于几乎所有的实际问题,都会使用经典的 FEM。对于大多数断裂分析问题,经典 FEM 仍可用于裂纹尖端区域的适当网格细化和/或 p 细化。也可以使用其他不太严格的断裂模型。
Mike 的回答和 Jed的回答都很好地描述了 XFEM/FEM 二分法,并正确地指出最重要的应用领域是 3D 断裂力学,其中有裂缝,即在您的域内表面上的位移不连续。
裂纹难以在经典 FEM 中建模,原因有两个:
网格必须在裂缝上全等:更准确地说,裂缝必须在有限元的子域的边界处。裂缝不能位于(通过)有限元内部。
裂纹尖端的奇异应力场需要特殊的单元和/或网格划分技术(四分之一点单元、聚焦网格)以高精度建模。
从断裂力学的工程角度来看,您有两种主要类型的问题:
应力强度因子计算,
裂纹扩展分析,例如疲劳或损伤容限分析。
对于第一类问题,经典 FEM 绰绰有余,并且是标准的工程工具。(这是因为,幸运的是,有一些能量方法可以评估对裂纹尖端附近的数值误差不敏感的应力强度因子。)
裂纹扩展分析是一个完全不同的故事:在大多数情况下,您事先并不知道裂纹路径,因此需要经常重新划分网格。XFEM 的主要承诺是允许裂纹在固定的FEM 网格内传播,裂纹不仅在子域之间的边界处切割,而且在FE 自身内部切割。
XFEM 是一种相对较新的技术,距离标准的工程工具还很远。我对 OP 问题的回答,至少在固体力学和工程分析中,是 XFEM 在裂纹和损伤传播分析中具有非常狭窄和专业的应用领域,对于复杂的 3D 几何形状,裂纹路径无法先验估计。
尽管如此,让我强调断裂力学是工程中一个非常重要的领域:例如,今天的飞机也是安全的,因为它可以用数值预测维护间隔之间的损坏和裂纹扩展。XFEM 或类似的新技术将在不久的将来成为重要的工具。
FEM 是 XFEM 的一个子集。XFEM 是一种丰富有限元空间以处理不连续问题(例如断裂)的方法。使用经典 FEM,要获得相似的精度通常需要复杂的保形网格划分和自适应细化,而 XFEM 使用单个网格来实现,将几何复杂性转移到元素中(XFEM 实现起来非常复杂,尤其是在 3D 中)。同时,XFEM 会导致极端病态矩阵,需要直接求解器或非常专业的多重网格方法(例如Gerstenberger 和 Tuminaro (2012))。