粒子FMM的Python封装
项目描述
pyfmmlib是Zydrunas Gimbutas和Leslie Greengard(以及许多其他人的代码)实现的快速多重网格方法(FMM)的Laplace和Helmholtz势的Python封装fmmlib2d和fmmlib3d实现。
此封装远非全面。它仅捕获了我最终需要的东西。尽管如此,FMM和其他许多有用的东西都是可访问的。
安装
二进制轮和源代码可从Python包索引获取。
对于二进制或源安装,请运行以下命令
pip install pyfmmlib
文档
不幸的是,不多。以下是我用来弄清楚如何使用东西的方法
>>> import pyfmmlib >>> dir(pyfmmlib) ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '_add_plot', ...] Fish the desired function from this list (let's use 'legefder' as an example) and run: >>> print pyfmmlib.legefder.__doc__ legefder - Function signature: val,der = legefder(x,pexp,[n]) Required arguments: x : input float pexp : input rank-1 array('d') with bounds (n + 1) Optional arguments: n := (len(pexp)-1) input int Return objects: val : float der : float
这告诉你如何从Python调用函数。然后您可以使用grep来抓取正确的Fortran源
$ grep -icl 'legefder' fmmlib*/*/*.f fmmlib3d/src/legeexps.f
然后查看那里的文档,您就可以开始了。不知道要查找什么函数名?只需使用相同的grep过程来查找关键字。
粗糙但有效。 :)
还有两件事
一些函数带有_vec后缀。这意味着它们可以一次性应用于所有参数的整个向量。它们也通过OpenMP并行执行。
pyfmmlib.fmm_part和pyfmmlib.fmm_tria是(与维度无关)的包装器,使得调用FMM的序列稍微不那么令人讨厌。更多请参考examples/fmm.py。
以下是这些是如何调用的一个大致想法
from pyfmmlib import fmm_part, HelmholtzKernel pot, grad = fmm_part("PG", iprec=2, kernel=HelmholtzKernel(5), sources=sources, mop_charge=1, target=targets)
与库的其余部分(直接调用Fortran)不同,这些例程期望(n,3)形状(即C-顺序)的数组。
许可
fmmlib{2,3}d在2017年11月之前根据3条款BSD许可证授权。
此包装器根据以下MIT许可证授权。
版权(C)2013安德里亚斯·克洛克纳
特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人,免费处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供者提供软件的人这样做,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定目的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论源于合同、侵权或其他方式,是否与软件或其使用或其他交易有关。
项目详情
pyfmmlib-2024.1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1c48575c133499b6ec0130d866694bccbda52c842f2fb9f9277b1ccfc19323ac |
|
MD5 | ec02987dfbd6d4e21a5e7f1fa7381b3c |
|
BLAKE2b-256 | 25fa12a8175f2235a3ec0f3f71fd2ec152b5b098cd5def8ced64e7b6fea033ad |
pyfmmlib-2024.1.1-cp312-cp312-musllinux_1_1_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cd438ce70c2d29db4b8f9ef2e9d623bcb5ec4df9a14cffb331b4ced3efcacb5f |
|
MD5 | 5782799ad194bcc69599ef044c5dbead |
|
BLAKE2b-256 | 246c390bd746f94cde7295d9b6ff6443ab330c3cdab40d0bbe152f1a42737295 |
pyfmmlib-2024.1.1-cp312-cp312-musllinux_1_1_i686.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a62ff83467dd4938ee4bd850c2126d398aec491cc94b2bab0a0e7933b4873825 |
|
MD5 | 5e79c3f5c07c8c7388405890185c7fbe |
|
BLAKE2b-256 | 8006bc8ef403c5036e5d6c10162b232ceefaf618d3dacbd36bdc3141dab0420c |
pyfmmlib-2024.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 48c6fffa08dde37356de792a02465eb63171a42bed4ea8c0f7ca7a1b7a891e3a |
|
MD5 | c4cd5d8406bc5aae0b5c7cac5dd9c153 |
|
BLAKE2b-256 | 84b07fca8e3dda86d71a6926b18cdb2260b99d80f1ca6dcfbfea788af53ffaea |
哈希值 用于 pyfmmlib-2024.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fc17efff6f2285e077c607fd72843812efcc5838ed8c6fef71c16cb7b2a3eaec |
|
MD5 | d1d70987fd2052c448f601046e3fa483 |
|
BLAKE2b-256 | f1890ed89c3e10ebb6ca853c62cdc54b1831dfab8f987c54c16da619d58e828f |
哈希值 用于 pyfmmlib-2024.1.1-cp311-cp311-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0e5942ee78ee7dba236a0b24f5d7b18d4ea105efef5992c18117e75455fa2228 |
|
MD5 | fb5a2bfdee7fb0ccd617bdd014f2304a |
|
BLAKE2b-256 | e74d73fb6c27fceebea67971e23209a3988898ab17a0f063d9af73fb3893ca35 |
哈希值 用于 pyfmmlib-2024.1.1-cp311-cp311-musllinux_1_1_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a9187b99c53f96263388eb9ff8952cd0b4a880ac90b1e6bb180fb64ca64096e8 |
|
MD5 | aee425032fc27522692cd80abeb1a05e |
|
BLAKE2b-256 | 2a3e86cc9b7fd4a0f8dda371715c28636cddb9b3205b829e8c6b7a586a97b25d |
哈希值 用于 pyfmmlib-2024.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7fa7b91880f6cf3b32498c3e4d55e0578a0fa8d6e0f6d032a2c514dc0e52563d |
|
MD5 | d6578e27608ea95579a4de3a96ec55c6 |
|
BLAKE2b-256 | 0fa88f20240a5f28c8632e617c24df524d5847ca8afd5594de342d884e45f351 |
哈希值 用于 pyfmmlib-2024.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 945320beb4fb5de12a3deb9d3d1fec10b7363e516903511b8594dad07849fac3 |
|
MD5 | 0aa3e2544c55a1fb3eef808b03349f23 |
|
BLAKE2b-256 | 027b692717d7c99ff71a261fce476fa17c3a218234ab0babade50a9d5cd6f107 |