解决非线性静态有限元问题

2013年11月19日

在这里,我们开始概述用于解决非线性静态有限元问题的算法。此信息是在非常简单的一维有限元问题的背景下介绍的,并在我们先前的条目上构建求解线性静态有限元模型


编者注:此博客文章中的信息已被此知识库输入所取代:“改善非线性固定模型的收敛性”

附着在刚性墙上的弹簧系统

考虑下面所示的系统,该系统的一端连接到刚性壁上,另一端具有施加力。弹簧的刚度是它拉伸的距离的函数,k(u)= exp(u)。也就是说,随着拉伸的拉伸,弹簧刚度呈指数增加。

弹簧连接到刚性墙壁和施加力

我们有兴趣找到应用力的弹簧末端的位移。就像我们之前所做的线性问题,我们现在可以编写以下功能,描述了节点上力平衡的平衡非线性有限元问题:

f(u)= p-k(u)u = p-exp(u)u

在这种情况下,只有弹簧刚度取决于溶液,但是更一般而言,元素的负载和性能都可以任意取决于非线性问题中的溶液。

让我们策划此功能,并记住我们正在尝试找到这样f(u)= 0

图表显示非线性有限元问题的功能

实际上,找到解决问题的解决方案仅与线性情况有很小的不同。回想一下,要解决线性问题,我们进行了一次牛顿 - 拉夫森迭代的单一迭代 - 我们在这里做完全相同的事情:

该问题的单一牛顿 - 拉夫森迭代

如您所见,我们再次从最初的猜测开始,U_0 = 0,评估功能,f(u_0),以及它的导数,f'(u_0)。这使我们达到了重点U_1。通过检查,我们看到这不是解决方案,因为f(u_1)\ ne 0。但是,如果我们继续进行牛顿 - 拉夫森的迭代,如下所示,很明显,我们正在解决问题的解决方案。(有关此算法的更多详细信息,您可以使用此信息牛顿方法的资源

其他牛顿 - 拉夫森迭代

因此,找到解决非线性问题的解决方案与解决线性问题基本相同,只是我们采取多个牛顿 - 拉夫森步骤来解决解决方案。实际上,我们可以继续进行迭代并任意接近解决方案,但这是不需要的。如前所述,我们始终遇到计算机上数值精度的问题,因此我们能获得的距离有一个实际的限制。让我们看看几次迭代后的结果:

一世 u_i | f(u_i)| | u_ {i-1} -u_i | | f(u_ {i-1}) - f(u_i)|
0 0.000 2.000
1 2.000 12.77 2.000 10.77
2 1.424 3.915 0.576 8.855
3 1.035 0.914 0.389 3.001
4 0.876 0.104 0.159 0.810
5 0.853 0.002 0.023 0.102
6 0.852 0.001 0.001 0.001

六次迭代后,我们在这里看到,连续值之间的差异f(u), 和以及的绝对价值f(u),减少到0.001或更少。经过六个牛顿 - 拉夫森的迭代。U_0 = 0,该溶液已收敛到0.001的公差。当我们解决非线性问题时,我们将应用该算法,直到将溶液收集到所需的公差内。有第二个终止标准:求解器应采取不超过指定数量的迭代。首先满足的标准,耐受性或迭代次数的数量将阻止求解器。另外,请记住从博客文章中讨论有关解决该问题数值缩放的线性静态有限元问题的讨论。公差标准适用于缩放溶液向量,而不是解决方案的绝对值。

