COMSOL求解器怎么选择COMSOL求解器不收敛怎么调整,是许多物理场一起仿真时经常碰到的问题。很多模型并不是物理设置全错了,而是求解器的种类、不同场之间的耦合办法、网格粗细、初始的数值和加载的方式这几样没有搭配好。COMSOL里面有算稳态的、算随时间变化的、算特征值的这几种不同研究类型,也有把所有变量放在一起解的Fully Coupled和分开解的Segregated这两种求解想法;直接求解器里常见的PARDISO、MUMPS这些,在计算快慢、占多少内存和结果稳不稳上也会有差别。
一、COMSOL求解器怎么选择
挑选求解器的时候,先不用急着自己动手去改所有的参数。COMSOL自己给出的求解器配置常常可以对付很多平常的模型,真要到该去调整的时候,也应当照着物理问题的类型、耦合的强弱和模型的大小来拿主意。
1、先看研究类型
在【Study】里面先认清模型是稳态的、瞬态的、频域的还是特征值的问题。稳态问题一般盯住最后的平衡样子,瞬态问题要看随着时间怎么变化,特征值问题用来算固有频率、稳定性或者模态。研究类型要是挑错了,后面无论怎么调求解器,结果也容易和真实情况跑偏。
2、再看耦合的强弱
多个物理场互相影响比较强的时候,用Fully Coupled更容易保持各个变量之间互相一致,不过对内存的要求也更高;变量之间互相影响比较弱,或者模型比较大的时候,用Segregated能把一个大方程组拆成几个小一点的步骤来求解。在COMSOL的资料里,也把Fully Coupled看成一下子去解整个大方程组,而Segregated是把变量分开来一组一组地求解。
3、按大小选线性的求解方法
模型比较小或者中等大小,可以先试试直接求解器,一般这种更稳一些;如果是大型的三维模型,内存已经很紧张了,就可以去试迭代求解器,再配上合适的预条件器。直接求解器用起来更省事,不用调太多东西,但占的内存也会多不少;迭代求解器更看模型本身的情况和预条件的设定。
二、COMSOL求解器不收敛怎么调整
不收敛的时候,不要只是一次又一次地去点计算,也不要只是把容差的数字改大。收敛不下去,很多时候是模型的设置、网格、一开始给的值、载荷改变或者非线性太强这些加在一起造成的。应当先把错误的样子看明白,再决定去改哪一块。
1、先看求解过程的记录
打开【Solver Log】看失败是在哪一步,是非线性的迭代没收敛,还是解线性方程组没成功,又或是残差降了一下之后又散开了。
如果刚开始就失败,就要多去检查边界条件、材料参数和一开始给的值;如果是算了一段时间以后才失败,一般就要去看非线性、接触、相变、大变形或者耦合特别强的那些地方。
2、检查物理数值和单位
好多不收敛是因为某个数值的量级弄错了,比如把毫米当成了米、材料弹性模量少给了几个零、热源的功率大得不对、入口的速度不合理。模型里只要有一个量级是错的,求解器可能就会显得“很难收敛”,可根子其实在物理设定本身不太对。
3、把网格和初始值弄好
网格太粗了,局部变化很急的地方就看不明白;网格太细了,又会把要算的东西变得太多。可以先在变化最关键的地方把网格加细,而不是整个模型盲目地全弄细。对非线性的模型,一开始给的值也很要紧,可以先用一个简化的模型或者用比较小的载荷先算出一个开始的值,再去往下算整个模型。
三、COMSOL收敛问题怎么逐步排查
复杂的模型不推荐一下子就把所有的物理场、所有的载荷和所有非线性的地方全打开。更把稳的做法,是从简单的模型起步,再一点一点把复杂的东西加进去,每一步都确认结果差不多合理。
1、从简化后的模型跑起来
可以先暂时关掉次要的物理场、把几何形状变简单、把载荷降下来,或者用线性的材料,让主要的问题先能跑通。要是连简化后的模型都不收敛,就说明最基础的边界、材料或者网格可能就有问题了;要是简化后的模型能跑通,再把刚才拿掉的复杂设置慢慢往回加。
2、用载荷慢慢加上去的办法
碰到非线性很强的问题,可以通过让参数接着走、一步一步加载荷,或者靠时间变化的过程来接近最后的样子。比如热源、压力、位移、接触的载荷,不要一下子就加到最大值,而是分一段一段加上去。这样求解器更容易找到一条连续的解路。
3、调一调耦合的方式和阻尼
如果Fully Coupled走不稳,可以试一试Segregated分开求解;如果迭代的过程发散了,可以适当用一些阻尼、把步长放小一点,或者调一调非线性迭代的设置。COMSOL里Fully Coupled和Segregated两个节点本来就是用来管不同求解路子的,同一个模型里面只能让其中一种起效果。
总结
COMSOL求解器怎么选择COMSOL求解器不收敛怎么调整,要紧的是先照着研究类型、耦合的强弱和模型的大小把求解的路子定好,再靠着求解日志找出不收敛的原因。稳态、瞬态、特征值这几类不能混着用;耦合强的模型和很大的模型也不能只靠一开始默认的设置硬算。碰到不收敛时,先查单位、材料、边界、网格和一开始给的值,再去想载荷慢慢加、耦合拆开以及求解器参数怎么调。这样做,COMSOL模型更容易稳稳当当地收敛,算出的结果也更能用在工程上。