三维电磁扩散的多重网格求解器。
emg3d的Python项目详细描述
三维三向电磁扩散的多重网格求解器 各向异性。无矩阵解算器可用作主解算器或 krylov子空间方法之一的预条件器 scipy.sparse.linalg,控制方程在 交错的叶栅。代码完全用python编写,使用 numpy/scipy堆栈,其中最耗费时间和内存的部分被加速 通过jitten numba函数。
更多信息
有关安装、使用、贡献、路线图、错误的详细信息 报告等,请参见
功能
- 规则网格三维电磁扩散的多重网格求解器。
- 可以与SimPEG-框架一起使用。
- 可以作为一个独立的解算器,也可以作为各种krylov的预处理器。 用scipy实现的子空间方法,例如bicgstab (scipy.sparse.linalg.bicgstab)或cgs(scipy.sparse.linalg.cgs)。
- 三轴电各向异性。
- 各向同性磁导率。
- 半桨和线松弛。
- 网格大小可以是任何东西。
- 作为一种多重网格方法,它可以根据未知数n进行缩放,并且
因此,最优复杂性^ {EM1} $ O(n)
。
安装
您可以通过conda(首选):
conda install -c prisae emg3d
或通过pip:
pip install emg3d
需要python 3.7或更高版本以及模块NumPy,SciPy, 并且numba;discretize(来自SimPEG)是高度的 推荐。
如果您是python新手,我们建议您使用python发行版,它将 确保满足所有依赖项,特别是正确编译的版本 对于NumPy和SciPy,我们建议使用Anaconda。如果你安装了水蟒,你可以简单地 启动anaconda navigator,添加频道prisae,然后emg3dwill 出现在软件包列表中,单击即可安装。
引文
如果您发布了使用emg3d的结果,请引用 Werthmüller et al. (2019):
Werthmüller, D., W. A. Mulder, and E. C. Slob, 2019, emg3d: A multigrid solver for 3D electromagnetic diffusion: submitted to the Journal of Open Source Software, 4(37), 1463; DOI: 10.21105/joss.01463.
所有版本都有一个zenodo doi,在release-page上提供。
有关代码的历史记录,请参见credits。
许可证信息
版权所有2018-2019 EMG3D开发者。
在apache许可2.0版下获得许可,请参阅LICENSE-文件。