尽管可视化更为复杂,但这是解决问题的相同算法是矢量,就像典型的非线性有限元问题一样。但是,当解决数百,数千甚至数百万自由度的问题时,希望尽可能少的牛顿 - 拉夫森步骤。回想一下我们需要解决\ Mathbf {u} _ {i+1} = \ Mathbf {u} _ {i} - [\ MathBf {f}'(\ MathBf {\ MathBf {u} _ {i})]}(\ mathbf {u} _ {i})计算衍生物的倒数是最密集的步骤。为避免进入没有解决方案的区域,并最大程度地减少牛顿 - 拉夫森步骤的数量,comsol使用了阻尼因子。再次考虑前面绘制的第一个牛顿 - 拉夫森步骤,并观察到此步骤| \ Mathbf {f}(\ Mathbf {u} _ {i+1})|> | \ Mathbf {f}(\ Mathbf {u} _ {i})|。因此,对于这种迭代,我们采取了太大的一步。发生这种情况时,comsol将沿着间隔进行简单的搜索[\ mathbf {u} _ {i},\ mathbf {u} _ {i+1}]一点点\ Mathbf {U} _ {damped} = \ Mathbf {u} _i+\ alpha(\ Mathbf {u} _ {i+1} - \ Mathbf {u} _i _i)这样| \ mathbf {f(u} _ {damped})| <| \ mathbf {f(u} _ {i})|。然后在这一点上重新启动牛顿 - 拉夫森迭代方案。

comsol多物理学中的阻尼因子

期限被称为阻尼因子,具有边界0 <\ alpha \ le 1。作为\ alpha \ rightarrow 0我们说阻尼是增加, 尽管\ alpha = 1意味着问题是未受阻碍的。此方法很有吸引力,因为搜索仅需要COMSOL评估\ mathbf {f(u} _ {damped})与计算导数相比,其计算成本非常低\ mathbf {f'(u} _ {i})及其倒数[\ mathbf {f}'(\ Mathbf {u} _i)]^\ Mathbf {-1}

重要的是要强调,该阻尼术语没有直接的物理解释。尽管这种方法可以很好地改善收敛性,但几乎没有什么物理洞察力可以通过检查阻尼因子来收集。此外,尽管COMSOL确实允许您手动修改阻尼因子,但通常不可能使用模型中的任何物理理解或信息作为指导。通过手动干预,难以超越阻尼算法的默认选择。但是,可以使用其他技术,通常是由问题的物理学动机,当默认抑制牛顿 - 拉夫森方法降低或根本不融合时,它们可以很好地工作。

为什么非线性问题可能不会融合

非线性问题本质上很难解决,因为有多种方法可以通过多种方式收敛。尽管有很多方法牛顿 - 拉夫森方法可能会失败在实践中,我们可以将讨论减少到以下情况。

情况1:初始条件离解决方案太远

首先,考虑与以前相同的非线性问题,但以不同的起点为例U_0 = -2。从下面的图中可以看到,如果我们选择任何初始条件U_0 \ le-1,牛顿 - 拉夫森方法无法找到解决方案,因为f(u)不要指向解决方案。在左侧找不到解决方案U_0 = -1,因此这些起点不在收敛的半径牛顿 - 拉夫森法。初始条件的选择会导致牛顿 - 拉夫森方法无法收敛,即使存在解决方案。因此,与线性案例不同的是,始终解决问题的问题,非线性模型的收敛可能高度依赖于起始条件的选择。我们稍后将讨论如何最好地选择良好的初始条件。

非线性模型的初始条件离溶液太远了,导致无法收敛

案例2:问题没有解决方案

如果问题本身没有解决方案,则非线性求解器也将失败。再次考虑上面的问题,但弹簧刚度为k(u)= \ exp(-u)。换句话说,随着弹簧的拉伸,刚度会降低。如果我们策划f(u)负载p = 2,我们看到找不到解决方案。不幸的是,牛顿 - 拉夫森算法无法确定情况。该算法将仅找到解决方案并在用户指定数量的迭代次数之后终止。

弹簧拉伸时刚度会降低

案例3:问题是非平滑且不差异的

最后,考虑物质属性的情况,其属性发生了不连续的变化。例如,考虑与以前相同的系统,但具有不同间隔的弹簧刚度,值k = 0.5为了u \ le1.8,值k = 1为了1.8 , 和k = 1.5为了u \ ge2.2。如果我们策划f(u)对于这种情况,我们看到它是不可分割的和不连续的,这违反了牛顿 - 拉夫森方法的要求。还可以通过检查清楚,除非我们在间隔中选择一个起点1.8 牛顿 - 拉夫森迭代将在此间隔之外的迭代之间振荡。

材料属性具有不连续的性质变化

总而言之,到目前为止,我们引入了用于解决非线性有限元问题的缩减牛顿 - 拉夫森方法,并讨论了所使用的收敛标准。我们介绍了几种方法,该方法无法找到解决方案,包括:

  • 选择离解决方案太远的初始条件
  • 设置没有解决方案的问题
  • 定义一个非平滑且不差异的问题

解释comsol日志文件

日志文件

我们将很快讨论解决所有这些问题的方法,但是首先,让我们看一下典型的非线性有限元问题的日志文件。在下面,您将看到几何非线性结构力学问题的日志文件(添加了行号):

1)求解器1中的固定求解器1始于2013年10月10日15:23:07。2)非线性求解器3)求解的自由度数量:2002。4)发现的对称矩阵。5)因变量的比例:6)位移字段(材料)(MOD1.U):1 7)ITER错误阻尼步骤#JAC #SOL #SOL 8)1 6.1 0.1112155 7 3 1 3 1 3 9)2 0.12 0.12 0.6051934 1.2 4 2 4 25 10)3 0.045 1.0000000 0.18 5 3 7 11)4 0.012 1.0000000 0.075 6 4 9 12)5 0.0012 1.0000000 0.018 7 5 11 13)6 1.6E-005 1.005 1.0000000 0.00000 0.000015 8 6 13 13 13 14)固定求解器1:solover 1:solover 1:时间:1 S 15)物理记忆:849 MB 16)虚拟内存:946 MB

