在我们的以前的博客条目,我们介绍了完全耦合和隔离用于解决comsol中稳态多物理问题的算法。在这里,我们将研究加速这两种方法的收敛技术。
负载坡道和非线性坡道技术
正如我们刚刚了解的那样,完全耦合的方法解决稳态非线性问题实际上使用用于解决单物理非线性问题的牛顿 - 拉夫森算法完全相同的牛顿拉夫森算法。尽管该算法在许多情况下确实会融合得很好,但如果选择初始条件较差,则可能会失败或收敛非常慢。那么,我们已经看过的技术就不足为奇了,例如负载坡道和非线性渐变当应用于多物理问题时,同样有效。实际上,这些技术确实没有什么可添加的 - 可以等效地使用它们。
逐渐解决多物理问题
非线性坡道技术有一个新的变化,也就是说,物理学之间的耦合。数值,实际上与已经讨论过的非线性坡道技术相同,但是从概念上讲物理学之间的耦合的幅度升高,而不是单个物理学中非线性的大小。唯一的困难是选择和实施应升级的术语。幸运的是,大多数多物理问题在物理学之间都具有相当明显的耦合,可以通过写出管理方程和边界条件并检查材料属性和负载如何取决于要求解的变量,可以找到这些问题。
要记住的最重要的事情是,用于解决完全耦合的多物理问题的基础算法与用于解决非线性单物理问题的算法完全相同。牢记这一点,您会发现完全耦合的mutliphysics问题确实不会构成任何其他概念上的障碍,除了了解模型中的物理学之间如何相互作用。
另一方面,隔离方法可以导致各种不同的解决方案策略,这些策略可以极大地加速解决方案的收敛性,并显着影响解决问题所需的记忆量。为了理解这一点,让我们制作一个不同的多物理解决方案技术的流程图。考虑我们以前的博客文章中有关母线的同样问题热应力。
完全耦合的方法
首先,完全耦合的求解器从初始猜测开始,并应用牛顿 - 拉夫森迭代,直到解决方案收敛为止:
解决此类问题时,您将获得收敛图,该图显示了牛顿 - 拉夫森迭代之间的误差估计减少。理想情况下,如果误差确实会收敛,则应单调地降低,然后开始研究升起载荷,非线性或多物理耦合。这种方法几乎总是需要一个更含有内存的直接求解器来求解每个牛顿 - 拉夫森步骤中的方程式。
隔离方法
现在,将完全耦合的方法与隔离方法进行比较,该方法依次解决每个物理学直至收敛:
您将获得此类问题的不同类型的收敛图,该图显示了与您要解决的每个物理学相关的错误。每个物理学都可以使用最佳求解器,即直接或较少的内存密集型迭代,以求解方程的线性系统。每个隔离的步骤本身就可以是一个非线性问题,并且可以解决所需的耐受性,并且可以自定义阻尼,适合于解决的物理问题的特定组合。
使用这种解决方案方法,您将至少获得两个收敛图,一个用于隔离步骤中可能使用的迭代求解器,第二个用于隔离方法的整体收敛:
以上图显示了每个物理学的误差减少。尽管对于同一问题可能需要更多的迭代,但是通过隔离溶液方法的每个循环可能比完全耦合方法所需的牛顿 - 拉夫森步骤要快得多。您还可以从中获得更多信息,如果只有一个或两个物理,那么您将要先检查这些设置的设置。
顺序解决方案步骤
您可能会回想起这个问题的一件事是,温度变化是由电流的电阻加热驱动的,并且电流分布取决于温度依赖的电导率。也就是说,电压和温度解决方案是双向耦合。另一方面,尽管热应变和年轻的模量取决于温度,但电压和温度溶液并不取决于位移或应力。也就是说,有一个单向从热问题到结构问题的耦合。我们可以立即看到,有一种更有效的方法来解决此问题。我们可以首先解决电压和温度问题,然后求解位移:
因此,我们可以看到(至少)有三种不同的方法来解决此问题:完全耦合,隔离和假设所有物理学之间的耦合都被隔离,或者采用顺序解决方案步骤来利用单向耦合温度和位移之间。在解决多物理问题时,COMSOL将在所有物理学之间进行耦合,并尝试根据物理和问题大小选择最佳的完全耦合或隔离方法。当然,进入求解器设置以查看软件选择的设置总是很有启发性的。
求解器博客系列的结论
这一系列帖子旨在使您了解Comsol中用于解决单物理和多物理的线性和非线性稳态问题的算法。涵盖了网格,准确性和融合等问题。有了这些信息,您应该能够更自信地解决此类型模型的解决方案。
评论(16)
Felix Hildebrand
2015年6月17日可能的求解器配置的摘要非常好!我想知道如何为时间依赖的问题设置顺序求解器,以便在每个时间步中,它都会执行第一个(u_v,u_t)的顺序解决方案,然后再进行顺序(u_d)?隔离求解器中是否有一个选项来制作隔离节点顺序?
沃尔特·弗莱
2015年6月17日你好菲利克斯,
如果您设置了一个3D多物理问题并使用时间相关的求解器,则默认行为将是按照您的描述来分离解决方案。当然,欢迎您调整您希望这样做的默认设置。
Gohan Jang
2015年6月30日亲爱的沃尔特,
非常感谢您的写作。您的博客真的很有成果和乐于助人。
但是,在这个博客中,遵循您在comsol界面上的隔离方法图表对我来说很难。不久,我很难分别和迭代(例如fv-> ft-> fd-> fd-> fv--> fv-> ft-> ft-> fd-> fv-> fv…等)。我尝试在我的固定求解器中添加“隔离”选项,并且可以发现每个隔离的步骤都有“变量”部分,但是我找不到用于求解每个隔离步骤的精选物理的部分。然后,如果我猜对了,他们为第一个隔离步骤解决了可变紫外线(FV + ft + fd),而不是fv的fv?
沃尔特·弗莱
2015年6月30日亲爱的戈哈,
您可能需要就此事与您的Comsol支持团队联系,因为您的问题似乎是针对您正在使用的文件的。支持团队将很乐意为您解决这个问题。
Marco Morrone
2015年11月19日亲爱的沃尔特,
感谢您的宝贵写作。有一些我不太了解的东西:
关于上面提到的示例的顺序解决方案步骤,如何在两个隔离物理学之间创建双向耦合,然后将这种强耦合的结果转移到单向方面(当然,在这种情况下,当然,在这种情况下,不依赖温度)?我想也许通过使用两项不同的研究,但我仍然不清楚如何将温度升高从一种物理学发送到另一种物理,以更改材料特性,如果不完全耦合到一个矩阵中。
Marco Morrone
2015年11月20日…特别是对于时间依赖的现象。
问候
儿子Pham
2016年2月22日大家好,我正在模拟一个bava天线,外侧有两个地面和一个内部辐射层。不幸的是,当该程序的计算时,似乎不能是收敛过程。长期后,我必须停止该程序。
有人可以帮助我解决这个问题吗?
我使用集总端口模式刺激天线。我还尝试设计一个50欧姆连接器,但无法解决问题。非常感谢。
儿子Pham
2016年2月23日我想在这里分享我在收敛问题方面的经验。
当我对天线运行的模拟不融合时,我已更改为笛卡尔PML,并且迅速融合。在此之前,我还纠正了令人兴奋的源表面的大小,模拟几乎融合了!!!
因此,我认为我们应该在结构以及结构的大小中查看网格。小心波长…
如果有人在RF调试方面有其他经验,请发表评论以帮助像我这样的其他新手。
非常感谢。
Nhan Nguyen
2016年3月15日亲爱的沃尔特,
非常感谢您的写作。这很有帮助。
但是我在阅读您的写作后仍然无法解决问题。
例如,我在时间依赖性研究中使用ODE:
名称:x,f(u,ut,utt,t)= x*t [1/s] -2*y-1
名称:y,f(u,ut,utt,t)= y-3*x
我想让comsol解决x –> y –> x –> y –> x…。
在t = 0,x = 0 - > y = 0
在t = 1 [s], - > x = 1 - > y = 3
在t = 2 [s], - > x = 3.5 - > y = 10.5
我真的需要您的帮助!
沃尔特·弗莱
2016年3月15日亲爱的nhan,
这些特定于您正在使用的特定模型的问题应针对COMSOL支持团队。
理查德风暴
2016年5月30日我如何在comsol中获取这些阴谋?我的意思是,如何在comsol 5.2中绘制“错误”与“迭代号”?
Akash Meena
2020年3月19日大家好,如果有人知道如何在隔离求解器下绘制这些“错误与迭代编号”,请评论?
谢谢你。
Akash Meena
2020年3月19日大家好,如果有人知道如何在隔离求解器下绘制这些“错误与迭代编号”,请评论?
谢谢你。
沃尔特·弗莱
2020年3月19日 comsol员工您好,默认情况下,当您在研究设置中启用了“生成收敛图”时,将显示此图。
MD Robiul Hossain
2020年6月28日嗨,沃尔特,
很棒的帖子。非常有益。
您能解释一下如何使用步长和时间步长的相互互动图调查收敛图?
沃尔特·弗莱
2020年6月29日 comsol员工你好MD Robiul,
关于瞬态模型,另请参见:
//www.dvdachetez.com/blogs/automatic time-step-and-order-selection-in-time-dipepentent-Problems/
//www.dvdachetez.com/blogs/strategies-to-counter-small-automatic time-steps/
也:
//www.dvdachetez.com/support/knowledgebase/1262
//www.dvdachetez.com/support/knowledgebase/1254