求解#
关键字:
*CONTROLS
此选项用于修改迭代控制参数,仅建议那些了解其含义并且在该领域有专业知识的用户使用
有两个互斥的子关键字
RESET
:重置控制参数为默认值
*CONTROLS, RESET
PARAMETERS
:用于更改默认设置,可选参数控制如下
参数选项 |
控制范围 |
---|---|
|
增量迭代控制 |
|
收敛准则 |
|
线搜索参数(仅用于面-面接触罚方法) |
|
网络迭代的收敛准则 |
|
流体计算 |
|
面-面接触罚方法收敛准则 |
*CONTROLS, PARAMETERS = TIME INCREMENTATION
......
参考示例:
TIME INCREMENTATION#
在非线性有限元分析中,求解器在每个时间步的求解中,通常采用增量-迭代法(Newton-Raphon)。TIME INCREMENTATION
相关参数控制着每个时间步内的迭代行为,以及遇到发散或收敛缓慢时自动调整时间步长的策略。这些参数直接影响分析的稳定性、收敛速度和计算效率
子关键字分为两行,第一行与时间步内迭代次数相关
参数 |
意义 |
默认值 |
典型建议 |
---|---|---|---|
\(I_{0}\) |
检查残差连续增加的次数,若超过 \(I_{0}\),则当前时间步长乘以 \(D_{f}\) |
\(4\) |
若模型易发散,可适当减小 |
\(I_{R}\) |
每隔 \(I_{R}\) 次迭代进行一次对数收敛速率检查,预测当迭代次数为 \(I_{C}\) 时是否能够收敛,若不能,当前时间步长乘以 \(D_{C}\) |
\(8\) |
若模型收敛慢,可适当增大 |
\(I_{P}\) |
从第 \(I_{P}\) 次迭代起,残差收敛判据由 \(R_{n}^{\alpha}\) 切换为 \(R_{p}^{\alpha}\)(更宽松) |
\(9\) |
一般无需更改 |
\(I_{C}\) |
当前时间步允许的最大迭代次数,若超过则强制缩小时间步长重试 |
\(16\) |
对于极难收敛问题可适当增大 |
\(I_{L}\) |
若当前时间步内的迭代次数超过 \(I_{L}\),则下一个时间步长乘以 \(D_{B}\) |
\(10\) |
对于大变形/非线性强问题可适当减小 |
\(I_{G}\) |
若连续两个时间步的迭代次数都小于 \(I_{G}\),下一个时间步长乘以 \(D_{D}\) |
\(4\) |
若追求快速分析可适当减小 |
\(I_{S}\) |
当前未使用 |
- |
- |
\(I_{A}\) |
当前时间步允许的最大时间步长减小次数,若超过则报错终止 |
5 |
建议默认即可 |
\(I_{J}\) |
当前未使用 |
- |
- |
\(I_{T}\) |
当前未使用 |
- |
- |
第二行与时间步长的缩放因子相关
参数 |
意义 |
默认值 |
典型建议 |
---|---|---|---|
\(D_{f}\) |
残差连续增加超过 \(I_{0}\) 次时,当前时间步长乘以 \(D_{f}\) |
\(0.25\) |
若模型极不稳定可减小至 \(0.1\sim0.2\) |
\(D_{C}\) |
对数检查不通过时(\(I_{R}\)),当前时间步长乘以 \(D_{C}\) |
\(0.5\) |
一般无需更改 |
\(D_{B}\) |
当前时间步迭代次数超过 \(I_{L}\) 时,下一时间步长乘以 \(D_{B}\) |
\(0.75\) |
若希望更保守可减小 |
\(D_{A}\) |
若连续两个时间步的温度变化超过 |
\(0.85\) |
热分析时可适当减小 |
\(D_{S}\) |
当前未使用 |
- |
- |
\(D_{H}\) |
当前未使用 |
- |
- |
\(D_{D}\) |
若连续两个时间步迭代次数都小于 \(I_{G}\),下一个时间步长乘以 \(D_{D}\) |
\(1.5\) |
若对收敛有信心可增大至 \(2\) |
\(W_{G}\) |
当前未使用 |
- |
- |
FIELD#
在非线性有限元分析中,场变量(如温度、浓度、电势等)的求解通常采用增量-迭代法(如 Newton-Raphson 方法)。FIELD
参数用于控制场变量在每个时间步内的收敛判据和迭代策略。合理设置这些参数,有助于保证收敛准确性、提升求解效率和分析稳定性,在强非线性、多场耦合或极端工况下尤为重要
参数 |
意义 |
默认值 |
典型建议 |
---|---|---|---|
\(R_{n}^{\alpha}\) |
最大残差与平均力之比,衡量场变量(如温度、浓度)是否收敛到平衡状态 |
\(0.005\) |
若收敛困难可适当放宽(如 \(0.01\));对精度要求高可收紧(如 \(0.001\))。适合大多数热/扩散/场耦合问题 |
\(C_{n}^{\alpha}\) |
解的最大相对修正量 |
\(0.01\) |
若解变化剧烈可放宽(如 \(0.02\));若需更严格收敛可收紧(如 \(0.005\)),通常与 \(R_{n}^{\alpha}\) 配合使用 |
\(q_{0}^{\alpha}\) |
初始(第一个时间步)平均力,用于归一化残差 |
上步值或 \(0.01\) |
通常无需调整。若第一步物理量极小或极大时,可手动设置以改善归一化效果 |
\(q_{u}^{\alpha}\) |
用户自定义的平均力 |
- |
若设置,平均力不再自动计算,直接采用此值。适用于特殊归一化需求,比如某些物理量非常小或非常大时 |
\(R_{p}^{\alpha}\) |
若牛顿迭代次数达到 \(I_{P}\) 后仍未收敛,收敛标准从 \(R_{n}^{\alpha}\) 切换为 \(R_{p}^{\alpha}\) |
\(0.02\) |
若遇到局部极难收敛问题可适当放宽;如需严格控制收敛质量可收紧 |
\(\epsilon^{\alpha}\) |
判断系统是否已“无流动/无通量”(如热流为0),常用于稳态场问题 |
\(10^{-5}\) |
若稳态判定太敏感可放宽;如需极严格稳态判定可收紧 |
\(C_{\epsilon}^{\alpha}\) |
解的最大相对修正量 |
\(10^{-3}\) |
若解变量波动大可适当放宽;如需极严格稳态判定可收紧 |
\(R_{l}^{\alpha}\) |
目前看和 \(R_{n}^{\alpha}\) 似乎没有区别 |
\(10^{-8}\) |
通常不需修改 |
LINEAR SEARCH#
在有限元分析中,许多问题具有非线性特性,例如材料的本构非线性、大变形引起的几何非线性以及接触带来的接触非线性。针对这类非线性问题,通常采用 Newton-Raphson 法进行求解。该方法在每一步迭代中都会计算一个修正量,并逐步逼近真实解。然而,如果修正量选择不当,往往会导致收敛困难甚至解的发散。此时,可以引入线搜索技术,通过调整步长来改善收敛性,从而获得更可靠的求解结果
在 CCX 中,该选项仅适用于面-面接触罚方法
参数 |
意义 |
默认值 |
典型建议 |
---|---|---|---|
- |
- |
- |
- |
\(s_{\max}^{ls}\) |
线搜索步长系数最大值 |
\(1.01\) |
若收敛困难可适当减小 |
\(s_{\min}^{ls}\) |
线搜索步长系数最小值 |
\(0.25\) |
若收敛困难可适当减小 |
- |
- |
- |
- |
- |
- |
- |
- |
NETWORK#
NETWORK
关键字通过网格单元的几何/物理量变化来设定牛顿迭代的收敛判据,确保仿真结果达到预期精度后终止迭代
子关键字分为两行,第一行与相对变化相关,当这些量小于目标值时,则可判断牛顿迭代步收敛
参数 |
意义 |
默认值 |
---|---|---|
\(c_{1t}\) |
能量守恒残差/平均能量守恒残差 |
\(5\cdot10^{-7}\) |
\(c_{1f}\) |
质量守恒残差/平均质量守恒残差 |
\(5\cdot10^{-7}\) |
\(c_{1p}\) |
单元平衡残差/平均单元平衡残差 |
\(5\cdot10^{-7}\) |
\(c_{2t}\) |
温度变化/所有牛顿步的最大温度变化 |
\(5\cdot10^{-7}\) |
\(c_{2f}\) |
质量流量变化/所有牛顿步的最大质量流量变化 |
\(5\cdot10^{-7}\) |
\(c_{2p}\) |
压力变化/所有牛顿步的最大压力变化 |
\(5\cdot10^{-7}\) |
\(c_{2a}\) |
几何变化/所有牛顿步的最大几何变化 |
\(5\cdot10^{-7}\) |
例如
能量守恒残差:当前牛顿步后计算的所有单元的最大能量守恒残差
平均能量守恒残差:当前牛顿步后计算的所有单元的平均能量守恒残差
温度变化:当前牛顿迭代步中所有网格单元的最大温度变化
所有牛顿步的最大温度变化:当前时间步内所有牛顿迭代步的单元温度变化的最大值
第二行与绝对变化相关,当这些量大于目标值时,则可判断牛顿迭代步发散
参数 |
意义 |
默认值 |
---|---|---|
\(a_{1t}\) |
能量守恒残差的绝对最大值 |
\(10^{20}[\mathrm{M}][\mathrm{L}]^{2}/[\mathrm{t}]^{3}\) |
\(a_{1f}\) |
质量守恒残差的绝对最大值 |
\(10^{20}[\mathrm{M}]/[\mathrm{t}]\) |
\(a_{1p}\) |
单元平衡残差的绝对最大值 |
\(10^{20}[\mathrm{-}]\) |
\(a_{2t}\) |
温度变化的绝对最大值 |
\(10^{20}[\mathrm{T}]\) |
\(a_{2f}\) |
质量流量变化的绝对最大值 |
\(10^{20}[\mathrm{M}]/[\mathrm{t}]\) |
\(a_{2p}\) |
压力变化的绝对最大值 |
\(10^{20}[\mathrm{M}]/([\mathrm{t}]^{2}[\mathrm{L}])\) |
\(a_{2a}\) |
几何变化的绝对最大值 |
\(10^{20}[\mathrm{L}]\) |
\([\mathrm{M}]\),\([\mathrm{L}]\),\([\mathrm{T}]\) 和 \([\mathrm{t}]\) 分别代表质量,长度,温度和时间的单位
CFD#
在 CFD 数值求解中,很多过程都需要多次迭代才能收敛。CFD
参数的作用在于对迭代过程进行设置
CCX 支持流固耦合分析,每当结构发生新的力学加载步时,需要更新流体场,保证力学场和流体场匹配。CCX 会根据流体的物理属性再细分为多个流体增量,以便更好地捕捉流体随时间或状态的变化。在每个流体增量中,都需要不断迭代直至收敛,\(\mathrm{iitt}\) 用于设置最大的迭代次数
单元面中心的数值量(如通量)是基于单元中心的量插值计算得到的,若网格是非正交的,插值计算会引入误差,需要多次迭代修正,\(\mathrm{iitg}\) 和 \(\mathrm{iitp}\) 分别用来设置面插值修正和压力场修正的迭代次数
在热-力耦合的问题中,压力和温度相互依赖,通常需要压力-温度迭代求解,以逼近真实解。\(\mathrm{jit}\) 用来设置迭代求解的最大次数,通常流体越可压缩、耦合越强,通常需要的迭代次数越多
参数 |
意义 |
默认值 |
典型建议 |
---|---|---|---|
\(\mathrm{iitt}\) |
每个流体增量内的最大迭代次数 |
\(20\) |
收敛困难则适当增加 |
\(\mathrm{iitg}\) |
因网格非正交导致的面插值修正迭代次数 |
\(0\) |
网格非正交性强即可适当增大 |
\(\mathrm{iitp}\) |
因网格非正交导致的压力场修正迭代次数 |
\(1\) |
网格非正交性强即可适当增大 |
\(\mathrm{jit}\) |
压力-温度耦合的迭代次数 |
\(1\) |
对于不可压缩流体或有粘可压缩流体,应使用默认值;对于无粘可压缩流体,可能需要增加到 \(4\) |
CONTACT#
CONTACT
参数用于更改面-面接触罚方法的算法默认设置
在非线性有限元接触分析中,每一个时间步或载荷增量内通常需要进行多次牛顿迭代。在每一次迭代过程中,节点的位移都会发生变化,这可能导致接触状态的改变。因此,在每次迭代结束后,都需要重新检测接触状态,以确定哪些单元或节点处于接触状态。\(\mathrm{delcon}\) 用来指定相邻牛顿迭代中,接触单元数量的最大相对变化,低于此值是收敛的必要条件
在接触迭代过程中,偶尔会陷入“局部极小值”,即残差无法进一步下降。此时可以考虑“随机移除”一部分接触单元,重新开启当前增量步的牛顿迭代,以跳出收敛困境,\(\mathrm{alea}\) 用来控制被移除的接触单元的比例
如果接触算法出现“发散”或“收敛太慢”,通常可能是由接触刚度(法向弹簧刚度)过大导致的数值不稳定性引起的,这时可以适当减小接触刚度和粘结斜率,以改善收敛性,\(\mathrm{kscalemax}\) 用来设置刚度缩减因子
\(\mathrm{itf2f}\) 用来设置每个增量内,接触收敛迭代的最大次数
参数 |
意义 |
默认值 |
典型建议 |
---|---|---|---|
\(\mathrm{delcon}\) |
相邻牛顿迭代接触单元数量的相对变化 |
\(0.001\) |
\(\mathrm{delcon}\) 越小,收敛判据越严格;过大,则可能导致假收敛 |
\(\mathrm{alea}\) |
被移除的接触单元的比例 |
\(0.1\) |
\(\mathrm{alea}\) 越大,跳出局部极值能力越强,但可能导致解异常 |
\(\mathrm{kscalemax}\) |
刚度缩减因子 |
\(100\) |
\(\mathrm{kscalemax}\) 越大,刚度下降越多,更易收敛,但模型也更加失真 |
\(\mathrm{itf2f}\) |
最大迭代次数 |
\(60\) |
综合收敛性能和计算性能适当调整 |