Date: Aug 12, 2025, Version: 2.2.0
PyFinitDiff#
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:
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:
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 .