常见开源有限元软件-持续更新中
CAE高级工程师
7 人赞同了该文章
- Elmer
的多物理场求解器。 它包括流体动力学、结构力学、电磁学、传热学、声学等模块。
该项目包括一个图形用户界面
(ElmerGUI),能够导入各种文件格式的网格、设置 PDE 系统以及导出模型数据和结果。 后处理是通过 Paraview 完成的。
2、FeniCS
FeniCS 项目以有限元法 (FEM) 的偏微分方程 (PDE) 数值求解为中心。 因此,它涵盖了从热机械到电磁学的众多应用。
虽然网格划分是在 Gmesh 等第三方库中执行的,但 FeniCS 提供高级 Python 和 C++ 接口,使问题的定义和解决方案变得简单。 模型可以在工作站或笔记本电脑中进行原型设计,然后轻松在集群中运行。
FeniCSx 可以在这里下载。 Python 和 C++ 接口称为 DOLFINx,可以在此处找到其文档。
3、FreeFEM
Easy to use PDE solver
FreeFEM is a popular 2D and 3D partial differential equations (PDE) solver used by thousands of researchers across the world.
It allows you to easily implement your own physics modules using the provided FreeFEM language. FreeFEM offers a large list of finite elements, like the Lagrange, Taylor-Hood, etc., usable in the continuous and discontinuous Galerkin method framework.
FreeFEM 是一个通过有限元法进行多物理场模拟的库。 它包括预构建的物理模块,如纳维-斯托克斯
、线性和非线性弹性、热力学、静磁学和静电学以及流体-结构相互作用。
它还包括自己的脚本语言来实现新的物理模块。 它包含自己的网格生成例程,并且还与 Gmsh 和 Paraview 等其他开源工具兼容。
4、Code-Aster
Code-Aster 项目及其相关的 Salome-Meca 软件套件由法国电力研发中心
与大学和工业界合作开发。 它专注于固体力学,包括线性和非线性材料的热和机械行为,并支持静态和动态分析。 应用领域包括疲劳、损伤、断裂和接触力学。 它还包含用于岩土材料、多孔介质和多物理场耦合的模块,
EDF 在运营中使用该项目来证明核领域使用的众多组件和材料的使用寿命。 因此,它可以应用于分析机器、压力容器和土木工程结构。
该代码是 GPL 许可的,并且包含一个 GUI。
5.Deal. II
多物理场仿真
6. Kratos
开源库地址:Kratos Multiphysics
更新状态:目前持续更新中
Kratos是一个用于构建多学科有限元程序的框架。它为有限元应用程序的轻松实现提供了几种工具,并提供了一个公共平台,在它们之间提供了轻松的交互。Kratos有一个创新的可变基础接口,设计用于不同的抽象级别,并实现为非常清晰和可扩展。它还提供了一种高效而灵活的数据结构,可用于以类型安全的方式存储任何类型的数据。Python脚本语言用于定义Kratos的主要过程,这大大提高了框架在使用时的灵活性。
旨在模块化、可扩展性和高性能。Kratos是用C++编写的,并具有广泛的Python接口。概述中的更多信息
Kratos在BSD-4许可下是免费的,甚至可以在商业软件中使用。它的许多主要应用程序也是免费的,BSD-4许可,但每个派生的应用程序都可以有自己的专有许可。
主要特点
Kratos是多平台的,可用于Windows、Linux(几个发行版)和macOS。
Kratos是OpenMP和MPI并行的,可扩展到数千个内核。
Kratos提供了一个定义通用框架的核心和几个像插件一样工作的应用程序,这些插件可以扩展到不同的领域。
7.Gridap
- 开源库地址:Gridap
- 更新状态:持续更新中
- 简介:
Gridap为用Julia编程语言编写的偏微分方程(PDE)的基于网格的近似提供了一组工具。该库目前支持标量场和矢量场的线性和非线性PDE系统、单场和多场问题、一致性和非一致性有限元(FE)离散化,以及简化和n立方体的结构化和非结构化网格。它还提供了时间积分的方法。Gridap是可扩展的和模块化的。可以实现新的有限元空间
、新的参考元素、使用外部网格生成器
、线性解算器、后处理工具等。
a(u,v) =
∫( ∇(v)⋅∇(u) )*dΩ +
∫( (γ/h)*v*u - v*(n_Γ⋅∇(u)) - (n_Γ⋅∇(v))*u )*dΓ +
∫(
(γ/h)*jump(v*n_Λ)⋅jump(u*n_Λ) -
jump(v*n_Λ)⋅mean(∇(u)) -
mean(∇(v))⋅jump(u*n_Λ)
)*dΛ
l(v) =
∫( v*f )*dΩ +
∫( (γ/h)*v*u - (n_Γ⋅∇(v))*u )*dΓ
- 开源库地址:FinEtools.jl
- 更新状态:持续更新中
- 简介
FinEtools是一个用于有限元网格基本操作的软件包:构建、修改、选择和评估网格上定义的量。提供了用于维护基于网格的数据(字段)、定义法线和载荷、使用物理单位和坐标系以及在有限元网格上进行集成的实用程序
。
该包支持应用程序包,例如:
网格化;
生物医学图像的网格化;
线性声学;
热传导;
线性应力分析;
非线性应力分析;
柔性梁壳结构分
9.OpenFOAM
OpenFOAM 全称是Field Operation and Manipulation,是一个以计算流体动力学 (CFD) 为中心的 GPL 许可项目。 CFD 涉及多个数值方法系列,包括但不限于有限元方法
。
CFD 涵盖一系列科学和工程应用。 特别是,它用于涉及热、热力学、化学和固体的许多应用,例如发动机、热交换器、电子冷却、燃烧等。
该软件包含自己的模块,用于生成简单或复杂几何形状的网格。 后处理是通过基于 ParaView 的 GUI 完成的。 另一方面,定义问题和几何图形是通过脚本完成的。
10.NGSolve
Netgen/NGSolve是一个高性能的多物理场有限元软件。它被广泛用于分析固体力学、流体力学和电磁学的模型。由于其灵活的Python接口,可以轻松实现新的物理方程和求解算法。
All in one
Seamless integration from geometric modeling, mesh generation, numerical simulation to visualization
从几何建模、网格生成、数值模拟到可视化的无缝集成
Flexible 柔性
Mathematical description of variational formulation allows coupling of arbitrary physical models
变分公式的数学描述允许任意物理模型的耦合
Accurate 准确
Cutting edge numerical techniques: high order, vectorial, mixed and discontinuous, Galerkin methods
尖端数值技术:高阶,矢量,混合和不连续,伽辽金
方法
Efficient 高效
Robust preconditioners adapted to function spaces and differential equations
适用于函数空间和微分方程的鲁棒预条件子
High Performance 高性能
Parallel compute core written in modern C++ combined with flexible steering by Python scripting
用现代C++编写的并行计算核心,结合Python脚本编写的灵活转向
Open 开放
Open source based on the LGPL license, extendable by C++ modules and Python packages
基于LGPL许可证的开源,可通过C++模块和Python包进行扩展