FEniCS项目

FEniCS计算平台

FEniCS是一种流行的开源软件(LGPLv3)偏微分方程计算平台。FEniCS使用户能够快速地将科学模型转换为有效的有限元代码。有了FEniCS的高级Python和C++接口,很容易入门,但FEniCS也为更有经验的程序员提供了强大的功能。FEniCS运行在从笔记本电脑到高性能集群的众多平台上。

在FEniCS中求解偏微分方程

为了说明如何用FEniCS编程一个简单的PDE模型,考虑变分形式的Stokes方程:

$$
\int{\Omega}\mathrm{grad}\,u:\mathrm{grad}\,v\,\mathrm{d}x\,-
\int{\Omega}p\,\mathrm{div}\,v\,\mathrm{d}x+
\int{\Omega}\mathrm{div}\,u\,q\,\mathrm{d}x=
\int{\Omega}f\cdot v\,\mathrm{d}x。
$$

使用FEniCS中的数学运算符,变分问题很容易转录成Python:

上面的代码片段还显示了如何定义一个合适的有限元函数空间,使用连续的分段二次向量值函数作为速度,使用连续的分段线性函数作为压力(Taylor Hood)。计算域和网格也很容易用FEniCS创建,这里定义为三个球体浸入三维通道中。
斯托克斯例子

高性能计算

 

汽轮机每个 FEniCS平台的组件基本上是为 并行处理。并行执行FEniCS脚本很简单 打电话mpirun-np 64 python script.py. 这个框架允许快速 在笔记本电脑和工作站上制作有限元公式和求解器的原型,以及 同样的代码可以部署在大型高性能计算机上。

图中显示了根据涡轮增压器的非线性热机械FEniCS模拟计算的von Mises应力。有限元线性方程组包含超过3.3×109自由度。解算器最初是 在桌面计算机上开发的一个小规模问题,相同的代码 然后部署在一台超级计算机上,使用超过24000个并行进程。

安装和文件

FEniCS可用于多种平台(Linux、Mac、Windows)。在Docker容器、二进制包和源代码之间进行选择。访问我们的安装页面获取最新版本的FEniCS。 FEniCS提供广泛的文档还有很多例子。一个好的起点是FEniCS教程.

关于

FEniCS项目是一个由科学家和软件开发人员组成的全球社区开发和维护的免费开放源码项目。这个项目是由FEniCS社区开发的受统治的FEniCS指导委员会并由FEniCS咨询委员会.

FEniCS是一个纽姆福克斯财政支持项目。如果您喜欢FEniCS,并希望支持我们为开源计算开发最好的平台的任务,请考虑捐赠我们的项目。

numfocus_2c_cmyk号