yuun 发表于 2019-10-25 09:24:16

PCG,让Ansys算的更快(下)

ANSYS的求解方法简介

(1) 直接解法:
a. 稀疏矩阵法:
占内存大,但运算次数少;通过变换刚度矩阵的顺序使得非零元素最少,是使用消元为基础的直接求解法,是ANSYS经典中的默认求解器,对内存要求较高,它具有三种求解方式:核内求解,最优核外求解,最小核外求解。推荐选择核内求解。

稀疏矩阵直接解法(包括模态分析和屈曲分析中的Block Lanczos求解法),是基于方程组的直接消项的算法,而不是迭代算法。直接消项的原理是将方程的系数矩阵简化为下三角矩阵,再对方程进行求解。因稀疏矩阵直接解法采用直接消项的算法,它的适用性广。而且只要系数矩阵不是奇异矩阵,一般能够求出解来。但因系数矩阵消项过程中产生大量数据,对内存的需求量大,在求解大型问题前应该进行相应配置。
[*]
[*]
[*]
[*]
[*]
[*]
bcsoption,,incoere         !运行核内计算bcsoption,,optimal         !运行最优核外计算bcsoption,,minimal      !运行最小核外计算bcsoption,,force,10240   !指定使用内存大小/config,nproce,4          !使用4核处理器eqslv,sparse,1e-5,2      !选择求解器
b. 波前解法:
波前法的特点是:刚度矩阵K和载荷列阵P不按自然编号进入内存而按计算时参加运算的顺序排列;在内存中只保留尽可能少的一部分K和P的元素。
[*]
eqslv,front         !选择求解器
(2) 迭代解法:
a.pcg迭代求解器:
属于间接迭代法,收敛精度依赖于收敛准则,适合静态,稳态,瞬态和子空间特征值分析,特别适合于结构分析。对一些非线性分析也有好的效果,在接触分析中,对于使用罚函数法和增强的拉格朗日法也使用。
不适用于拉格朗日法的接触分析和不可压缩材料的分析。高效求解各种矩阵(包括病态),但仅解实、对称矩阵。
条件共轭求解法首先建立网格单元系数矩阵,设置初始解,通过迭代的方法将方程收敛到容差范围。根据材料和单元的不同,条件共轭求解法会设置一个合适的求解条件,然后再进行求解。
相比稀疏矩阵求解法,条件共轭求解法更节省时间。而且求解规模越大,节省的时间越多,甚至达到90%之多。但使用条件共轭求解法需要注意,病态矩阵将使结果不收敛。这时要么改善网格质量,重新划分重新分析,要么采用其他求解器分析。

PCG求解器的特点:
1)由于不需要矩阵分析,所需内存比稀疏矩阵法少;
2)对于中等或大尺寸模型,只要迭代合理,PCG比系数矩阵求解器要快;
3)依赖于刚性矩阵,若矩阵为良性,则求解速度快,单元的长宽比为10:1以下。
4)所需内存较大,一般为JCG的2倍,对于I/O要求较小;
5)求解速度是JCG的4-10倍,迭代次数在1500次以下时速度优于稀疏矩阵法,超过1500次时,则认为矩阵病态,可考虑使用其它求解器。
6)pcg不是默认求解器,需要eqslv,pcg,1e-4激活,其并行度在2cpu时性能可提高10-30%,最高支持16cpu,最高性能提高8倍。
b.JCG求解器(雅克比共轭等值法)
只有在静态分析,安全谐波分析和完全瞬态的分析才能使用,一般处理PCG不能处理的病态比较严重的问题。可解实数、对称、非对称矩阵。雅克比共轭求解法也是首先建立网格单元系数矩阵,设置初始解,通过迭代的方法将方程收敛到容差范围。基本过程与条件共轭求解法类似,但是以刚度矩阵作为设置求解条件的依据。
c.ICCG求解器(不完全乔类斯基共轭等值法)
类似于JCG,使用了更加复杂的先决条件,所以在病态矩阵的求解上比JCG更好,所用内存是JCG的2倍。只有在静态分析,安全谐波分析和完全瞬态的分析才能使用。
不完全乔类斯基共轭求解法与雅克比共轭求解法基本一致,但不完全乔类斯基共轭求解法对病态矩阵的求解能力更强,而且比刚度矩阵得到的前提条件可靠性更好。
d. QMR求解器(准最小残余求解法)
准最小残余求解法是适用于电磁分析和谐响应分析的一种迭代求解方法,它的求解可靠性比不完全乔类斯基共轭求解法更强。

