libMesh
工具包 是一个能够并行和串行模拟求解偏微分方程的C++工具包 诞生于2002年3月,目的是为当前可用的软件包提供一个友好的界面。 原工作网站https://libmesh.github.io/libmesh一个主要的目标是自适应网格细化(AMR)并行计算,以此允许物理学家们专注于方程计算而不是代码开发
这个工具包主要提供
- 分区域算法
- Metis K-Way 加权图分解。
- Parmetis 并行图分解。
- Hilbert 和 Morton-ordered 空间曲线填充.
- 通用1D有限元
- 2, 3, 和 4 节点边 (
Edge2
, Edge3
, Edge4
).
- 通用2D有限元
- 3, 6, 和 7 点三角形 (
Tri3
, Tri6
, Tri7
).
- 4, 8, 和 9 点四边形 (
Quad4
, Quad8
, Quad9
).
- 4 和 6 点的无限元四边形 (
InfQuad4
, InfQuad6
).
- 通用3D有限元
- 4, 10, 和 14 点四面体 (
Tet4
, Tet10
, Tet14
).
- 8, 20, 和 27 点六面体 (
Hex8
, Hex20
, Hex27
).
- 6, 15, 和 18 点棱镜体 (
Prism6
, Prism15
, Prism18
).
- 5, 13, 和 14 点金字塔 (
Pyramid5
, Pyramid13
, Pyramid14
).
- 8, 16, 和 18 点无限元四面体 (
InfHex8
, InfHex16
, InfHex18
).
- 6 和 12 点无限元棱镜体 (
InfPrism6
, InfPrism12
).
- 通用有限元基函数
- Lagrange
- Hierarchic
- C1 单元 (Hermite, Clough-Tocher)
- Discontinuous 单元 (Monomials, L2-Lagrange)
- Vector-valued 单元 (Lagrange-Vec, Monomial-Vec, 一阶Nedelec, Raviart-Thomas)
- 维度无关
- 可以在不改变整体代码的情况下运行2D 或 3D模拟
- 在2D情况下调试的代码,可以立即增大规模,进行3D模拟
- 稀疏线性代数(矩阵运算)
PETSc
和 Trilinos 接口为串行和并行求解提供一套迭代和预处理器
- 同时
PETSc
支持复数运算
Eigen
(可选 LASPACK) 为串行程序提供迭代和预处理求解器
SparseMatrix
, NumericVector
, 和 LinearSolver
允许自由切换求解包 添加新的求解器就像C++类的派生一样简单(这个可能不太简单.......)
- 网格读写 & 格式转换工具
- Ideas Universal (UNV) 格式 (.unv) 支持从2414个数据集读取节点数据.
- Sandia National Labs ExodusII 格式 (.exd)
- Amtec Engineering's Tecplot 二进制格式 (.plt)
- Amtec Engineering's Tecplot ascii 格式 (.dat)
- Los Alamos National Labs GMV 格式 (.gmv)
- AVS Unstructured UCD 格式 (.ucd)
- Gmsh (http://geuz.org/gmsh) 格式 (.msh)
- Abaqus 格式 (.inp)
- VTK 非结构化网格格式 (.vtk)
- 网格划分 & 修改工具
- 粗化或者细化网格: prescribed, level-one-compatible, 或 uniform.
- 创建均值 n-cubes的
Edge2
, Tri3
, Tri6
, Quad4
, Quad8
, Quad9
, Hex8
, Hex20
, Hex27
.
- 创建圆圈或者圆的
Tri3
, Tri6
, Quad4
, Quad8
, Quad9
, Hex8
.
- 添加无限元素到基于体的网格,处理对称平面。
- 转化
Quad4
, Quad8
, Quad9
到 Tri3
, Tri6
.
- 将上述所有的线性元组成的网格转换到对应的二阶单元
- 对网格进行扭曲、平移、旋转和缩放
- 定义边界框或球
- 提取网格的边作为边界条件或者作为一个单独的网格
- 数值积分
- Gauss-Legendre(1D和2D、3D的张量积规则)高精度表格,最高达44阶
- 三角形和四面体的最佳规则,支持非常高的阶数
- 对于四边形和六面体,使用最佳的单项式规则
- 求解优化问题
- 支持基于 TAO 和 nlopt 的带有梯度和 Hessian 信息的约束优化求解器。