Skip to main content

Python package for solving partial differential equations

Project description

py-pde

PyPI version Conda Version License: MIT Build Status codecov Binder Documentation Status DOI

py-pde is a Python package for solving partial differential equations (PDEs). The package provides classes for grids on which scalar and tensor fields can be defined. The associated differential operators are computed using a numba-compiled implementation of finite differences. This allows defining, inspecting, and solving typical PDEs that appear for instance in the study of dynamical systems in physics. The focus of the package lies on easy usage to explore the behavior of PDEs. However, core computations can be compiled transparently using numba for speed.

Try it online!

Installation

py-pde is available on pypi, so you should be able to install it through pip:

pip install py-pde

In order to have all features of the package available, you might want to install the following optional packages:

pip install h5py pandas mpi4py numba-mpi

Moreover, ffmpeg needs to be installed for creating movies.

As an alternative, you can install py-pde through conda using the conda-forge channel:

conda install -c conda-forge py-pde

Installation with conda includes all dependencies of py-pde.

Usage

A simple example showing the evolution of the diffusion equation in 2d:

import pde

grid = pde.UnitGrid([64, 64])                 # generate grid
state = pde.ScalarField.random_uniform(grid)  # generate initial condition

eq = pde.DiffusionPDE(diffusivity=0.1)        # define the pde
result = eq.solve(state, t_range=10)          # solve the pde
result.plot()                                 # plot the resulting field

PDEs can also be specified by simply writing expressions of the evolution rate. For instance, the Cahn-Hilliard equation can be implemented as

eq = pde.PDE({'c': 'laplace(c**3 - c - laplace(c))'})

which can be used in place of the DiffusionPDE in the example above.

More information

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

py_pde-0.41.1.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

py_pde-0.41.1-py3-none-any.whl (323.6 kB view details)

Uploaded Python 3

File details

Details for the file py_pde-0.41.1.tar.gz.

File metadata

  • Download URL: py_pde-0.41.1.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for py_pde-0.41.1.tar.gz
Algorithm Hash digest
SHA256 2e98e38c0f266c32a6574d4ae8473402702aa171b94d472f66dc8ff80bace183
MD5 8dd6c48d7f48693fae0c4d44502a2ef8
BLAKE2b-256 9b9ac68bdf26c3190db00c67039e6ad959a22436f9b501a566023d1666be8ee8

See more details on using hashes here.

File details

Details for the file py_pde-0.41.1-py3-none-any.whl.

File metadata

  • Download URL: py_pde-0.41.1-py3-none-any.whl
  • Upload date:
  • Size: 323.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for py_pde-0.41.1-py3-none-any.whl
Algorithm Hash digest
SHA256 01107c97c8f6745474156bd644b2bc8ba7cbc450a2d5f32540ac2d48cc0fd5a7
MD5 b9525c27d802cee2e432016d18d46c89
BLAKE2b-256 19b65742e03f88cee237d4713ec4dff7ec63e02d768eb2a29dbf15e0d29eff6a

See more details on using hashes here.

Supported by

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