网格
映射网格
要求相对规则的几何。可以通过边组参数设置对应的边组。
虚拟操作
不改变几何的情况下,忽略一些结构
求解器
直接求解vs迭代求解
直接求解
- 相当于求逆矩阵
- LU分解
- 直接求解
- 依靠良好的预处理器
- 不完全LU
- 稀疏近似逆
- 多重格点
- 高效,计算量小
- 需要控制终止条件,对多物理场需要手动调整。
全耦合vs分离
全耦合
- 单矩阵
- 内存消耗大
- 更多CPU装配时间
- 更复杂的结构
- 单线性求解器
- 牛顿法
分离
- 多个矩阵
- 多个单个线性求解器
- 需要迭代
- 耦合越强,迭代越多
- Anderson加速
- 初始值猜测是阶段性的。
稳态日志
- SolEst:基于误差估计的解
- ResEst:基于误差估计的残差
#Res
:残差装配数#Jac
:Jacobian装配#Sol
:线性代数系统解的数量- Linlt:线性迭代数
- LinErr:线性代数系统误差估计
- LinRes:线性代数系统残差
时间步的日志
步:n,时间$t_n$,步长:$k_n$,阶数:p
- Tfail:自适应步长的失败次数
- NLfail:代数方程组的失败次数
稳态和瞬态问题
- 从单物理场开始;如果可能先考虑线性
- 逐渐引入非线性
- 使用负载逐步增加,非线性逐步增加,稳态逐步化等。
- 避免不连续数据
- 使用平滑近似
- 当增加多物理场时:
- 从(物理场)自动生成的求解配置开始
- 从自动生成的网格开始
- 逐步增强耦合
参数化扫描
在稳态/瞬态选项卡中添加的扫描可以调用上一步结果进行迭代计算。
在研究中添加的结果每次从头计算。
线性求解器:技巧
如果直接求解器报错或警告
- 换一个主元预阈值
- 换一种预排序方法
- 换一个直接求解器
如果迭代求解器不收敛或报错“未定义值”
- 查看正在使用的物理场预置求解器。
- 但别局限于迭代/预调节器设置,问题更可能发生在:
- 太不稳定 -> 非标准矩阵
- 网格质量较差 -> 非标准矩阵
- 强材料非线性 -> 非标准矩阵
- 非物理非线性迭代 -> 非标准矩阵
非线性求解器技巧
- 使用更小的阻尼因子
- 会导致更多的迭代
- 减小“恢复阻尼因子”
- 每次迭代更新Jacobian
- 资源消耗更大
- 允许更多迭代步
- 改进初始猜测值(稳态)
时间步
研究中的时间步是输出的时间步长。
求解器中的时间步长是计算的时间步长。
瞬态研究:时间步进选择
时间步 | 描述 |
---|---|
自由 | 基于局部误差估计的自适应时间步长。\n如果非线性回路不收敛就减小,如果误差估计不满秩就减小 |
严格 | 和自由相同,但求解输入时间点。 |
中级 | 和自由相同,至少在每个输入时间步上计算。 |
手动 | 基于全局表达式或基于值列表进行用户控制 |
Ctrl+F5查看变量位置
后处理
标注
标注某个点的变量信息,在绘图组中添加标注,在标注—>文本下输入eval(expr,unit)
来计算表达式。
最大值
在组件—>定义中添加定义值,然后在研究中,更新解。显示时,在标注文本中eval(maxop1(spf.U),unit)
,位置设定为maxop1(spf.U,x)
等
数据集操作
- 降维截取数据集
- 升维生成数据集
- 合并:对两个结果进行和差商积等操作
派生值
- 可设置计算组
- 点计算、全局计算
- 平均值、最大、最小、积分、其他
派生值中的最大值等只能用于后处理
组件-》定义中的最大值可用于模型参数设定。
快捷键
F1:当前节点的帮助文档。
Ctrl+F1:整体帮助文档。