PyFinitDiff


NamePyFinitDiff JSON
Version 2.1.6 PyPI version JSON
download
home_pageNone
SummaryA package for generating finite-difference matrices, particularly suited for physics and engineering applications.
upload_time2024-12-10 18:03:07
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License Copyright (c) 2020 Martin de Sivry Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords finite-difference solving linear algebra physics matrix engineering
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            PyFinitDiff
===========

|logo|

.. list-table::
   :widths: 10 25 25
   :header-rows: 0

   * - Meta
     - |python|
     - |docs|
   * - Testing
     - |ci/cd|
     - |coverage|
   * - PyPi
     - |PyPi|
     - |PyPi_download|
   * - Anaconda
     - |anaconda|
     - |anaconda_download|

PyFinitDiff is a robust Python package designed to compute finite-difference matrices with an intuitive API. This package provides an efficient and user-friendly interface for generating finite-difference approximations, making it ideal for numerical analysis and scientific computing.


Features
********
- **Intuitive API**: PyFinitDiff offers an easy-to-use interface that allows users to generate finite-difference matrices with minimal effort.
- **Versatile Applications**: Suitable for a wide range of numerical methods including solving partial differential equations (PDEs), performing numerical differentiation, and more.
- **Comprehensive Documentation**: Detailed documentation and examples to help users get started quickly.

Installation
------------

PyFinitDiff requires Python 3.10+ and is available on PyPi for various operating systems including Linux and macOS.

Install PyFinitDiff via pip:

.. code-block:: bash

   pip install PyFinitDiff

Documentation
*************
Comprehensive and up-to-date documentation is available online. You can access it `here <https://pyfinitdiff.readthedocs.io/en/latest/>`_ or by clicking the badge below:

|docs|

Usage Example
*************

Below is a simple example to illustrate how to use PyFinitDiff:

.. code-block:: python

   from PyFinitDiff.finite_difference_1D import FiniteDifference
   from PyFinitDiff.finite_difference_1D import Boundaries

   boundaries = Boundaries(left='none', right='none')

   n_x = 100
   fd = FiniteDifference(
      n_x=n_x,
      dx=1,
      derivative=2,
      accuracy=2,
      boundaries=boundaries
   )

   fd.triplet.plot()

   dense_matrix = fd.triplet.to_scipy_sparse()

   sparse_matrix = fd.triplet.to_scipy_sparse()

This would produce the following figure:

|example_triplet_0|

This example demonstrates the creation of a second-order finite-difference matrix with a specified grid spacing and size.

Testing
*******

To test PyFinitDiff locally, clone the GitHub repository and run the tests with coverage:

.. code-block:: bash

   git clone https://github.com/MartinPdeS/PyFinitDiff.git
   cd PyFinitDiff
   pip install PyFinitDiff[testing]
   pytest

Contributing
************

As PyFinitDiff is under continuous development, contributions are welcome! If you would like to collaborate or suggest improvements, feel free to fork the repository and submit a pull request. For major changes, please open an issue first to discuss your ideas.

Contact Information
********************
As of 2024, the project is still under development. If you want to collaborate, it would be a pleasure! I encourage you to contact me.

PyFinitDiff was written by `Martin Poinsinet de Sivry-Houle <https://github.com/MartinPdS>`_  .

Email:`martin.poinsinet.de.sivry@gmail.ca <mailto:martin.poinsinet.de.sivry@gmail.ca?subject=PyFinitDiff>`_ .


.. |python| image:: https://img.shields.io/pypi/pyversions/pyfinitdiff.svg
   :alt: Python
   :target: https://www.python.org/

.. |logo| image:: https://github.com/MartinPdeS/PyFinitDiff/raw/master/docs/images/logo.png
   :alt: PyFinitDiff logo

.. |docs| image:: https://github.com/martinpdes/pyfinitdiff/actions/workflows/deploy_documentation.yml/badge.svg
   :target: https://martinpdes.github.io/PyFinitDiff/
   :alt: Documentation Status

.. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyFinitDiff/python-coverage-comment-action-data/badge.svg
   :alt: Unittest coverage
   :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyFinitDiff/blob/python-coverage-comment-action-data/htmlcov/index.html

.. |PyPi| image:: https://badge.fury.io/py/PyFinitDiff.svg
   :alt: PyPi version
   :target: https://pypi.org/project/PyFinitDiff/

.. |PyPi_download| image:: https://img.shields.io/pypi/dm/pyfinitdiff.svg
   :alt: PyPi version
   :target: https://pypistats.org/packages/pyfinitdiff

