{ "info": { "author": "Martin Bauer", "author_email": "martin.bauer@fau.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Jupyter", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Topic :: Scientific/Engineering :: Physics", "Topic :: Software Development :: Code Generators" ], "description": "pystencils\n==========\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mabau/pystencils/master?filepath=doc%2Fnotebooks)\n[![Docs](https://img.shields.io/badge/read-the_docs-brightgreen.svg)](http://pycodegen.pages.walberla.net/pystencils)\n[![pipeline status](https://i10git.cs.fau.de/pycodegen/pystencils/badges/master/pipeline.svg)](https://i10git.cs.fau.de/pycodegen/pystencils/commits/master)\n[![coverage report](https://i10git.cs.fau.de/pycodegen/pystencils/badges/master/coverage.svg)](http://pycodegen.pages.walberla.net/pystencils/coverage_report)\n\nRun blazingly fast stencil codes on numpy arrays.\n\n*pystencils* uses sympy to define stencil operations, that can be executed on numpy arrays.\nExploiting the stencil structure makes *pystencils* run faster than normal numpy code and even as Cython and numba,\n[as demonstrated in this notebook](http://pycodegen.pages.walberla.net/pystencils/notebooks/demo_benchmark.html).\n\n\nHere is a code snippet that computes the average of neighboring cells:\n```python\nimport pystencils as ps\nimport numpy as np\n\nf, g = ps.fields(\"f, g : [2D]\")\nstencil = ps.Assignment(g[0, 0],\n (f[1, 0] + f[-1, 0] + f[0, 1] + f[0, -1]) / 4)\nkernel = ps.create_kernel(stencil).compile()\n\nf_arr = np.random.rand(1000, 1000)\ng_arr = np.empty_like(f_arr)\nkernel(f=f_arr, g=g_arr)\n```\n\n*pystencils* is mostly used for numerical simulations using finite difference or finite volume methods.\nIt comes with automatic finite difference discretization for PDEs:\n\n```python\nc, v = ps.fields(\"c, v(2): [2D]\")\nadv_diff_pde = ps.fd.transient(c) - ps.fd.diffusion(c, sp.symbols(\"D\")) + ps.fd.advection(c, v)\ndiscretize = ps.fd.Discretization2ndOrder(dx=1, dt=0.01)\ndiscretization = discretize(adv_diff_pde)\n```\n\nLook at the [documentation](http://pycodegen.pages.walberla.net/pystencils) to learn more.\n\n\nInstallation\n------------\n\n```bash\npip install pystencils[interactive]\n```\n\nWithout `[interactive]` you get a minimal version with very little dependencies.\n\nAll options:\n- `gpu`: use this if an Nvidia GPU is available and CUDA is installed\n- `pyopencl`: basic OpenCL support (experimental)\n- `alltrafos`: pulls in additional dependencies for loop simplification e.g. libisl\n- `bench_db`: functionality to store benchmark result in object databases\n- `interactive`: installs dependencies to work in Jupyter including image I/O, plotting etc.\n- `autodiff`: enable derivation of adjoint kernels and generation of Torch/Tensorflow operations\n- `doc`: packages to build documentation\n\nOptions can be combined e.g.\n```bash\npip install pystencils[interactive,gpu,doc]\n``` \n\n\nDocumentation\n-------------\n\nRead the docs [here](http://pycodegen.pages.walberla.net/pystencils) and\ncheck out the Jupyter notebooks in `doc/notebooks`.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://i10git.cs.fau.de/pycodegen/pystencils/", "keywords": "", "license": "AGPLv3", "maintainer": "", "maintainer_email": "", "name": "pystencils", "package_url": "https://pypi.org/project/pystencils/", "platform": "", "project_url": "https://pypi.org/project/pystencils/", "project_urls": { "Bug Tracker": "https://i10git.cs.fau.de/pycodegen/pystencils/issues", "Documentation": "http://pycodegen.pages.walberla.net/pystencils/", "Homepage": "https://i10git.cs.fau.de/pycodegen/pystencils/", "Source Code": "https://i10git.cs.fau.de/pycodegen/pystencils" }, "release_url": "https://pypi.org/project/pystencils/0.2.7/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Speeding up stencil computations on CPUs and GPUs", "version": "0.2.7" }, "last_serial": 5767021, "releases": { "0.2.2": [ { "comment_text": "", "digests": { "md5": "dd0dd31457f7a1f019b0e19a400f0422", "sha256": "ef291053d7ac40c51e62e0b0d59dc1f1c488d43584a1ce0aafab90f91b9368b1" }, "downloads": -1, "filename": "pystencils-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "dd0dd31457f7a1f019b0e19a400f0422", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 193199, "upload_time": "2019-05-05T15:33:27", "url": "https://files.pythonhosted.org/packages/27/e3/5de03c28e176ffee26e74c03f642cd7ec72ca298e33a1c1c0793f90a1871/pystencils-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0773a1a12f6ded952684dfd3017bc29f", "sha256": "222ac42d8288996c8950aecf349b7e385710f8f07ad3b7c6c950a4041e7e4a57" }, "downloads": -1, "filename": "pystencils-0.2.2.tar.gz", "has_sig": false, "md5_digest": "0773a1a12f6ded952684dfd3017bc29f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 164453, "upload_time": "2019-05-05T15:33:30", "url": "https://files.pythonhosted.org/packages/fc/c3/d922286c23863ba9302b98d8d4923ba9f1034f36da4d1b17d51ea4b9c249/pystencils-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "1fe7a95a4f6643bc296253523905feab", "sha256": "e5835b1ac955fd1b85e27a73e421889fee8a2aae73c065811f4976ae1e738a22" }, "downloads": -1, "filename": "pystencils-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1fe7a95a4f6643bc296253523905feab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 193778, "upload_time": "2019-06-18T14:35:36", "url": "https://files.pythonhosted.org/packages/f8/e7/626a7ae70ebf5d2a576a05c741c434a0ebfe18debbec5903d5a6efcf10fb/pystencils-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3d7dced86b6b2c0e70e11675c288829", "sha256": "ae64a2d641fbd077a37a0357c2eb4ae06b27945a177c99b17c4dc23baae4d456" }, "downloads": -1, "filename": "pystencils-0.2.3.tar.gz", "has_sig": false, "md5_digest": "b3d7dced86b6b2c0e70e11675c288829", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 165196, "upload_time": "2019-06-18T14:35:38", "url": "https://files.pythonhosted.org/packages/76/d6/52318cbec240fbb6a63ffa016931d20a00490f0a9e43cacb0e63e61666d4/pystencils-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "225f7dcfb4c2ae64c9a99dfaca7da8c1", "sha256": "c80fa1194b2073aca87950e0b894ba7acd23a1eca9f1b1bb0eb0c4a316c5a03d" }, "downloads": -1, "filename": "pystencils-0.2.4.tar.gz", "has_sig": false, "md5_digest": "225f7dcfb4c2ae64c9a99dfaca7da8c1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 314716, "upload_time": "2019-07-11T14:36:07", "url": "https://files.pythonhosted.org/packages/9e/ee/2cbb866a01ced2436ae71b9931b97dc0f170b9084370b97bc72e0b0a0d6c/pystencils-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "a2ffa9cd20b29284fa8673526789f0db", "sha256": "734fe72b46f5673ca52841f1f4c5009e14776ce16cf42a037006ff353c09b4bf" }, "downloads": -1, "filename": "pystencils-0.2.5.tar.gz", "has_sig": false, "md5_digest": "a2ffa9cd20b29284fa8673526789f0db", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 314828, "upload_time": "2019-07-11T15:24:24", "url": "https://files.pythonhosted.org/packages/5d/bb/d262cc697635592c2d44973a3bb54e0bb41e6ab3dc774cc0323aec145c0c/pystencils-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "991d7274ec2109e7753cc018c02ec418", "sha256": "475e4d9c564f34651357a2debb5a41b5bf276478a8c356b45538bcb6505bf600" }, "downloads": -1, "filename": "pystencils-0.2.6.tar.gz", "has_sig": false, "md5_digest": "991d7274ec2109e7753cc018c02ec418", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 317014, "upload_time": "2019-07-29T15:21:51", "url": "https://files.pythonhosted.org/packages/d7/f1/69bafb9d8b59ab82d762c57ab5c2fd2f73d489acd8233da28595a476a5cb/pystencils-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "831903a7a19be270e9e4c266cb83448c", "sha256": "93e5df20b918416f73b4126e059f63f910902520e6b7eb3c867ddc1a39d16d05" }, "downloads": -1, "filename": "pystencils-0.2.7.tar.gz", "has_sig": false, "md5_digest": "831903a7a19be270e9e4c266cb83448c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 322057, "upload_time": "2019-09-01T13:46:52", "url": "https://files.pythonhosted.org/packages/5c/77/4f493c2676cf7c91820a6fbbab290ad1bb89f2e09e206ff54a05e0e32f17/pystencils-0.2.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "831903a7a19be270e9e4c266cb83448c", "sha256": "93e5df20b918416f73b4126e059f63f910902520e6b7eb3c867ddc1a39d16d05" }, "downloads": -1, "filename": "pystencils-0.2.7.tar.gz", "has_sig": false, "md5_digest": "831903a7a19be270e9e4c266cb83448c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 322057, "upload_time": "2019-09-01T13:46:52", "url": "https://files.pythonhosted.org/packages/5c/77/4f493c2676cf7c91820a6fbbab290ad1bb89f2e09e206ff54a05e0e32f17/pystencils-0.2.7.tar.gz" } ] }