选择PCG求解器(APDL和Workbench)
对大规模问题,建议采用PCG法。此法比波前法计算速度要快10倍以上(前提是您的计算机硬件内存较大,虚拟内存较大,每个硬盘都设置较大的虚拟内存,硬盘为固态硬盘256GB以上,ANSYS软件系统安装在固态硬盘上,ANSYS的工作目录也必须在固态硬盘上)。
a.ANSYS经典下PCG求解器是这样被激活的:

[*]
[*]
[*]
[*]
[*]
[*]
[*]
Finish/config,nproce,4         !指定使用4核处理器----提前设置好(如下图2所示)/solu                  !进入求解器alls                   !全选            eqslv,pcg,1e-4          !ansys默认求解精度为1e-8,此处改为1e-4msave,on            !节省内存SOLVE               !求解运算
b.workbench下求解器控制有两个,一个是直接法(Direct);一个是迭代法(Itetrative)。
https://mmbiz.qpic.cn/mmbiz_png/DVnwQibl2L2m96rlXSZm8IO1PuibBWerA6GIgsomZmDWbAxpEhWpW6RBibpeXTEyktH2bEWV27Jyu98o0MESqljVA/640?wx_fmt=png图5:workbench下求解器的选择
https://mmbiz.qpic.cn/mmbiz_png/DVnwQibl2L2m96rlXSZm8IO1PuibBWerA6krocyKn4sz1npENFbDMRfNiaGEGBG0LCEQXEvF2bBDhehZZOILGqwpg/640?wx_fmt=png

https://mmbiz.qpic.cn/mmbiz_png/DVnwQibl2L2m96rlXSZm8IO1PuibBWerA6KnFUHdicmAaY7dD1LvfbAllJ4ztpnpXaEo9QkuqEBE81Bb3MOLwnGMw/640?wx_fmt=png图6:workbench下求解精度的修改
注:在workbench下通过菜单调整后,计算时是不起作用的,不明原因。因此,需要在求解下插入命令流的方式激活PCG求解器,并将求解精度修改为1E-4。这样是可以的。https://mmbiz.qpic.cn/mmbiz_png/DVnwQibl2L2m96rlXSZm8IO1PuibBWerA6U1rMCwbFvUlb1icKwb2IH3WBDX8RY3yImxISK7Y8YVK2qMSF1vmUCfw/640?wx_fmt=png图7:workbench下插入命令流

直接法和迭代法两者的计算精度的比较
以带夹套的筒体径向开孔为例,用Solid186单元划分网格,在单元大小与边界条件一致的情况下(100万个方程数),采用稀疏矩阵法和PCG迭代法求解,看两者结果。
稀疏矩阵法用时1分40秒,最大总应力为298.656Mpa;如图8所示。https://mmbiz.qpic.cn/mmbiz_png/DVnwQibl2L2m96rlXSZm8IO1PuibBWerA6sbMhJW97Omj6sNbwu9EiazoK3B65yYwAtXDqvux3FtFZajuef6tiaYVg/640?wx_fmt=png图8:稀疏矩阵法(默认)分析结果
PCG迭代法用时39秒,最大总应力为298.764Mpa;如图9所示。https://mmbiz.qpic.cn/mmbiz_png/DVnwQibl2L2m96rlXSZm8IO1PuibBWerA6IOxoppZYSJ9NEt1iccoAeib7Otvus6InhxJkeksjicsom2YQyLc8BxAVw/640?wx_fmt=png图9:PCG迭代求解器分析结果
由此可见,结果相差不大,PCG的求解速度更快。

1254098538 发表于 2019-10-25 09:24:16

学到了,刚柔耦合计算量太大,难以收敛且计算时长长,用迭代求解法试试

1254098538 发表于 2019-10-25 09:24:16

请问迭代求解法和直接求解法在求解精度上有差别吗

Frank_2013 发表于 2019-10-25 09:24:16

楼主辛苦了

天山 发表于 2019-10-25 09:24:16

真的很逼真,做出来的图。

qyf 发表于 2019-10-25 09:24:16

谢谢你的分享

mzbsong 发表于 2019-10-25 09:24:16

{:1110_550:}谢谢杨工
页: [1]
查看完整版本: PCG,让Ansys算的更快(下)