平台: 所有平台 版本: 所有版本

问题描述

瞬态模型涉及计算随时间变化的解决方案。为此,软件从给定的初始条件开始,并使用几种不同的时间整合方案之一计算未知数的演变。有时,这些会汇聚缓慢,或不全部。本文提供有关如何解决此类案件的指导。

解决方案

背景

comsol多物理学时间依赖性(瞬态)求解器具有求解形式的一组方程的能力:在哪里可以是常数或非线性函数。这些方程可能是一组独立的普通微分方程(ODE)或一组耦合方程,由于边界价值问题(BVP)通过有限元方法(FEM)出现而产生的一组耦合方程。在COMSOL中,您为时间和空间变化的字段求解的大多数问题属于后一种类别。结合上述方程式,该软件可以考虑一组通用形式的代数方程:这两组方程形成了一个差异的方程式(DAE)。这是这个DAE,以及一组初始条件,,这完全定义了瞬态模型。还要注意,可以解决具有较高时间衍生品的模型,并且只需要引入其他中间变量即可。

时间步进方法

Comsol中有三类用于解决DAE的方法:BDF,广义Alpha和Runge-Kutta方法。BDF和广义α是隐式方法,而runge-kutta方法是明确的。显式方法基于当前状态下的解决方案直接计算未来状态的解决方案。隐式方法形成并求解了将来状态和当前状态的解决方案系统。隐式方法通常比显式方法更稳定,更快,但是显式方法将使用更少的内存。该软件将根据所使用的物理接口自动确定最合适的方法,很少建议使用默认求解器方法来覆盖默认的求解器方法。

要查看使用哪个求解器,请查看时间步入设置时间依赖性求解器节点内求解器配置,如下面的屏幕截图所示。

在哪里可以查看使用哪种求解器方法。

runge-kutta方法主要用于求解ODES系统和涉及的模型时间显式压力声学时间显式电磁波物理界面。因此,它们的用法非常狭窄,并且在这本知识库文章的范围内没有涵盖。

通用α方法通常是模型的默认方法,在该模型中,该溶液在本质上是振荡性(波浪样),例如声学,波浪电磁学和考虑惯性术语的结构瞬态模型。通过指定元素大小和求解器时间步骤,最好解决这些类型的问题。请参阅有关的文章解决时间依赖性波有关如何设置网格并选择时间步长的指导,也请参见KB 1244:解决载荷的步骤变化的波型问题。遵循这些准则应解决此类模型的大多数收敛问题。

BDF方法通常是涉及扩散,对流和反应的FEM模型的默认方法,并且此类案例代表了大多数受益于求解器设置的情况。这些情况是使用自适应或自由的时间步进方案,求解器将自动调整时间步长。正是这些案例是本知识库文章的重点。

重要的是要注意,默认情况下,求解器在请求的时间步骤中返回解决方案,而不是求解器实际采取的时间步骤。有关此的更多详细信息,并了解如何覆盖此行为,请参阅知识库1254:控制时间依赖时间求解器时间步骤

调整时间依赖性求解器

对于默认情况下,使用BDF方法在空闲时间步进的情况下解决了涉及扩散,对流和反应的问题,重要的是要注意以下所有几点。所有这些相互结合,都会影响求解器收敛。

使用事件进行建模步骤更改

如果模型上的负载或边界条件将在及时(在已知时间或已知条件下)立即改变,则应通过引入一个情况来解决此类情况事件界面。看:求解具有脉冲载荷的模型。事件确保求解器将准确捕获负载中的所有步骤更改。

求解器的相对耐受性

当使用自适应时间步进(使用任何求解器方法)时,软件会自动调整所需的时间步长的大小,从而满足所需的相对公差。尽管这种情况下的时间步长的确切选择非常复杂且不能直接控制,但可控制的是相对耐受性如下面的屏幕快照所示。您应该始终进行耐受性的精炼研究:以更严格的耐受性和比较结果来重新介绍模型。

用户控制的相对公差设置。

