跳转到主要内容

Shenfun -- 自动化谱伽辽金框架

项目描述

https://app.codacy.com/project/badge/Grade/bd772b3ca7134651a9225d8051db8c41 https://dev.azure.com/spectralDNS/shenfun/_apis/build/status/spectralDNS.shenfun?branchName=master https://github.com/spectralDNS/shenfun/workflows/github-CI/badge.svg?branch=master https://codecov.io/gh/spectralDNS/shenfun/branch/master/graph/badge.svg https://anaconda.org/conda-forge/shenfun/badges/platforms.svg

描述

Shenfun是一个高性能计算平台,通过谱伽辽金方法求解偏微分方程(PDEs)。Shenfun的用户界面与FEniCS非常相似,但应用限于多维张量积网格,使用笛卡尔或曲线网格(例如,但不仅限于,极坐标、圆柱坐标、球坐标或抛物线坐标)。代码通过mpi4py-fft包使用MPI进行并行化。

Shenfun使用高级Python语言,使得高效且准确的PDE求解器(谱阶和精度)的开发变得快速。通过使用高阶全局正交基函数(傅里叶、勒让德、切比雪夫第一和第二类、超球面、雅可比、拉盖尔和厄米特),保证了谱精度,与使用低阶局部基函数的有限元代码相反。通过向量化(Numpy)、并行化(mpi4py)以及将关键例程移至CythonNumba,保证了效率。Shenfun已被用于在高性能超级计算机上运行数千个处理器的湍流模拟(直接数值模拟),请参阅spectralDNS存储库。

示例文件夹包含了泊松、亥姆霍兹和双调和方程的几个示例。有关扩展文档和安装说明,请参阅ReadTheDocs。有关交互式演示,请参阅jupyter book。请注意,shenfun当前支持使用两个非周期方向(见双调和演示),方程可以耦合和隐式求解(见MixedPoisson.py)。

请注意,shenfun支持曲线坐标。例如,可以在球体(使用球坐标)上求解方程,在环面上,在莫比乌斯带上,或在2D/3D中的任何曲线线上。实际上,只要坐标导致具有可分离系数的方程组,用户就可以定义任何新的坐标。在定义新的坐标后,div、grad和curl等算子会自动与新的曲线坐标一起工作。请参阅关于球体的这个笔记本向量拉普拉斯的插图

The eigenvector of the 8'th smallest eigvalue on a Möbius strip Solution of Poisson's equation on a Coil Solution of Poisson's equation on a spherical shell Solution of Poisson's equation on the surface of a torus

为了获得更迷幻的体验,请查看球体上Ginzburg-Landau方程的模拟(点击查看YouTube视频)

Ginzburg-Landau spherical coordinates

Shenfun还可以用来用全局谱基函数函数逼近解析函数,并在高度复杂的域上积分,例如下面的海螺壳,请参阅这个演示

The surface of a seashell

安装

Shenfun可以使用pipconda安装,请参阅readthedocs上的安装章节

依赖关系

在代码空间中尝试

尝试Shenfun的最简单方法是创建自己的代码空间。按此页上的绿色代码空间按钮,然后等待几分钟,让environment.yml中的所有内容安装完毕。然后在代码空间编辑器的终端中输入

source activate ./venv
python setup.py build_ext -i
echo -e "PYTHONPATH=/workspaces/shenfun" > .env

然后您就可以运行任何示例程序,或者例如尝试按照文档中的详细说明进行操作。我们假设您知道如何运行Python程序。请注意,如果您想在代码空间中使用例如IPython或Jupyter,则这些需要在venv环境中安装。

联系方式

对于评论、问题、错误报告和要求,请使用当前存储库的问题跟踪器,或查看readthedocs上的如何贡献?否则,主要作者可以通过以下方式联系

Mikael Mortensen
mikaem at math.uio.no
https://mikaem.github.io/
Department of Mathematics
University of Oslo
Norway

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

shenfun-4.2.1.tar.gz (1.8 MB 查看哈希值)

由以下组织支持