解释

  • 第1行报告了调用求解器的类型和开始时间。
  • 第2行报告该软件正在调用非线性系统求解器。
  • 第3行报告了自由度的数量,报告了问题的大小。
  • 第4行报告要解决的有限元矩阵的类型。
  • 第5-6行报告缩放。在这种情况下,位移场尺度为1 m,适合于溶液的预期幅度。
  • 第7-13行报道,使用六个牛顿 - 拉夫森迭代来达到融合解决方案。第一列报告了迭代编号,第二列报告了用于定义收敛性的错误估计。默认情况下,收敛标准为0.001。第三列显示前两个步骤使用了一些阻尼,但步骤3-6未受阻碍。
  • 第14-16行报告解决方案时间和内存要求。

现在,您应该已经了解了如何在comsol中解决非线性静态问题以及如何解释日志文件。


评论(8)

发表评论
乐动体育app
加载...
约瑟夫·奥日(Joseph O'Day)
约瑟夫·奥日(Joseph O'Day)
2013年11月19日

我非常感谢这篇文章 - 请提供更多非线性解决解释!

特里·娄
特里·娄
2014年3月24日

沃尔特(Walter)的信息非常丰富,尤其是关于非融合解决方案的可能原因。我想进一步扩展有关解决方案的“差异”的讨论,这是一种错误导致NO融合解决方案。这种错误的常见信息是
“未能找到解决方案。
线性迭代的差异。
条件不良的预处理。
相对残差比相对公差大1000倍。
返回的解决方案没有收敛。”

如果您可以对可能的原因发表一些评论,我将不胜感激。再次感谢您的出色帖子。

特里

沃尔特·弗莱
沃尔特·弗莱
2014年3月27日

亲爱的特里,
这通常是不受限制的问题的症状。尝试使用迭代求解器解决3D问题,并应用负载,但没有约束,您通常会出现此类型的错误。另外,继续阅读求解器系列博客以获取更多详细信息://www.dvdachetez.com/blogs/tag/solver-series/

Yalcin Kaymak
Yalcin Kaymak
2014年4月11日

还有第三种情况。考虑函数f(u)= 1-u^(1/3)。u = 1有一个解决方案,但是上述迭代找不到。实际上,问题是平稳且可区分的。但是它的差异在溶液时并不光滑且连续

沃尔特·弗莱
沃尔特·弗莱
2014年4月11日

亲爱的Yalcin,肯定有一些数学上有趣的“角案例”,例如,您将遇到只有一个未知的问题。实际上,这些情况与非线性和多物理有限元建模中面临的非线性类型相关。您会发现,以后的博客中讨论的负载渐变和非线性渐变的技术足以解决固定问题。但是,在某些情况下,需要对问题进行大量的身体见解。为了一个很好的例子,请参阅://www.dvdachetez.com/model/postbuckling-analysis-of-a- hished-cylindrical-shell-10257

Ting Lau
Ting Lau
2015年3月7日

你好,

日志文件的说明非常有用,了解步骤以及错误和时间步骤等。
但是,我仍然不明白#jac #sol是什么?
我阅读了参考手册,即RES是残差和雅各布人和衬里系统解决方案的数量。
但是,这意味着什么?

再次感谢您的帖子。

沃尔特·弗莱
沃尔特·弗莱
2015年3月9日

亲爱的Ting,
尽管求解器日志确实提供了大量信息,但实际上,您的大部分都不需要收集模型。请继续阅读有关求解器设置的博客系列,您将了解会导致融合的一般方法(在可能的情况下)。实际上,这些级别的求解器日志详细信息对于该软件的实际使用本质上是不必要的。如果您想了解它们,我建议您对文档和支持参考的仔细阅读。

Akash Meena
Akash Meena
2020年4月9日

因此,解决方案是什么

案例3:问题是非平滑且不差异的吗?

如果它非平滑和不连续,我该如何更改此图?

谢谢你。

探索comsol乐动体育赛事播报博客