.. |ci/cd| image:: https://github.com/martinpdes/pyfinitdiff/actions/workflows/deploy_coverage.yml/badge.svg
   :target: https://martinpdes.github.io/PyFinitDiff/actions
   :alt: Unittest Status

.. |example_triplet_0| image:: https://github.com/MartinPdeS/PyFinitDiff/blob/master/docs/images/triplet_example_0.png
    :target: https://www.python.org/

.. |anaconda_download| image:: https://anaconda.org/martinpdes/pyfinitdiff/badges/downloads.svg
   :alt: Anaconda downloads
   :target: https://anaconda.org/martinpdes/pyfinitdiff


.. |anaconda| image:: https://anaconda.org/martinpdes/pyfinitdiff/badges/version.svg
   :alt: Anaconda version
   :target: https://anaconda.org/martinpdes/pyfinitdiff

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "PyFinitDiff",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "finite-difference, solving, linear algebra, physics, matrix, engineering",
    "author": null,
    "author_email": "Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/4d/5f/fdf30cc98ed5ebe752dd9c0aa95dbfe8dfaa5db513d35f71ee2a6a43b02c/pyfinitdiff-2.1.6.tar.gz",
    "platform": null,
    "description": "PyFinitDiff\n===========\n\n|logo|\n\n.. list-table::\n   :widths: 10 25 25\n   :header-rows: 0\n\n   * - Meta\n     - |python|\n     - |docs|\n   * - Testing\n     - |ci/cd|\n     - |coverage|\n   * - PyPi\n     - |PyPi|\n     - |PyPi_download|\n   * - Anaconda\n     - |anaconda|\n     - |anaconda_download|\n\nPyFinitDiff is a robust Python package designed to compute finite-difference matrices with an intuitive API. This package provides an efficient and user-friendly interface for generating finite-difference approximations, making it ideal for numerical analysis and scientific computing.\n\n\nFeatures\n********\n- **Intuitive API**: PyFinitDiff offers an easy-to-use interface that allows users to generate finite-difference matrices with minimal effort.\n- **Versatile Applications**: Suitable for a wide range of numerical methods including solving partial differential equations (PDEs), performing numerical differentiation, and more.\n- **Comprehensive Documentation**: Detailed documentation and examples to help users get started quickly.\n\nInstallation\n------------\n\nPyFinitDiff requires Python 3.10+ and is available on PyPi for various operating systems including Linux and macOS.\n\nInstall PyFinitDiff via pip:\n\n.. code-block:: bash\n\n   pip install PyFinitDiff\n\nDocumentation\n*************\nComprehensive and up-to-date documentation is available online. You can access it `here <https://pyfinitdiff.readthedocs.io/en/latest/>`_ or by clicking the badge below:\n\n|docs|\n\nUsage Example\n*************\n\nBelow is a simple example to illustrate how to use PyFinitDiff:\n\n.. code-block:: python\n\n   from PyFinitDiff.finite_difference_1D import FiniteDifference\n   from PyFinitDiff.finite_difference_1D import Boundaries\n\n   boundaries = Boundaries(left='none', right='none')\n\n   n_x = 100\n   fd = FiniteDifference(\n      n_x=n_x,\n      dx=1,\n      derivative=2,\n      accuracy=2,\n      boundaries=boundaries\n   )\n\n   fd.triplet.plot()\n\n   dense_matrix = fd.triplet.to_scipy_sparse()\n\n   sparse_matrix = fd.triplet.to_scipy_sparse()\n\nThis would produce the following figure:\n\n|example_triplet_0|\n\nThis example demonstrates the creation of a second-order finite-difference matrix with a specified grid spacing and size.\n\nTesting\n*******\n\nTo test PyFinitDiff locally, clone the GitHub repository and run the tests with coverage:\n\n.. code-block:: bash\n\n   git clone https://github.com/MartinPdeS/PyFinitDiff.git\n   cd PyFinitDiff\n   pip install PyFinitDiff[testing]\n   pytest\n\nContributing\n************\n\nAs PyFinitDiff is under continuous development, contributions are welcome! If you would like to collaborate or suggest improvements, feel free to fork the repository and submit a pull request. For major changes, please open an issue first to discuss your ideas.\n\nContact Information\n********************\nAs of 2024, the project is still under development. If you want to collaborate, it would be a pleasure! I encourage you to contact me.\n\nPyFinitDiff was written by `Martin Poinsinet de Sivry-Houle <https://github.com/MartinPdS>`_  .\n\nEmail:`martin.poinsinet.de.sivry@gmail.ca <mailto:martin.poinsinet.de.sivry@gmail.ca?subject=PyFinitDiff>`_ .\n\n\n.. |python| image:: https://img.shields.io/pypi/pyversions/pyfinitdiff.svg\n   :alt: Python\n   :target: https://www.python.org/\n\n.. |logo| image:: https://github.com/MartinPdeS/PyFinitDiff/raw/master/docs/images/logo.png\n   :alt: PyFinitDiff logo\n\n.. |docs| image:: https://github.com/martinpdes/pyfinitdiff/actions/workflows/deploy_documentation.yml/badge.svg\n   :target: https://martinpdes.github.io/PyFinitDiff/\n   :alt: Documentation Status\n\n.. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyFinitDiff/python-coverage-comment-action-data/badge.svg\n   :alt: Unittest coverage\n   :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyFinitDiff/blob/python-coverage-comment-action-data/htmlcov/index.html\n\n.. |PyPi| image:: https://badge.fury.io/py/PyFinitDiff.svg\n   :alt: PyPi version\n   :target: https://pypi.org/project/PyFinitDiff/\n\n.. |PyPi_download| image:: https://img.shields.io/pypi/dm/pyfinitdiff.svg\n   :alt: PyPi version\n   :target: https://pypistats.org/packages/pyfinitdiff\n\n.. |ci/cd| image:: https://github.com/martinpdes/pyfinitdiff/actions/workflows/deploy_coverage.yml/badge.svg\n   :target: https://martinpdes.github.io/PyFinitDiff/actions\n   :alt: Unittest Status\n\n.. |example_triplet_0| image:: https://github.com/MartinPdeS/PyFinitDiff/blob/master/docs/images/triplet_example_0.png\n    :target: https://www.python.org/\n\n.. |anaconda_download| image:: https://anaconda.org/martinpdes/pyfinitdiff/badges/downloads.svg\n   :alt: Anaconda downloads\n   :target: https://anaconda.org/martinpdes/pyfinitdiff\n\n\n.. |anaconda| image:: https://anaconda.org/martinpdes/pyfinitdiff/badges/version.svg\n   :alt: Anaconda version\n   :target: https://anaconda.org/martinpdes/pyfinitdiff\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2020 Martin de Sivry  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "A package for generating finite-difference matrices, particularly suited for physics and engineering applications.",
    "version": "2.1.6",
    "project_urls": {
        "Documentation": "https://martinpdes.github.io/PyFinitDiff/",
        "Homepage": "https://github.com/MartinPdeS/PyFinitDiff",
        "Repository": "https://github.com/MartinPdeS/PyFinitDiff.git"
    },
    "split_keywords": [
        "finite-difference",
        " solving",
        " linear algebra",
        " physics",
        " matrix",
        " engineering"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "39a1bc145d276a42cc74cec0d945e79de896b321e0011512184c45816e501921",
                "md5": "e31cf171a001642a7d819d32b01a97e0",
                "sha256": "eb2a1a33836181ed09b7f56590cc42a6d78823c64eb95a55e86af35607500497"
            },
            "downloads": -1,
            "filename": "PyFinitDiff-2.1.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e31cf171a001642a7d819d32b01a97e0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 30976,
            "upload_time": "2024-12-10T18:03:04",
            "upload_time_iso_8601": "2024-12-10T18:03:04.582720Z",
            "url": "https://files.pythonhosted.org/packages/39/a1/bc145d276a42cc74cec0d945e79de896b321e0011512184c45816e501921/PyFinitDiff-2.1.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4d5ffdf30cc98ed5ebe752dd9c0aa95dbfe8dfaa5db513d35f71ee2a6a43b02c",
                "md5": "5f223003e13c1693c8db5a033e8467aa",
                "sha256": "5d3bfdae99650266530d037d98782f69d1ecd4a8a3c069ca0b12c8913e6e33f5"
            },
            "downloads": -1,
            "filename": "pyfinitdiff-2.1.6.tar.gz",
            "has_sig": false,
            "md5_digest": "5f223003e13c1693c8db5a033e8467aa",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 503926,
            "upload_time": "2024-12-10T18:03:07",
            "upload_time_iso_8601": "2024-12-10T18:03:07.796679Z",
            "url": "https://files.pythonhosted.org/packages/4d/5f/fdf30cc98ed5ebe752dd9c0aa95dbfe8dfaa5db513d35f71ee2a6a43b02c/pyfinitdiff-2.1.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-10 18:03:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MartinPdeS",
    "github_project": "PyFinitDiff",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyfinitdiff"
}
        
Elapsed time: 1.72950s