{ "info": { "author": "Oliver Hung Buo Tso", "author_email": "olivertsor@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Scientific/Engineering :: Physics", "Topic :: Software Development" ], "description": "=====\nPDEPy\n=====\n\n.. image:: https://img.shields.io/pypi/v/pdepy.svg\n :target: https://pypi.org/project/pdepy/\n\n.. image:: https://travis-ci.org/olivertso/pdepy.svg?branch=master\n :target: https://travis-ci.org/olivertso/pdepy\n\n.. image:: https://coveralls.io/repos/github/olivertso/pdepy/badge.svg?branch=master\n :target: https://coveralls.io/github/olivertso/pdepy?branch=master\n\nOverview\n--------\n\n**Disclaimer: Use at your own risk. I have a bachelor's degree in applied and computational mathematics, but never worked professionally in the field.**\n\nA python 3 library for solving initial and boundary value problems of some linear partial differential equations using finite-difference methods:\n\n- Laplace\n\n - implicit central\n\n- Parabolic\n\n - explicit central\n - explicit upwind\n - implicit central\n - implicit upwind\n\n- Wave\n\n - explicit\n - implicit\n\nGetting Started\n---------------\n\nInstalling\n\"\"\"\"\"\"\"\"\"\"\n\n::\n\n pip install pdepy\n\nExamples\n\"\"\"\"\"\"\"\"\n\n**Laplace's Equation:**\n\n.. code-block:: python\n\n import numpy as np\n from pdepy import laplace\n\n xn, xf, yn, yf = 30, 3., 40, 4.\n\n x = np.linspace(0, xf, xn+1)\n y = np.linspace(0, yf, yn+1)\n\n f = lambda x, y: (x-1)**2 - (y-2)**2\n bound_x0 = f(0, y)\n bound_xf = f(xf, y)\n bound_y0 = f(x, 0)\n bound_yf = f(x, yf)\n\n axis = (x, y)\n conds = (bound_x0, bound_xf, bound_y0, bound_yf)\n\n laplace.solve(axis, conds, method='ic')\n\n**Parabolic Equation:**\n\n.. code-block:: python\n\n import numpy as np\n from pdepy import parabolic\n\n xn, xf, yn, yf = 40, 4., 50, 0.5\n\n x = np.linspace(0, xf, xn+1)\n y = np.linspace(0, yf, yn+1)\n\n init = x**2 - 4*x + 5\n bound = 5 * np.exp(-y)\n\n p, q, r, s = 1, 1, -3, 3\n\n axis = (x, y)\n conds = (init, bound, bound)\n params = (p, q, r, s)\n\n parabolic.solve(axis, params, conds, method='iu')\n\n**Wave Equation:**\n\n.. code-block:: python\n\n import numpy as np\n from pdepy import wave\n\n xn, xf, yn, yf = 40, 1., 40, 1.\n\n x = np.linspace(0, xf, xn+1)\n y = np.linspace(0, yf, yn+1)\n\n d_init = 1\n init = x * (1-x)\n bound = y * (1-y)\n\n axis = (x, y)\n conds = (d_init, init, bound, bound)\n\n wave.solve(axis, conds, method='i')\n\nDeveloping and Testing\n----------------------\n\n::\n\n pip install tox\n pip install -e .\n\n # Testing.\n tox\n\n # Always remove .tox/ after changing the files in ./requirements.\n rm -rf .tox/\n\n\nPackaging and Distributing\n--------------------------\n\nDo not forget to update the :code:`version` field in :code:`setup.py`.\n\n::\n\n pip install twine\n\n # Packaging.\n python setup.py sdist\n python setup.py bdist_wheel\n\n # Distributing.\n twine upload dist/*\n\nMore about packaging and distributing `here `_.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/olivertso/pdepy", "keywords": "partial-differential-equations finite-difference-method", "license": "", "maintainer": "", "maintainer_email": "", "name": "pdepy", "package_url": "https://pypi.org/project/pdepy/", "platform": "", "project_url": "https://pypi.org/project/pdepy/", "project_urls": { "Homepage": "https://github.com/olivertso/pdepy" }, "release_url": "https://pypi.org/project/pdepy/1.0.3/", "requires_dist": [ "numpy (>=1.14.2)", "scipy (>=1.0.0)" ], "requires_python": ">=3.6", "summary": "A Finite-Difference PDE solver.", "version": "1.0.3" }, "last_serial": 3731668, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "bfd3ac4277ce854f1a4052113f73b92c", "sha256": "6c2581590f811cd6d8599a9071e28fa1782f2adee4b9af46f911881a55f8ac96" }, "downloads": -1, "filename": "pdepy-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bfd3ac4277ce854f1a4052113f73b92c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 9633, "upload_time": "2018-03-26T01:34:11", "url": "https://files.pythonhosted.org/packages/1e/54/15a9ca96a8ff4db690745de339e66b81faca0aec326268f8474539935730/pdepy-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee69c660d44ca3aaf91b5fb0bdc95203", "sha256": "5512f441e59f3a928830994967ec54ed623c23162925ac54085a831914492c06" }, "downloads": -1, "filename": "pdepy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ee69c660d44ca3aaf91b5fb0bdc95203", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 5312, "upload_time": "2018-03-26T01:34:12", "url": "https://files.pythonhosted.org/packages/ac/a9/efbe70af43e220a6ec66a609d7000d200325ce15e7512339390e1181f66b/pdepy-1.0.0.tar.gz" } ], "1.0.0a1": [ { "comment_text": "", "digests": { "md5": "fd276be438cdb06777a7f04040d592ab", "sha256": "166c472e1a34135d8b5476669f62b7f429d55743657f7ee6612b0b13156a445f" }, "downloads": -1, "filename": "pdepy-1.0.0a1-py3-none-any.whl", "has_sig": false, "md5_digest": "fd276be438cdb06777a7f04040d592ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 8435, "upload_time": "2018-03-24T01:29:34", "url": "https://files.pythonhosted.org/packages/fc/74/6d60f4ea5c5cb564ca52f123aa5c904b9527b1a941cee56cf057df571742/pdepy-1.0.0a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84846995f9eb83f2479fde3629f15914", "sha256": "8043d168691103c008b742a599a91c7f1abfbeb576844f645d2855388a7b89e1" }, "downloads": -1, "filename": "pdepy-1.0.0a1.tar.gz", "has_sig": false, "md5_digest": "84846995f9eb83f2479fde3629f15914", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4543, "upload_time": "2018-03-24T01:29:35", "url": "https://files.pythonhosted.org/packages/1d/6c/43f321d83ff674b31c4c94cc58d3410cc9e90e4f03f3363691abe7b94fe4/pdepy-1.0.0a1.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "dddc4aa59d697e295497b7b967e5fbe9", "sha256": "7e86c6891badd05782f96e76351ed6cc8a6571daf283a6a3dd3f2a425916344c" }, "downloads": -1, "filename": "pdepy-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dddc4aa59d697e295497b7b967e5fbe9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 9593, "upload_time": "2018-03-26T01:45:14", "url": "https://files.pythonhosted.org/packages/a0/e4/946a67ce26481152f70e7ba2c5b56ee0e391eb9fa700676f667ec14a071b/pdepy-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8822311e9bd5327c9f26e07a38eeeb8", "sha256": "3030bd6c1d3045493c67ada8fda4ca9e146b56e3a08da98efc95b10eb13e39ba" }, "downloads": -1, "filename": "pdepy-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a8822311e9bd5327c9f26e07a38eeeb8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 5294, "upload_time": "2018-03-26T01:45:16", "url": "https://files.pythonhosted.org/packages/98/5a/2994c99dac0294c84e8a2fd9055d51063a3cfcbf85e56afa51fc1eb2a143/pdepy-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "7a61ec573cef1bbc69416a56616ee759", "sha256": "7d7b2fd2bb6638938ecd83941e3ab067564bdee3f0d51fbeef5743b0e6179a98" }, "downloads": -1, "filename": "pdepy-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7a61ec573cef1bbc69416a56616ee759", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 9496, "upload_time": "2018-03-29T01:08:27", "url": "https://files.pythonhosted.org/packages/f6/67/fc4ec5c984be538496b5b9313f62e3c864c3c5fddabef7d103841eb616f2/pdepy-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d29c82883ffe2da035634903c9cce97", "sha256": "6710353838e73abb0c5abed71ab6cfd02704e22e4d028416e8a8f7f9ad33c0a1" }, "downloads": -1, "filename": "pdepy-1.0.2.tar.gz", "has_sig": false, "md5_digest": "0d29c82883ffe2da035634903c9cce97", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5991, "upload_time": "2018-03-29T01:08:29", "url": "https://files.pythonhosted.org/packages/8d/0e/c78db993ff8295453f884081486895a308b4cbf425b8900c57d9b03d09ca/pdepy-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "89b9819bcbd29b046aae7e885b725fe3", "sha256": "476eb745aa70e78a78be3e1cb37571f4d7e8180285e5bc97f2cc4dc7bb80a68e" }, "downloads": -1, "filename": "pdepy-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "89b9819bcbd29b046aae7e885b725fe3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 9454, "upload_time": "2018-04-03T21:45:47", "url": "https://files.pythonhosted.org/packages/0b/be/e63ed9d1ae00379cdef51bb8db3855f6d7011a9665f8e2d6afb56157dc8e/pdepy-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20bccfea2d5d39bf2df3ffaf6eca9508", "sha256": "9075b9b7ca80b376b8ece9e01eb59144e14c5a69e75e7f325e4748ba7cf849f1" }, "downloads": -1, "filename": "pdepy-1.0.3.tar.gz", "has_sig": false, "md5_digest": "20bccfea2d5d39bf2df3ffaf6eca9508", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5979, "upload_time": "2018-04-03T21:45:49", "url": "https://files.pythonhosted.org/packages/76/a1/b53d2e87d5ec7471492d4078934b8f1be81670e767164f1764e6a48a47c4/pdepy-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "89b9819bcbd29b046aae7e885b725fe3", "sha256": "476eb745aa70e78a78be3e1cb37571f4d7e8180285e5bc97f2cc4dc7bb80a68e" }, "downloads": -1, "filename": "pdepy-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "89b9819bcbd29b046aae7e885b725fe3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 9454, "upload_time": "2018-04-03T21:45:47", "url": "https://files.pythonhosted.org/packages/0b/be/e63ed9d1ae00379cdef51bb8db3855f6d7011a9665f8e2d6afb56157dc8e/pdepy-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20bccfea2d5d39bf2df3ffaf6eca9508", "sha256": "9075b9b7ca80b376b8ece9e01eb59144e14c5a69e75e7f325e4748ba7cf849f1" }, "downloads": -1, "filename": "pdepy-1.0.3.tar.gz", "has_sig": false, "md5_digest": "20bccfea2d5d39bf2df3ffaf6eca9508", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5979, "upload_time": "2018-04-03T21:45:49", "url": "https://files.pythonhosted.org/packages/76/a1/b53d2e87d5ec7471492d4078934b8f1be81670e767164f1764e6a48a47c4/pdepy-1.0.3.tar.gz" } ] }