第6章求解
6.1选择求解器
ANSYS程序中提供了5种求解联立代数方程组的方法:稀疏矩阵直接解法(Sparse Direct Solution)、预条件共轭梯度法(PCG)、雅可比共轭梯度法(JCG )、不完全乔里斯基共轭梯度法(ICCG)和二次最小残差法(QMR)。默认为稀疏矩阵直接解法。
可用以下方法选择求解器。
命令:EQSLV。
GUI:Main Menu > Solution > Analysis Options。
表6-1提供了一般的准则,可能有助于针对给定的问题选择合适的求解器。
表6-1求解器选择准则
6.2求解器的类型
6.2.1 稀疏矩阵直接解法求解器
稀疏矩阵直接解法(包括模态和屈曲分析中的Block Lanczos方法)采用直接消元法而不是进行迭代求解,它可以支持实矩阵与复矩阵、对称与非对称矩阵、拉格朗日乘子法,还支
持各类分析,病态矩阵也不会造成求解的困难。稀疏矩阵直接解法求解器由于需要存储分解后的矩阵,所以对于内存要求较高。其具有一定的并行性,可以利用4~8个CPU。
稀疏矩阵直接解法具有3种求解方式:核内求解、最优核外求解和最小核外求解。强烈推荐使用核内求解,此时基本不需要磁盘的输入与输出,能大幅度提高求解速度;而核外求解会受到磁盘输入与输出速度的影响。对于复矩阵或非对称矩阵一般需要通常求解两倍的内存与计算时间。
相关命令如下。
Bcsoption,,incoere 运行核内计算。
Bcsoption,,optimal 最优核外求解。
Bcsoption,,minimal 最小核外求解(非正式选项)。
Bcsoption,,force,memrory_size指定ANSYS使用内存大小。
/config,nproce,CPUnumber指定使用CPU的数目。
6.2.2预条件共轭梯度法求解器
预条件共轭梯度法(PCG)与雅可比共轭梯度法在操作上相似,除以下几个不同的地方。
1)预条件共轭梯度法解实体单元模型比雅可比共轭梯度法大约快4~10倍,对壳体构件模型大约快10倍,储存量随问题规模的增大而增大。
2)预条件共轭梯度法使用EMAT文件,而不是FULL文件。
3)雅可比共轭梯度法使用整体装配矩阵的对角线作为先决条件,预条件共轭梯度法使用更复杂的先决条件。
4)预条件共轭梯度法通常需要大约两倍于雅可比共轭梯度法的内存,因为在内存中保留了两个矩阵。
预条件共轭梯度法通常只需少于稀疏矩阵直接求解法所需空间的1/4,存储量随问题规模大小而增减。当运算大模型时,预条件共轭梯度法总是比稀疏矩阵直接解法要快。
预条件共轭梯度法最适用于结构分析。它对具有对称、稀疏、有界和无界矩阵的单元有效,适用于静态/稳态分析及瞬态分析或子空间特征值分析。预条件共轭梯度法主要解决位移/转动、温度等问题,其他导出变量的准确度取决于原变量的预测精度。
稀疏矩阵直接求解法可获得非常精确的解向量,间接迭代法主要依赖于用户指定的收敛准则,因此放松默认公差将对精度产生重要影响,尤其对导出量的精度。
对于所有的共轭梯度法,用户必须非常仔细地检查模型的约束是否合理,如果有任何刚体移动,将计算不出最小主元,求解器会不断迭代。
6.2.3雅可比共轭梯度法求解器
雅可比共轭梯度法(JCG)求解器也是从单元矩阵公式出发,最适合于包含大型的稀疏矩阵三维标量场的分析,如三维磁场分析。对于有些场合来说,1.0E-8的公差默认值(通过命令EQSLV, JCG设置)可能太严格,会增加不必要的运算时间,大多数场合1.0E-5的值就可满足要求。雅可比共轭梯度法求解器只适用于静态分析、全谐波分析或全瞬态分析。
6.2.4不完全乔里斯基共轭梯度法求解器
不完全乔里斯基共轭梯度法(ICCG)与雅可比共轭梯度法在操作上相似,比雅可比共轭梯度法使用更复杂的先决条件,使用不完全乔里斯基共轭梯度法需要大约两倍于雅可比共轭梯度法的内存。
不完全乔里斯基共轭梯度法只适用于静态分析、全谐波分析(HROPE, FULL)或全瞬态分析。不完全乔里斯基共轭梯度法比稀疏矩阵直接解法速度要快。
6.2.5 二次最小残差求解器
二次最小残差(QMR)求解器被用来求解电磁问题或完全谐响应分析。用户可用该求解器求解对称、复杂、正定和非正定矩阵的问题。
6.3在某些类型结构分析使用特殊求解控制
当进行特定类型结构分析时,可以利用以下特殊求解工具。
1)简化求解菜单(Abridged Solution Menus),适合静态、瞬态、模态、与屈曲分析。
2)“求解控制”对话框适用于静态和瞬态分析。
6.3.1 使用简化求解菜单
如果使用图形用户界面(GUI)执行静态、瞬态、模态与屈曲结构分析,则可以选择使
用简化菜单或非简化菜单。
1)非简化菜单列出所有求解选项,而不考虑是否为当前分析的推荐选项或是可用选项。如果某选项在当前分析中不可用,则在列表中以灰色显示。
2)简化菜单非常简洁,仅仅列出应用于进行的分析的选项。例如,如果进行静态分析,则模式循环选项将不会出现在简化菜单中,只有那些当前分析可用或被推荐的选项才会显示。如果进行结构分析,当进入求解处理器时,简化菜单显示为默认状态。
如果分析既不是静态又不是全瞬态,则可以使用显示菜单中的选项完成分析中求解阶段。如果选择了另外的分析类型,则默认简化求解菜单将被另外的求解菜单替换为新的菜单适用于选择的分析类型。各种简化求解菜单都包含了非简化菜单选项,如果喜欢非简化求解菜单,则这一选项一直可用。
如果在做一个分析时选择开始一个新的分析,ANSYS将会显示前一个分析所用的求解菜单。例如,如果选择使用非简化求解菜单进行静态分析并且选择了一个新的屈曲分析,则ANSYS将显示非简化求解菜单以供屈曲分析使用。然而,在分析求解阶段的任何时候,都可以选择相应菜单选项在简化与非简化求解菜单中切换。
6.3.2 使用“求解控制”对话框
如果在进行静态与全瞬态分析,则可以使用改进的求解界面(称为“Solution Controls (求解控制)”对话框)设置许多分析选项。“求解控制”对话框由5个选项卡组成,每个选项卡都包含了相关的求解控制。在指定多载荷步分析中每个载荷步的设置时,“求解控制”对话框非常有效。进入“求解控制”对话框的方式为GUI: Main Menu > Solution > Analysis Type > Solution Controls。弹出图6-1所示的对话框。
当进入对话框时,所示的基本选项卡将被激活。完整的选项卡列表,按从左到右的顺序为Basic(基本)、Transient(瞬态)、Solution Options(求解选项)、Nonlinear(非线性)和Advanced NL(非线性高级控制)。
每个控制都被逻辑分类于选项卡,最基本的控制在第一个选项卡,后面的选项卡将提供逐渐高级的控制。瞬态选项卡包含瞬态分析控制,仅当选择瞬态分析时可用,如果选择静态分析,它将保持灰色。“Solution Controls(求解控制)”对话框上每个控制对应一个ANSYS 命令。表6-2解释了选项卡与命令之间的关系,两种方式都可使用。
表6-2 "Solution Controls(求解控制)”对话框选项卡与命令之间的关系
一旦对“Basic(基本)”选项卡上的设定满意,就不需要改变其他选项卡,除非要改变一些高级控制。只要在对话框任意一个选项卡中单击OK按钮,设置将被应用到ANSYS数据库,对话框也将关闭。
需要注意,如果改变了一个或多个标签设置,仅当单击OK按钮关闭对话框时改变才会
应用到ANSYS数据库。
6.4获得解答
进行以下操作开始求解。
命令:SOLVE。
GUI:Main Menu > Solution > Current LS。
因为求解阶段与其他阶段相比,一般需要更多的计算机资源,所以批处理模式要比交互模式更适宜。求解器将输出写入输出文件(Jobname.OUT)和结果文件中,如果以交互模式运行求解,则输出文件就是屏幕。当执行SOLVE命令前使用下述操作,可以将输出送入一个文件而不是屏幕。
命令:/OUTPUT。
GUI:Utility Menu > File > Switch Output to > File or Output Window.
在交互模式中,大多数输出是被压缩的,结果文件(RST, RTH, RMG或RFL)包含以二进制方式的所有数据,可在后处理程序中进行浏览。在求解过程中产生的另一个有用文件是Jobname.STAT文件,它给出了解答情况。程序运行时可用该文件来监视分析过程,对非线性和瞬态分析的迭代分析尤其有用。
6.5求解多载荷步
6.5.1 使用多步求解法
这种方法是最直接的,它包括在每个载荷步定义好后执行SOLVE命令。主要的缺点是,在交互使用时必须等到每一步求解结束后才能定义下一个载荷步。典型的多重求解法命令输入如下所示。
/SOLU ! 载荷步1:
D,...
SF,. .
SOLVE, !求解载荷步1
! 载荷步2
F,…
SF,...
SOLVE !求解载荷步2
6.5.2使用载荷步文件法
当想求解问题而又远离终端或计算机时,可以很方便地使用载荷步文件法。该方法包括写入每一个载荷步到载荷步文件中(通过LSWRITE命令或相应的GUI方式),通过一条命令就可以读入每个文件并获得解答。
要求解多载荷步。
命令:LSSOLVE。
GUI:Main Menu > Solution > From Ls Files。
LSSOLVE命令其实是一条宏指令,它按顺序读取载荷步文件,并开始每一个载荷步求解。载荷步文件法的示例命令输入如下所示。
/SOLU !进入SOLUTION模块
!载荷步1
D,... !载荷
SF....
NSUBST,... !载荷步选项
KBC,….
OUTRES,…
OUTPR,…
LSWRITE !写载荷步文件:Jobname.SO1
!载荷步2
D,... !载荷
SF,...
NSUBST.... !载荷步选项
KBC,…
OUTRES,..
OUTPR,…
LSWRITE !写载荷步文件:Jobname.SO2
LSSOLVE,1,2 !开始求解载荷步文件1和2