Date: Aug 12, 2025, Version: 2.2.0

PyFinitDiff#

PyFinitDiff logo

Meta

Python

Documentation Status

Testing

Unittest Status

Unittest coverage

PyPi

PyPi version

PyPi version

Anaconda

Anaconda version

Anaconda downloads

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:

pip install PyFinitDiff

Documentation#

Comprehensive and up-to-date documentation is available online. You can access it here or by clicking the badge below:

Documentation Status

Usage Example#

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

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:

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 .

Email:martin.poinsinet.de.sivry@gmail.ca .