今天,我们将向ComsolMultiphysics®软件中的模型中引入一个寻求目标方程,该方程与完全耦合的方法结合使用,以解决非线性问题。这种方法,尽管计算在计算上比我们之前介绍的隔离方法,在鲁棒性方面具有一些有趣的优势,并突出了Comsol®软件的核心优势之一。
背景
如前所述关于介绍目标的博客文章,以寻求隔离的求解器,一个人可以通过具有附加的全局方程式来增强多物理模型,我们在其中定义如何将输入更新为模型,从而实现特定的输出。该方法利用了隔离的解决方案方法,解决了问题的一个部分(解决所有物理学),然后通过全局方程式更新输入。
尽管这种方法在计算上非常有效,但由于使用了隔离的求解器,它依赖于一个临时更新方程,该方程需要在某些知识中构建问题的基本物理。
在这里,我们将介绍一种替代方法,其中输入方程是根据使软件象征性计算衍生品的方程式更新的。这种方法可以更加健壮和一般,但确实具有计算成本。首先,让我们看一下如何实现此方法,然后解决相对优点。
在这里,我们将研究以前考虑的同一示例焦耳加热两个电极的问题应用于包含的介质。材料的电导率和热导电性是非线性的,温度为温度。我们模型的目的是调整顶部电极和接地电极之间的电势差,以使包含在包含中的3瓦。
使用完全耦合的求解器介绍目标
就像我们以前的博客文章一样,这可以通过全局方程,尽管这次,我们添加了全局方程在它影响的物理学中。但是,请回想一下,在前一种情况下,此额外方程式在单独的隔离求解器迭代中使用临时缩放更新了所应用的势能。在这里,我们将使用一个方程式,该方程式与受影响的物理学同时解决时,对雅各布矩阵有效。
引入全局方程在物理接口中。
让我们修改以前的示例以演示。我们仍然需要介绍一个全局方程为了应用电位,v_applied
,但是现在我们需要一个与电势方程同时满足和解决的方程式。为此,我们添加了全局方程内部的功能电流物理。请注意,我们正在输入一个残差方程,该方程式必须等于溶液点。我们输入的方程是:
intop(ec.qrh)/3 [w] - 1
在哪里intop()
是一个集成操作员定义在包容性上。稍后,我们将看到该方程式的非二量化具有一些优势。重新安排,这相当于:
intop(ec.qrh)= 3 [w]
这可以读为:计算v_applied
因此,包容中的损失等于3瓦。我们还可以写出这个残差方程所代表的内容:
在计算雅各布贡献时,我们就模型中的所有未知数进行了符号导数。通过检查,我们可以看到:
而其他两个衍生物相对于电势,\部分r / \ partial v,以及温度场,\部分r / \ partial t,将是非零的。
这意味着全局方程在雅各布的对角线上引入零,但是相应的行中许多非零项。这会影响我们必须在非线性迭代中使用的线性系统求解器。
这些其他术语是真正有趣且有用的贡献。这些术语告诉非线性求解器如何更新v_applied
这样我们的全局方程将等于零。也就是说,该软件将更新计算为v_applied
自动地。(在以前的方法中回想一下,我们必须根据某些物理知识来构建自己的更新方程。)
引入非零梯度
但是,这些额外的条款有成本。他们确实要求我们同时求解全球方程和电势方程,并且由于他们引入了非对角线术语和对角线的零,因此他们要求完全耦合的方法使用直接线性系统求解器解决电势场和全局方程式时。另外,上面显示的衍生物必须在初始条件下为非零,否则雅各布的整个行将为零。在这种情况下,这有点不繁琐,因为在指定的初始值下,电势中必须有非零梯度。
有两种方法可以在电势中引入非零梯度。最简单的方法是指定一个空间变化的初始条件,如下面的屏幕截图所示,在电流物理。至少在这种情况下,这很容易做到,但可能并不总是有效,因为我们确实引入了非物理初始值。
将初始值引入电流物理学将导致电势场上的非零梯度。
一种更优雅的方法是引入我们的变体全局方程为了v_applied
解决方程式:
v_applied/1 [v] - 1
这个方程只是设置v_applied
等于1 [V]
然后,该软件将求解方程系统并计算一致的电势字段。请注意,这就是为什么具有非二等化残差方程有帮助的原因。这在下面的屏幕截图中显示。
引入其他全局方程找到初始值。
调整全局方程的求解器设置
一旦我们解决了这个固定值的v_applied
,解决此问题的解决方案一旦我们切换回原始全局方程。这可以通过修改研究步骤的模型配置复选框,然后启用/禁用两个不同的全局方程在两个研究步骤中。也就是说,在第一个研究步骤中,我们只是指定v_applied
,第二步,v_applied
为了使包含内部存在所需的耗散。这在下面的屏幕截图中显示。
修改第一个研究步骤的模型配置,其中全局方程对于初始值。在第二步中,应用了相反的设置。
第二步确实需要对默认求解器设置进行调整。有两种选择:
- 在整个问题中使用完全耦合的方法,并使用直接求解器。这需要对求解器设置的最小更改,但是求解具有直接求解器的大型方程式将需要大量内存。
- 使用隔离的求解器,但将全局方程式和电势方程组合到一个步骤中,该方程式可以使用自动牛顿方法和直接求解器求解。仍然可以使用迭代求解器以隔离的方式解决温度溶液。这种方法需要对设置进行更多更改,但需要更少的内存来解决。请注意,这种隔离将导致\部分r / \ partial t术语被忽略(如果根本存在),这有时可能会对收敛产生负面影响。这些对设置的更改显示在下面的屏幕截图中。
必须同时解决全局方程式和电势。
建议从第一种方法开始,如果内存要求太高,请尝试第二种方法。请注意,对于3D型号,直接解决器的内存需求随问题大小而迅速上升,这是主要限制。
总结思想
此处显示的方法是可用于解决GUI中寻求目标问题的几种方法之一,而无需诉诸于任何编程。解决这类问题的其他方法,在我们的以前的帖子, 是:
- 使用优化模块
- 使用参数扫描并手动识别近似目标值
- 通过附加更新方程来增强隔离的求解器
尽管记忆要求较高,但此处显示的方法的显着优势在于它可以快速,稳健地收敛。请注意,只要可以在每个时间步骤满足全局方程式,此技术也可以在时间域中使用。
这种强大而快速的收敛是雅各布矩阵中附加术语的结果,并突出显示了Comsol多物理学的强度,用于解决高度非线性耦合的多物理问题。该技术以及前面讨论的技术是分析师在工具带中拥有的绝佳工具。
评论(1)
伊瓦尔·凯尔伯格(Ivar Kjelberg)
2021年1月23日嗨,沃尔特,
感谢您的更新Walter,实际上,我一直在使用comsol中的全局方程式,但现在从来没有真正了解过求解器的详细信息,而且当我阅读您时,有几种细微的选择可以改善收敛性,并且可能精确。
在接下来的几天里,我还有更多游戏
在全球范围内,我可能应该在“求解器设置”上提议更多的comsol培训课程,因为这些情况确实是Comsol多物理方法的优势
不幸的是,我看到许多使用comsol作为“经典”点击和求解工具的同事工程师,而不是使用您建议的全球方法的优势。