入门相场仿真:相场软件汇总整理-从开源软件学习仿真代码思路

FiPy、SfePy、OpenPhase Academic、PRISMS-PF、MMSP、MOOSE、MEUMAPPS、FEniCS、AMPE。MPF/MPFUI
当前公开仓库虽然可访问,也带 MIT 许可证,但仓库内容极少,没看到公开示例源码。 Pandas
和 CAPA这两个条目按“名字/网址”去查,确实都是开源项目,但与相场模拟明显不匹配,基本可以判定为表格中的异常项。COMSOL
、 MatCalc、MICRESS、μ-PRO现阶段都不宜按“公开开源”处理。
一张表先看全
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LICENSE 和 MPF开源补充说明.doc,未见公开示例源码。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
两个异常条目,要先剔出来
1. Pandas
-
第 8 项 Pandas / pandas.pydata.org。 -
按官网与 GitHub 来看, pandas当然是开源的。 -
但它是数据分析库,不是相场模拟软件。 -
它和表中“金属微观组织演化:相变、晶粒长大、析出、偏析”的用途完全对不上。
2. CAPA
-
第 14 项给的是 github.com/mandiant/capa。 -
这个仓库确实开源,但它是恶意软件能力识别工具。 -
它同样不应被算进相场软件清单。
所以,后文“开源项目示例”只保留真正和相场软件主题匹配的条目。
开源项目的官方示例,我看到什么
1. FiPy
-
官方站点:NIST 项目页 -
官方仓库:usnistgov/fipy -
官方 examples 文档:Examples — FiPy documentation -
我在仓库 examples/下实际扫到139个示例/配套脚本。 -
主体类别包括: benchmarking、cahnHilliard、chemotaxis、convection、diffusion、elphf、flow、levelSet、meshing、phase、reactiveWetting、riemann、updating。 -
这批示例里,最贴近相场主题的通常是 cahnHilliard/、phase/、reactiveWetting/、levelSet/。 -
按示例名来读,它们大致可以理解成: benchmarking
:性能基准测试 cahnHilliard
:Cahn-Hilliard 相分离 chemotaxis
:趋化 convection
:对流传输 diffusion
:扩散 elphf
:电化学相场 flow
:流动/Stokes 流 levelSet
:水平集界面追踪 meshing
:网格生成 phase
:相场/相变基础例子 reactiveWetting
:反应润湿 riemann
:黎曼问题/波传播 updating
:版本更新脚本
2. SfePy
-
官方站点:sfepy.org -
官方仓库:sfepy/sfepy -
官方说明里明确建议新问题先看 sfepy/examples/ -
我在 sfepy/examples/下实际扫到124个.py示例文件。 -
类别包括: acoustics、dg、diffusion、homogenization、large_deformation、linear_elasticity、miscellaneous、multi_physics、navier_stokes、phononic、quantum。 -
它不是纯相场专用软件,但作为开源 PDE/FEM 框架,示例库非常完整。 -
按示例名来读,这些一级目录大致是: acoustics
:声学 dg
:不连续 Galerkin diffusion
:扩散 homogenization
:均质化/多尺度等效 large_deformation
:大变形 linear_elasticity
:线弹性 miscellaneous
:杂项 multi_physics
:多物理场 navier_stokes
:Navier-Stokes 流动 phononic
:声子/声子晶体 quantum
:量子问题
3. OpenPhase Academic
-
官网:OpenPhase Academic -
官方仓库:ICAMS/OpenPhase -
官方仓库 examples/顶层共24个示例目录。 -
主要示例包括: AdditiveNiAl、EutecticII、FacetedGG、Flow、Foam、HeatDiffusion、LatentHeat、LiquidPhaseSintering、LiquidPhaseSinteringLarge、MeltingFe、NormalGG、Pearlite、Plagioclase、PrecipitationNiTi、ReactiveFlow、SolidificationFe、SolidificationFeC、SolidificationMgAl、SolidificationNiAl、SolidPhaseSintering、SolidPhaseSintering_SurfaceDiffusion、Superalloys、ThermalCompressibleFlow、Wetting。 -
从名字就能看出来,它的示例覆盖面非常“材料相场本体化”。 -
如果把这些示例名翻成中文,大致可以读成: AdditiveNiAl
:Ni-Al 合金增材制造 EutecticII
:共晶组织演化 II FacetedGG
:棱面晶粒长大 Flow
:流动 Foam
:泡沫/泡孔结构 HeatDiffusion
:热扩散 LatentHeat
:潜热耦合 LiquidPhaseSintering
:液相烧结 LiquidPhaseSinteringLarge
:大尺度液相烧结 MeltingFe
:铁熔化 NormalGG
:普通晶粒长大 Pearlite
:珠光体 Plagioclase
:斜长石 PrecipitationNiTi
:NiTi 析出 ReactiveFlow
:反应流动 SolidificationFe
:铁凝固 SolidificationFeC
:铁碳凝固 SolidificationMgAl
:镁铝合金凝固 SolidificationNiAl
:镍铝合金凝固 SolidPhaseSintering
:固相烧结 SolidPhaseSintering_SurfaceDiffusion
:表面扩散控制的固相烧结 Superalloys
:高温合金 ThermalCompressibleFlow
:热可压缩流动 Wetting
:润湿
4. PRISMS-PF
-
官方仓库:prisms-center/phaseField -
README 明确说 examples 位于 applications/ -
当前仓库中可直接运行/改造的 application 示例共 9个:allen_cahn_explicit、alloy_solidification、blank、cahn_hilliard_explicit、coupled_allen_cahn_cahn_hilliard、eshelby_inclusion、laplace、nucleation、spinodal_decomposition。 -
这套结构很适合“先跑官方 app,再改成自己模型”。 -
这些 application 的中文意思大致是: allen_cahn_explicit
:显式 Allen-Cahn alloy_solidification
:合金凝固 blank
:空白模板 cahn_hilliard_explicit
:显式 Cahn-Hilliard coupled_allen_cahn_cahn_hilliard
:Allen-Cahn / Cahn-Hilliard 耦合 eshelby_inclusion
:Eshelby 夹杂问题 laplace
:拉普拉斯方程 nucleation
:形核 spinodal_decomposition
:调幅分解
5. MMSP
-
官方仓库:mesoscale/mmsp -
我在 examples/下扫到59个示例源文件/说明文件。 -
示例大类包括: beginners_diffusion、coarsening、differential_equations、phase_transitions、statistical_mechanics。 -
其中和相场直接相关的重点区块是 phase_transitions/,下面又包含allen-cahn、cahn-hilliard、model_A、model_B、solidification、spinodal。 -
用中文速读一下: beginners_diffusion
:扩散入门 coarsening
:粗化 differential_equations
:微分方程 phase_transitions
:相变 statistical_mechanics
:统计力学 allen-cahn
:Allen-Cahn cahn-hilliard
:Cahn-Hilliard model_A
:A 类模型 model_B
:B 类模型 solidification
:凝固 spinodal
:调幅分解
6. MPF / MPFUI
-
官方仓库:china20/MPFUI -
当前公开仓库可见文件只有 LICENSE和MPF开源补充说明.doc -
也就是说,它“有开源许可证”这件事能确认,但“公开示例源码”这件事目前确认不了。
7. MOOSE
-
官方站点:MOOSE Phase Field Module -
官方仓库:idaholab/moose -
因为 MOOSE 是通用多物理场框架,这里只列 phase_field直接相关的官方 examples。 modules/phase_field/examples/
下共 39个相关示例文件。modules/combined/examples/phase_field-mechanics/
下共 12个相关示例文件。-
换句话说,MOOSE 的示例很多,但如果你的目标是相场,只盯这两块最省时间。 -
按目录名去推测,它的主要示例簇可以读成: anisotropic_interfaces
:各向异性界面 anisotropic_transport
:各向异性输运 cahn-hilliard
:Cahn-Hilliard ebsd_reconstruction
:EBSD 组织重构 grain_growth
:晶粒长大 interfacekernels
:界面核项 kim-kim-suzuki
:KKS 模型 measure_interface_energy
:界面能测量 multiphase
:多相 nucleation
:形核 rigidbodymotion
:刚体运动/外力驱动 slkks
:子晶格 KKS phase_field-mechanics
:相场-力学耦合
8. MEUMAPPS
-
ORNL 说明页:MEUMAPPS C++: A Scalable, Performance-Portable, Open-Source Framework for Phase-Field Modeling -
公开代码:ORNL GitLab / meumapps applications/
下共有 5个应用示例:allen_cahn、chimad_bm2_modified、meumapps-ss、pfhub_bm1a、pfhub_bm1a_sundials-
这些名字大致可以读成: allen_cahn
:Allen-Cahn chimad_bm2_modified
:CHiMaD 基准 2 改写版 meumapps-ss
:MEUMAPPS-SS 固态/固态组织模块 pfhub_bm1a
:PFHub 基准 1a pfhub_bm1a_sundials
:带 SUNDIALS 时间积分器的 PFHub 基准 1a -
另外, test/input/下还有20个官方测试/输入/工具文件,可作为最小可复现实例。
9. FEniCS(按当前官方开源实现 DOLFINx 统计)
-
官方站点:FEniCS -
当前官方源码入口(核心实现之一):FEniCS/dolfinx -
官方 demos 页面:DOLFINx demos -
Python demos 共 25个,其中最接近相场的是demo_cahn-hilliard.py -
C++ demo 目录共 8个 -
所以它更像“能拿来做相场”的底层开源框架,而不是“相场专用软件包” -
这些 demo 名如果按中文速读,大致是: demo_axis.py
:轴对称/坐标轴示例 demo_biharmonic.py
:双调和方程 demo_cahn-hilliard.py
:Cahn-Hilliard 相分离 demo_comm-pattern.py
:并行通信模式 demo_elasticity.py
:弹性 demo_gmsh.py
:Gmsh 网格生成 demo_half_loaded_waveguide.py
:半加载波导 demo_hdg.py
:HDG 方法 demo_helmholtz.py
:Helmholtz 方程 demo_interpolation-io.py
:插值与输入输出 demo_lagrange_variants.py
:Lagrange 单元变体 demo_mixed-poisson.py
:混合 Poisson demo_mixed-topology.py
:混合拓扑网格 demo_navier-stokes.py
:Navier-Stokes 流动 demo_pml.py
:完美匹配层 demo_poisson.py
:Poisson 方程 demo_poisson_matrix_free.py
:无矩阵 Poisson demo_pyamg.py
:PyAMG 求解器 demo_pyvista.py
:PyVista 可视化 demo_scattering_boundary_conditions.py
:散射边界条件 demo_static-condensation.py
:静态凝聚 demo_stokes.py
:Stokes 流 demo_tnt-elements.py
:TNT 单元 demo_types.py
:数值类型/精度类型
10. AMPE
-
官方仓库:LLNL/AMPE examples/
下共 12个示例目录:AuNi_2D、AuNi_3D、bilayer_AuNi、bilayer_MoNbTa、ChenShen98、CuNi_1D、Dendrite2D、DendriteDiluteAlCu、Diffusion1D、GG3D_HBSM、two_bilayer_AuNi、TWO_GRAINS_HBSM_2Dbenchmarks/
下还有 2个官方 benchmark 目录:PFHub1a、PFHub3input/
下还有 4个模板输入文件-
如果把这些示例名顺成中文,大致是: AuNi_2D
:金镍二维 AuNi_3D
:金镍三维 bilayer_AuNi
:金镍双层 bilayer_MoNbTa
:钼铌钽双层 ChenShen98
:Chen-Shen 1998 参考模型 CuNi_1D
:铜镍一维 Dendrite2D
:二维枝晶 DendriteDiluteAlCu
:稀 Al-Cu 枝晶 Diffusion1D
:一维扩散 GG3D_HBSM
:三维晶粒长大 HBSM two_bilayer_AuNi
:双双层 AuNi TWO_GRAINS_HBSM_2D
:二维双晶粒 HBSM PFHub1a
:PFHub 基准 1a PFHub3
:PFHub 基准 3 example_amr.in
:自适应网格模板 example_bare_minimum.in
:最小输入模板 example_full.in
:完整输入模板 example_noamr.in
:无自适应网格模板
我会怎么给它们排一个“上手优先级”
如果你的目标是“今天就想找个开源相场软件开跑”,我会这样看:
-
FiPyPython 友好,教程和示例是最完整的一档。 -
OpenPhase、PRISMS-PF、AMPE、MMSP更偏材料相场研究正统路线,示例主题也更贴近书里的语境。 -
SfePy、FEniCS、MOOSE框架能力很强,但它们更像“能做相场”的通用求解平台,需要更强的 PDE/FEM 背景。 -
MEUMAPPS很有研究价值,但明显更偏 HPC/研究代码风格。
完整示例清单放在附录
为了不把正文撑成一张超长目录,我把逐项翻到的完整 example 列表单独放进了附录文件:
-
phasefield_examples_appendix.md
这份附录里把我实际扫到的官方 example、demo、application、benchmark、input 都按仓库目录一条条列出来了。
参考来源
-
COMSOL: product-download -
FiPy: NIST 项目页 | GitHub | examples 文档 -
MatCalc: download.matcalc.at -
SfePy: GitHub -
MICRESS: products -
μ-PRO: 官网 -
OpenPhase: 官网 | GitHub -
PRISMS-PF: GitHub -
MMSP: GitHub -
MPFUI: GitHub -
MOOSE: GitHub | phase_field 模块文档 -
MEUMAPPS: ORNL 说明页 | ORNL GitLab -
CAPA: GitHub -
FEniCS: 官网 | DOLFINx demos -
AMPE: GitHub -
EasyPhase: 相关论文示例
夜雨聆风