相对公差与瞬时误差和累积误差有关。由于错误可能会积聚和生长,因此过于循环的相对公差会导致误差主导的解决方案。如果您观察到求解器最初相对较大,然后稍后采取相对较小的时间步骤,这可能是原因。用更严格的相对公差重新溶解将导致求解器最初采取较小的时间步骤,但是累积错误将较小,因此求解器可能不需要缩短时间步长以在以后的时间步骤中克服累积错误。也就是说,更严格的相对公差会导致总体收敛速度更快。

网格必须足够细,以解决建模域上解决方案场中的变化。尤其是对于涉及扩散,对流和反应的问题,不可能提前说田间空间变化很大的时间。如果网格太粗糙,则求解器可能需要采取非常小的时间步骤以阻止错误。因此,精炼网格可能会导致求解器采取更大的时间步骤,尽管以较大的模型为代价。始终按照所述进行网状精炼研究知识库1261:进行网状精炼研究

网状细化和相对耐受性的精炼齐头并进。研究两者都在研究相对耐受性和网状细化之间来回交替。

一致的初始化

您可以设置具有与初始值不一致的边界条件的模型。此类模型使用时仍可解决一致的初始化,默认情况下启用。但是,这可能无法完全产生所需的效果,并且可能在模拟开始时会导致非常小的时间步骤。有关如何解决此问题的更多详细信息和指导,请参见知识库1172:求解具有不一致初始值的时间依赖模型

缩放

出于数值原因,该软件始终缩放未知数的求解。这种情况会自动发生,如果缩放是适当的,则不会出现问题。但是,如果缩放不合适,则需要手动缩放字段。要学习如何检查和手动调整变量的缩放,请参见知识库1240:手动设置变量的缩放

非线性求解器设置

当求解具有重要非线性项的模型时,求解器可能无法使用默认设置计算到隐式方程集的解决方案。要了解如何诊断和解决此类情况,请参阅知识库1127:改善非线性时间依赖性模型的收敛性

初始时间步

当求解器启动时,它会根据总仿真时间估算初始时间步长。因此,如果在不同的总时间内两次求解相同的模型,则初始时间步可能会有所不同。如果开始时间后立即发生重大发生的事情,这可能会导致不同的结果。要指定初始时间步长,请转到时间依赖性求解器设置,时间步入部分,启用初步步骤:选项并输入固定的初始步骤大小,如下屏幕快照所示。请注意,该软件仍然可以免费选择比此值小的时间步长,但不会使其更大。还要考虑是否事件可以改用。

指定求解器尝试采用的初始时间步长。

隔离与完全耦合方法

在求解多物理模型时,该软件的默认行为通常是在隔离的意义上处理问题,解决第一个物理,然后在每个时间步骤之间进行迭代。根据问题的性质,这会强烈影响收敛。如果模型通过隔离方法求解,请尝试完全耦合,反之亦然。如果通过完全耦合的方法求解,则可能需要使用直接的线性系统求解器。要了解这些方法和线性系统求解器之间的差异,请参见:知识库1258:了解完全耦合与隔离方法和直接求解器与线性求解器

处理非构造模型

如果时间依赖性求解器无法收敛,则在初始条件下会立即失败,或者在模拟时间跨度期间的某个时候失败。

如果在模拟过程中的某个时刻失败,请使用上面描述的所有技术来改善收敛性。另外,输出求解器所取的结果如所述知识库1254:控制时间依赖时间求解器时间步骤。绘制并观察解决方案在求解器失败的时间步长处的解决方案。如前所述知识库1255:减少模型中存储的解决方案数据的量。如果网格不够好,或者是否有一些正在传播的累积错误,则绘制结果可以特别突出。

如果求解器立即失效,则首先要仔细检查每个物理接口中指定的初始条件,以及模型中所有物理的所有边界条件,负载和约束。如果这些不一致,则可能导致求解器故障。默认情况下,求解器将尝试通过找到与所有边界条件一致的初始条件来纠正此问题,但是这可能与预期有很大不同。这特别是对于涉及流量的模型,这特别是发生,如知识库1172:求解具有不一致初始值的时间依赖模型

如果这样做是合理的,也建议尝试建立相同或几乎等效的固定(时间不变)模型,因为这可以用作调查网格细化,缩放和比较分离和比较隔离和比较的良好测试台完全耦合的方法。有关解决非线性固定模型的信息,请参见:知识库103:改善非线性固定模型的收敛性