{ "info": { "author": "Andr\u00e9 Gaul", "author_email": "gaul@web-yard.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "KryPy\n=====\n\n|Build Status| |Documentation Status| |doi| |Pypi version| |Pypi\ndownloads|\n\nKryPy is a Python (versions 2 and 3) module for Krylov subspace methods\nfor the solution of linear algebraic systems. This includes enhanced\nversions of CG, MINRES and GMRES as well as methods for the efficient\nsolution of sequences of linear systems.\n\nFeatures\n========\n\nKryPy gives you an easy-to-use yet flexible interface to Krylov subspace\nmethods for linear algebraic systems. Compared to the implementations in\n`SciPy `__\n(or MATLAB), KryPy allows you to supply additional arguments that may\nhelp you to tune the solver for the specific problem you want to solve.\nThe additional arguments may also be of interest if you are doing\nresearch on Krylov subspace methods.\n\nSome features of KryPy are:\n\n- **User-defined inner products** - useful when solving a linear\n algebraic system whose operator is self-adjoined in a non-Euclidean\n inner-product. This way, CG or MINRES can be applied to self-adjoined\n (but non-symmetric/non-Hermitian) operators easily.\n- **Full control of preconditioners** - the order of applying\n preconditioners matters. This is why you can supply two left\n preconditioners (one of whom implicitly changes the inner product and\n thus has to be positive definite) and one right preconditioner. Take\n a look at the arguments ``M``, ``Ml`` and ``Mr``.\n- **Get the Arnoldi/Lanczos basis and Hessenberg matrix** - you want to\n extract further information from the generated vectors (e.g.\n recycling)? Just pass the optional argument ``store_arnoldi=True``.\n- **Explicitly computed residuals on demand** - if you do research on\n Krylov subspace methods or preconditioners, then you sometimes want\n to know the explicitly computed residual in each iteration (in\n contrast to an updated residual which can be obtained implicitly).\n Then you should pass the optional argument\n ``explicit_residual=True``.\n- **Compute errors** - if you have (for research purposes) the exact\n solution at hand and want to monitor the error in each iteration\n instead of the residual, you can supply the optional argument\n ``exact_solution=x_exact`` to the ``LinearSystem``.\n\nUsage\n=====\n\nDocumentation\n~~~~~~~~~~~~~\n\nThe documentation is hosted at\n`krypy.readthedocs.org `__.\n\nExample\n~~~~~~~\n\n.. figure:: https://raw.githubusercontent.com/nschloe/krypy/master/example.png\n :alt: \n\nThe above convergence history is obtained with the following example\nwhere the\n`Gmres `__\nmethod is used to solve the linear system ``A*x=b`` with the diagonal\nmatrix ``A=diag(1e-3,2,...,100)`` and right hand side ``b=[1,...,1]``.\n\n.. code:: python\n\n import numpy\n from krypy.linsys import LinearSystem, Gmres\n\n # create linear system and solve\n linear_system = LinearSystem(A=numpy.diag([1e-3]+range(2, 101)),\n b=numpy.ones((100, 1)))\n sol = Gmres(linear_system)\n\n # plot residuals\n from matplotlib import pyplot\n pyplot.semilogy(sol.resnorms)\n pyplot.show()\n\nOf course, this is just a toy example where you would not use GMRES in\npractice. KryPy can handle arbitrary large matrices - as long as the\n(hopefully sparse) matrices and the generated basis of the Krylov\nsubspace fit into your memory. ;) Furthermore, in actual applications,\nyou definitely want to adjust\n`Gmres `__'\nparameters such as the residual tolerance.\n\nHelp\n~~~~\n\nHelp can be optained via Python's builtin help system. For example, you\ncan use the ``?`` in ``ipython``:\n\n.. code:: python\n\n from krypy.linsys import Gmres\n ?Gmres\n\nInstalling\n==========\n\npip / PyPi\n~~~~~~~~~~\n\nSimply run ``pip install krypy``.\n\nUbuntu\n~~~~~~\n\nThere's an `Ubuntu\nPPA `__ with\npackages for Python 2 and Python 3.\n\nInstalling from source\n~~~~~~~~~~~~~~~~~~~~~~\n\nKryPy has the following dependencies: \\* NumPy \\* SciPy\n\nDevelopment\n===========\n\nKryPy is currently maintained by `Andr\u00e9\nGaul `__. Feel free to contact\nAndr\u00e9. Please submit feature requests and bugs as github issues.\n\nKryPy is developed with continuous integration. Current status: |Build\nStatus|\n\nDistribution\n~~~~~~~~~~~~\n\nTo create a new release\n\n1. bump the ``__version__`` number,\n\n2. create a Git tag,\n\n ::\n\n $ git tag -a v0.3.1\n $ git push --tags\n\n and\n\n3. upload to PyPi:\n\n ::\n\n $ make upload\n\nLicense\n=======\n\nKryPy is free software licensed under the `MIT\nLicense `__.\n\nReferences\n==========\n\nKryPy evolved from the `PyNosh `__\npackage (Python framework for nonlinear Schr\u00f6dinger equations; joint\nwork with `Nico Schl\u00f6mer `__) which was used\nfor experiments in the following publication: \\* `Preconditioned\nRecycling Krylov subspace methods for self-adjoint problems, A. Gaul and\nN. Schl\u00f6mer, arxiv: 1208.0264, 2012 `__\n\n.. |Build Status| image:: https://travis-ci.org/andrenarchy/krypy.png?branch=master\n :target: https://travis-ci.org/andrenarchy/krypy\n.. |Documentation Status| image:: https://readthedocs.org/projects/krypy/badge/?version=latest\n :target: http://krypy.readthedocs.org/en/latest/?badge=latest\n.. |doi| image:: https://zenodo.org/badge/doi/10.5281/zenodo.10283.png\n :target: https://zenodo.org/record/10283\n.. |Pypi version| image:: https://img.shields.io/pypi/v/krypy.svg\n :target: https://pypi.python.org/pypi/krypy\n.. |Pypi downloads| image:: https://img.shields.io/pypi/dm/krypy.svg\n :target: https://pypi.python.org/pypi/krypy\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/andrenarchy/krypy", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "krypy", "package_url": "https://pypi.org/project/krypy/", "platform": "", "project_url": "https://pypi.org/project/krypy/", "project_urls": { "Homepage": "https://github.com/andrenarchy/krypy" }, "release_url": "https://pypi.org/project/krypy/2.1.7/", "requires_dist": null, "requires_python": "", "summary": "Krylov subspace methods for linear systems", "version": "2.1.7" }, "last_serial": 3500567, "releases": { "2.0.0": [ { "comment_text": "", "digests": { "md5": "b7d3bb1be6cf3d9f037b88dfc93fe900", "sha256": "e438ca6ad8eafe2ca7550ed038b92ef5da8ea371558c564399f36bce8eeffbe5" }, "downloads": -1, "filename": "krypy-2.0.0.tar.gz", "has_sig": false, "md5_digest": "b7d3bb1be6cf3d9f037b88dfc93fe900", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37471, "upload_time": "2014-03-14T13:42:41", "url": "https://files.pythonhosted.org/packages/f6/00/4a197e6d9ffd187c3788191487927ccb5409313d45325ec14ce866aceada/krypy-2.0.0.tar.gz" } ], "2.0.0b1": [ { "comment_text": "", "digests": { "md5": "5368393ed6cb384be308545e33541f3b", "sha256": "96be9786522a247b48d23578c670a2b15d35ac6203f87985ba4126619108e954" }, "downloads": -1, "filename": "krypy-2.0.0b1.tar.gz", "has_sig": false, "md5_digest": "5368393ed6cb384be308545e33541f3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36014, "upload_time": "2014-03-13T10:29:55", "url": "https://files.pythonhosted.org/packages/2b/41/294cee24eed7eb972fc924952b35f574002cae4cc76964211120583b1e5b/krypy-2.0.0b1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "d19d25791385d244a0f57820154bb715", "sha256": "95bc74ae735d3645940e322874b72d975c6ed668a9f4b84bbb64e55a12780833" }, "downloads": -1, "filename": "krypy-2.1.0.tar.gz", "has_sig": false, "md5_digest": "d19d25791385d244a0f57820154bb715", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44411, "upload_time": "2014-04-11T12:18:30", "url": "https://files.pythonhosted.org/packages/9b/96/8dbbd3d9a4e47cb534e0f421c2a42d98262396b7faf99a5604a3ae1c97ee/krypy-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "d9f1d11a5521378bfd127fb5e219a015", "sha256": "43160596d6d84cf3cea3430cd9b5f9501ceeae5fae39dbbac36871c118bdcd31" }, "downloads": -1, "filename": "krypy-2.1.1.tar.gz", "has_sig": false, "md5_digest": "d9f1d11a5521378bfd127fb5e219a015", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44819, "upload_time": "2014-04-17T08:05:44", "url": "https://files.pythonhosted.org/packages/2d/3f/3e43d3c8debfa5f257a3d3073f8ee5f1dab0844082e1d7f89a256b35fde7/krypy-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "e827113271659ffe2ab6f86cc114e1b1", "sha256": "2db08c069477eb615d60eec5cec9fd36359980cea53ec2b30354e014d74d1aba" }, "downloads": -1, "filename": "krypy-2.1.2.tar.gz", "has_sig": false, "md5_digest": "e827113271659ffe2ab6f86cc114e1b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44750, "upload_time": "2015-08-16T17:00:52", "url": "https://files.pythonhosted.org/packages/e0/93/ebbd7791dfeb6a64b4e0a465f3b5c6b1155e4dc165555028712b4053db58/krypy-2.1.2.tar.gz" } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "df75ad325c41baaa22ebd08c50d3d872", "sha256": "432769f85dc18829c9b637a68d585ea8ba9714c60cf5d87ef2b61ea482257ebe" }, "downloads": -1, "filename": "krypy-2.1.3.tar.gz", "has_sig": true, "md5_digest": "df75ad325c41baaa22ebd08c50d3d872", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45544, "upload_time": "2015-10-18T15:27:17", "url": "https://files.pythonhosted.org/packages/3d/39/eaec9ab5c6da2a79c9181ca04a9dd65bec959eae95bd0ff91a9c75733760/krypy-2.1.3.tar.gz" } ], "2.1.4": [ { "comment_text": "", "digests": { "md5": "c829fb203840884715a1e8dd06694830", "sha256": "8bed4f021c5053f159225b82df063bb30b103a31c67cbfe8e2b75482c37d7706" }, "downloads": -1, "filename": "krypy-2.1.4.tar.gz", "has_sig": true, "md5_digest": "c829fb203840884715a1e8dd06694830", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45577, "upload_time": "2015-10-18T16:23:17", "url": "https://files.pythonhosted.org/packages/cf/7b/155b47c92a71c8aff5d15c891e32477daa794ac09bff8b9ab2363d10ea7b/krypy-2.1.4.tar.gz" } ], "2.1.5": [ { "comment_text": "", "digests": { "md5": "29f259faad1e6e2e86ce0e481acf4880", "sha256": "3ae73d7251690dd833a4668077b69670bf6745ca9080afb38863aa5137cfcc36" }, "downloads": -1, "filename": "krypy-2.1.5.tar.gz", "has_sig": true, "md5_digest": "29f259faad1e6e2e86ce0e481acf4880", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45336, "upload_time": "2016-03-22T09:43:59", "url": "https://files.pythonhosted.org/packages/f1/19/c094b3571c2d6308ae2e013a8986be72206ddce9b9de2434350ea9538e9b/krypy-2.1.5.tar.gz" } ], "2.1.6": [ { "comment_text": "", "digests": { "md5": "96d49d991bdfd0b3aff8225e640c3099", "sha256": "8eff4fa07b7a590c3e186bd4e2f69d7288bb9fdeb35d4270ee0b2c9b7650a468" }, "downloads": -1, "filename": "krypy-2.1.6.tar.gz", "has_sig": true, "md5_digest": "96d49d991bdfd0b3aff8225e640c3099", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46318, "upload_time": "2017-06-06T11:18:10", "url": "https://files.pythonhosted.org/packages/44/e7/b774a83c23a667195ba1facab230da3664889d9240ec398b9d648a3bb473/krypy-2.1.6.tar.gz" } ], "2.1.7": [ { "comment_text": "", "digests": { "md5": "c11c8f0b2fe7496296fe4cf412506184", "sha256": "4651fab0c800b124d27b438ca5be471f547fabc765243adf1fc9f23c4cc6c89a" }, "downloads": -1, "filename": "krypy-2.1.7.tar.gz", "has_sig": true, "md5_digest": "c11c8f0b2fe7496296fe4cf412506184", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45311, "upload_time": "2018-01-18T11:54:34", "url": "https://files.pythonhosted.org/packages/e2/84/8de0afa3d6a969c170c7bafb91d3bd19b29b67c35e4ba53ccf275440f8be/krypy-2.1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c11c8f0b2fe7496296fe4cf412506184", "sha256": "4651fab0c800b124d27b438ca5be471f547fabc765243adf1fc9f23c4cc6c89a" }, "downloads": -1, "filename": "krypy-2.1.7.tar.gz", "has_sig": true, "md5_digest": "c11c8f0b2fe7496296fe4cf412506184", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45311, "upload_time": "2018-01-18T11:54:34", "url": "https://files.pythonhosted.org/packages/e2/84/8de0afa3d6a969c170c7bafb91d3bd19b29b67c35e4ba53ccf275440f8be/krypy-2.1.7.tar.gz" } ] }