中仿科技---专业信息化软件及技术咨询公司@cntech.com.cnCOMSOLMultiphysics求解器中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn内容安排•求解器基础理论直接求解器、迭代求解器•研究类型稳态、瞬态、特征值、频率域、参数的•求解器配置•操作特侦、属性特征、实用特征•作业配置参数化作业、批处理作业、集群运算中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn有限元法•有限元法处理偏微分方程(PDE),并把它转换成离散的线性代数方程系统。fuc)(FKu•矩阵K称为刚度矩阵(stiffnessmatrix)•u是解变量,也称为解向量(solutionvector)•F是载荷向量(loadvector)•u的长度称为自由度数目(DOF)中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn稳态求解器•自动检测非线性•非线性问题:变量及其函数出现在:–材料参数–约束条件fuuc))((FuuK)(•矩阵K称为Jacobian矩阵(=非线性刚度矩阵)中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn稳态求解器•在线性代数中:–线性问题:Ku=F–非线性问题:K(u)u=F•直接线性求解器通过一步转化矩阵u=K-1F•非线性求解器逐步迭代到正确解–K(u0)u1~F,K(u1)u2~F,K(u2)u3~F,…,K(un)un+1~F直到满足|un-un+1|容差–n为迭代次数–在每一迭代步骤中使用“规则的”线性求解器,线性求解器嵌套在非线性求解器中非线性求解器线性求解器容差?中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn线性求解器•直接求解器–MUMPS,SPOOLES,PARDISO等–易于使用,鲁棒性,占用内存大–适于处理小规模问题,高度非线性和多物理场问题•迭代求解器–GMRES,FGMRES,ConjugateGradient,BiCGSTAB等–占用内存少,更多的选择,调整比较困难–应用于特定的物理场,如,EM,CFD等–需要预处理器,网格框架,平滑器等中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn直接线性求解器•直接线性求解器通过一步“求逆”得到结果u=K-1F:–把Ku=F分解成LUu=F,所以L和U是容易求逆并且具有鲁棒性–u=U-1L-1F–等同于Gaussian消去法•优点:鲁棒性强•缺点:内存开销大中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn直接线性求解器•MUMPS–使用预序算法转置列,从而减少填充项–支持多线程,使用MPI指令支持分布式内存结构–数据的内外存利用•SPOOLES–利用对称矩阵,支持多线程–使用预序算法转置列,从而减少填充项•PARDISO–利用对称矩阵–使用内存比SPOOLES少–共享内存式并行处理–在矩阵分解过程中不需要选主元从而节省内存,这导致不精确的因子–由于支持并行的折中处理,不是100%的鲁棒性中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn迭代求解器•对于规模较大的问题(单元数多,自由度大),直接求解器计算会出现内存不足•矩阵分解是很耗内存的–L和U比K具有更多的非0元素•如何避免分解?–迭代求解器:•不形成L和U•精细的迭代策略•对每一步测试是否r=Ku-F~0(即是否左侧等于右侧)–r称为残差(residual)中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn迭代求解器和预处理器•为了在合理的计算时间内达到收敛,迭代求解器需要一个好的初始估算值–利用预处理器•预处理器M是K的近似值,预处理后的系统变为M-1Ku=M-1FAu=BA=M-1K,B=M-1F•预处理后的系统收敛较快,Au=B比Ku=F更容易(快)求解•通常,迭代方法根据前面的残差(r=Ax-b)对u进行较小的改变中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn迭代线性求解器•GMRES–在前面所有搜索方向上最小化残差,直到重新开始–如何调整重新求解前迭代步数(默认为50)•更节省内存---减小•得到较好的鲁棒性---增加•FGMRES–GMRES的一个灵活的变种–能有效地处理更多类的预处理器–比GMRES开销2倍多的内存•ConjugateGradient–对称正定问题–在计算时比GMRES更快、内存使用效率更高•BiCGStab–使用双共轭梯度稳定迭代算法–在计算时比GMRES更快、内存使用效率更高中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn预处理器•不完全LU(IncompleteLU)–最具有鲁棒性–内存要求大•代数多网格(AlgebraicMultigrid)–标量和松散耦合的多物理场问题–对Poisson问题非常有效•对角标度(DiagonalScaling)–简单,内存使用非常少–适用于椭圆或对角占优问题•SSOR–有效使用内存–同类问题的计算可能比对角标度法要快–针对EM问题的SSOR向量•Vanka(前/后平滑器)–确定Vanka变量•对角线上为0的变量–对每个VankaDOF求解连接自由度的低密度系统中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn几何多网格法(GeometricMultigrid)•对GMRES或CG的独立求解器或预处理器•至少需要两级网格水平(fine和coarse)–通过改变单元阶数或细化、粗化网格建立新网格水平–与当前网格相比,少数几次迭代(平滑器)滤出高频误差–低频误差映射到逐次的粗化网格–在最粗化网格水平,直接求解器消除剩余误差•参数多,调整困难,但在计算时优于所有其他一般的求解器•适合于非常大规模的问题–GMRES+几何多重网格法中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn分离式求解器物理1物理2物理3物理1物理2物理3•耦合求解器•分离式求解器中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn分离式求解器•对高度非线性多物理场模型容易获得好的初始估算值•对不同的物理场使用不同的求解器设置•对大规模、耦合问题的计算,内存开销急剧下降–流固耦合(FSI)、湍流、波传播-结构-热问题–很复杂的多物理场问题微波-热-结构多物理场耦合中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn选择线性求解器•单场问题推荐使用缺省设置•检查手册中类似的案例模型和它们使用的求解器•对多物理场问题,以直接求解器开始:–尝试PARDISO–PARDISO计算失败,且如果问题是病态的–尝试MUMPS–最后尝试SPOOLES中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn选择线性求解器(续)•如果直接求解器由于内存问题计算失败,尝试迭代求解器:–传热、扩散和静电计算,尝试使用AMG作为预处理器的CG求解器–结构计算,尝试使用ILU为预处理器的CG求解器–GMRES求解器(预处理器GMG)使用默认设置–GMRES求解器(预处理器ILU)•GMRES(预处理器ILU)–不完全LU具有鲁棒性并且经常被使用,但是速度慢–收敛慢:降低调降公差–内存溢出:增加调降公差(droptolerance)中仿科技---专业信息化软件及技术咨询公司@cntech.com.cn选择线性求解器(续)•如果GMRES运行内存溢出–如果模型规模大、正定并且运行良好,尝试CG–尝试GMG和“低级”平滑器(SSOR)•如果GMG仍然计算不了–在刚度矩阵的对角线上出现0,确定是哪个变量并使用Vanka作为平滑器;对于Navier-Stokes和电磁感应问题比较典型–如果是波问题,对声学使用GMRES作为平滑器,对电磁使用SSOR矢量•如果GMRES/GMG收敛慢–尝试用不同的前后平滑器调整GMG–手工剖分网格,尝试发现最优策略中仿科技---专业信息化软件及技术咨询公司