Skip to main content

A package for generating finite-difference matrices, particularly suited for physics and engineering applications.

Project description

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 .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfinitdiff-2.1.6.tar.gz (503.9 kB view details)

Uploaded Source

Built Distribution

PyFinitDiff-2.1.6-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file pyfinitdiff-2.1.6.tar.gz.

File metadata

  • Download URL: pyfinitdiff-2.1.6.tar.gz
  • Upload date:
  • Size: 503.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for pyfinitdiff-2.1.6.tar.gz
Algorithm Hash digest
SHA256 5d3bfdae99650266530d037d98782f69d1ecd4a8a3c069ca0b12c8913e6e33f5
MD5 5f223003e13c1693c8db5a033e8467aa
BLAKE2b-256 4d5ffdf30cc98ed5ebe752dd9c0aa95dbfe8dfaa5db513d35f71ee2a6a43b02c

See more details on using hashes here.

File details

Details for the file PyFinitDiff-2.1.6-py3-none-any.whl.

File metadata

  • Download URL: PyFinitDiff-2.1.6-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for PyFinitDiff-2.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 eb2a1a33836181ed09b7f56590cc42a6d78823c64eb95a55e86af35607500497
MD5 e31cf171a001642a7d819d32b01a97e0
BLAKE2b-256 39a1bc145d276a42cc74cec0d945e79de896b321e0011512184c45816e501921

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page