MMS源项的自动推导(符号计算)
MMSソース項の自動導出(シンボリック計算)
理论与物理
概述
老师!今天要讲的是MMS源项的自动推导(符号计算)对吧?那到底是什么呢?
利用SymPy等符号计算工具自动推导MMS源项。即使是复杂的控制方程也能避免手算错误。
啊,原来如此!符号计算原来是这样的机制啊。
控制方程
$$ f = \mathcal{L}(u_{mms}) = \nabla\cdot(k\nabla T_{mms}) - \rho c_p \frac{\partial T_{mms}}{\partial t} $$
$$ \text{SymPy: } f = \texttt{diff}(k*\texttt{diff}(T,x),x) + \texttt{diff}(k*\texttt{diff}(T,y),y) $$
离散化方法
这个方程,在计算机里实际是怎么求解的呢?
要使用有限元法(FEM)进行空间离散化。组装单元刚度矩阵,构建整体刚度方程。
矩阵求解算法
矩阵求解算法,具体是指什么呢?
通过直接法(LU分解、Cholesky分解)或迭代法(CG法、GMRES法)来求解联立方程。对于大规模问题,带预处理的迭代法非常有效。
| 解法 | 分类 | 内存使用量 | 适用规模 |
|---|---|---|---|
| LU分解 | 直接法 | O(n²) | 小〜中规模 |
| Cholesky分解 | 直接法(对称正定) | O(n²) | 小〜中规模 |
| PCG法 | 迭代法 | O(n) | 大规模 |
| GMRES法 | 迭代法 | O(n·m) | 大规模・非对称 |
| AMG预处理 | 预处理 | O(n) | 超大规模 |
也就是说,在有限元法这部分偷懒的话,后面会吃苦头对吧。我铭记在心!
商用工具中的实现
那么,要做MMS源项的自动推导(符号计算)可以用什么软件呢?
| 工具名称 | 开发商/现状 | 主要文件格式 |
|---|---|---|
| MSC Nastran / NX Nastran | MSC Nastran(Hexagon)、NX Nastran(Siemens Digital Industries Software) | .bdf, .dat, .f06, .op2, .pch |
| Abaqus FEA (SIMULIA) | Dassault Systèmes SIMULIA | .inp, .odb, .cae, .sta, .msg |
| Ansys Mechanical (旧ANSYS Structural) | Ansys Inc. | .cdb, .rst, .db, .ans, .mac |
| Ansys Fluent | Ansys Inc. | .cas, .dat, .msh, .jou |
| Simcenter STAR-CCM+ | Siemens Digital Industries Software | .sim, .java, .csv |
| COMSOL Multiphysics | COMSOL AB | .mph |
| OpenFOAM | 开源(OpenCFD/ESI、OpenFOAM Foundation) | 字典文件(blockMeshDict等), .foam |
供应商谱系与产品整合历程
各个软件的诞生过程,是不是还挺有戏剧性的?
MSC Nastran / NX Nastran
接下来是MSC Nastran的内容对吧?具体是什么?
1960年代作为NASA结构分析(NASTRAN)开发。MSC Software将其商业化,后来UGS(现Siemens)衍生出NX Nastran。MSC于2017年被Hexagon AB收购。
当前归属:MSC Nastran(Hexagon)、NX Nastran(Siemens Digital Industries Software)
Abaqus FEA (SIMULIA)
Abaqus FEA,具体是指什么呢?
1978年由HKS (Hibbitt, Karlsson & Sorensen) 开发。2005年被Dassault Systèmes收购,并整合到SIMULIA品牌下。
当前归属:Dassault Systèmes SIMULIA
等等等等,结构分析的话,也就是说这种案例也能用吗?
Ansys Mechanical (旧ANSYS Structural)
请告诉我关于「Ansys Mechanical」的内容!
哦~,结构分析的话题,超级有趣!请再多讲一些。
文件格式与互操作性
この記事の評価
ご回答ありがとうございます!
参考に
なった
なった
もっと
詳しく
詳しく
誤りを
報告
報告