1 Getting started
1.1 When (not) to use the package
1.2 Installation
1.2.1 Install using pip
1.2.2 Install using conda
1.2.3 Install from source
1.2.3.1 Required prerequisites
1.2.3.2 Optional packages
1.2.3.3 Downloading
py-pde
1.3 A simple example
1.4 Package overview
2 Examples
2.1 Grids and fields
2.1.1 Plot a polar grid
2.1.2 Plotting a vector field
2.1.3 Plotting a scalar field in cylindrical coordinates
2.1.4 Random scalar fields
2.1.5 Visualizing a scalar field
2.1.6 Finite differences approximation
2.2 Simple PDEs
2.2.1 Solving Laplace’s equation in 2d
2.2.2 Solving Poisson’s equation in 1d
2.2.3 Simple diffusion equation
2.2.4 Kuramoto-Sivashinsky - Using
PDE
class
2.2.5 Spherically symmetric PDE
2.2.6 Diffusion on a Cartesian grid
2.2.7 Klein-Gordon equation
2.2.8 Stochastic simulation
2.2.9 Setting boundary conditions
2.2.10 Time-dependent boundary conditions
2.2.11 1D problem - Using
PDE
class
2.2.12 Brusselator - Using the
PDE
class
2.2.13 Diffusion equation with spatial dependence
2.2.14 Schrödinger’s Equation
2.3 Output and analysis
2.3.1 Storage examples
2.3.2 Logarithmic kymograph
2.3.3 Writing and reading trajectory data
2.3.4 Using simulation trackers
2.4 Advanced PDEs
2.4.1 Post-step hook function
2.4.2 Heterogeneous boundary conditions
2.4.3 Heterogeneous PDE
2.4.4 Custom noise
2.4.5 Kuramoto-Sivashinsky - Using custom class
2.4.6 Custom Class for coupled PDEs
2.4.7 SDE with Stratonovich interpretation
2.4.8 1D problem - Using custom class
2.4.9 Solver comparison
2.4.10 Kuramoto-Sivashinsky - Compiled methods
2.4.11 Post-step hook function in a custom class
2.4.12 Custom PDE class: SIR model
2.4.13 Brusselator - Using custom class
3 User manual
3.1 Mathematical basics
3.1.1 Curvilinear coordinates
3.1.1.1 Polar coordinates
3.1.1.2 Spherical coordinates
3.1.1.3 Cylindrical coordinates
3.1.2 Spatial discretization
3.1.3 Temporal evolution
3.2 Basic usage
3.2.1 Defining the geometry
3.2.2 Initializing a field
3.2.3 Specifying the PDE
3.2.4 Running the simulation
3.2.5 Analyzing the results
3.3 Advanced usage
3.3.1 Boundary conditions
3.3.2 Expressions
3.3.3 Custom PDE classes
3.3.4 Low-level operators
3.3.4.1 Differential operators
3.3.4.2 Field integration
3.3.4.3 Field interpolation
3.3.4.4 Inner products
3.3.5 Compiled implementations of PDEs
3.3.6 Stochastic partial differential equation
3.3.7 Configuration parameters
3.4 Performance
3.4.1 Measuring performance
3.4.2 Improving performance
3.4.3 Multiprocessing using MPI
3.5 Contributing code
3.5.1 Structure of the package
3.5.2 Extending functionality
3.5.3 Data layout
3.5.4 Coding style
3.5.5 Running unit tests
3.6 Citing the package
3.7 Code of Conduct
3.7.1 Our Pledge
3.7.2 Our Standards
3.7.3 Our Responsibilities
3.7.4 Scope
3.7.5 Enforcement
3.7.6 Attribution
4 Reference manual
4.1 pde.backends package
4.1.1 pde.backends.jax package
4.1.1.1 pde.backends.jax.operators package
4.1.1.2 pde.backends.jax.backend module
4.1.1.3 pde.backends.jax.config module
4.1.1.4 pde.backends.jax.typing module
4.1.2 pde.backends.numba package
4.1.2.1 pde.backends.numba.operators package
4.1.2.2 pde.backends.numba.backend module
4.1.2.3 pde.backends.numba.config module
4.1.2.4 pde.backends.numba.grids module
4.1.2.5 pde.backends.numba.overloads module
4.1.2.6 pde.backends.numba.utils module
4.1.3 pde.backends.numba_mpi package
4.1.3.1 pde.backends.numba_mpi.backend module
4.1.3.2 pde.backends.numba_mpi.overloads module
4.1.4 pde.backends.numpy package
4.1.4.1 pde.backends.numpy.backend module
4.1.5 pde.backends.scipy package
4.1.5.1 pde.backends.scipy.operators package
4.1.5.2 pde.backends.scipy.backend module
4.1.6 pde.backends.torch package
4.1.6.1 pde.backends.torch.operators package
4.1.6.2 pde.backends.torch.backend module
4.1.6.3 pde.backends.torch.config module
4.1.6.4 pde.backends.torch.typing module
4.1.6.5 pde.backends.torch.utils module
4.1.7 pde.backends.base module
4.1.8 pde.backends.registry module
4.2 pde.fields package
4.2.1 pde.fields.base module
4.2.2 pde.fields.collection module
4.2.3 pde.fields.datafield_base module
4.2.4 pde.fields.scalar module
4.2.5 pde.fields.tensorial module
4.2.6 pde.fields.vectorial module
4.3 pde.grids package
4.3.1 pde.grids.boundaries package
4.3.1.1 Boundary conditions
4.3.1.2 Boundaries overview
4.3.1.3 pde.grids.boundaries.axes module
4.3.1.4 pde.grids.boundaries.axis module
4.3.1.5 pde.grids.boundaries.local module
4.3.2 pde.grids.coordinates package
4.3.2.1 pde.grids.coordinates.base module
4.3.2.2 pde.grids.coordinates.bipolar module
4.3.2.3 pde.grids.coordinates.bispherical module
4.3.2.4 pde.grids.coordinates.cartesian module
4.3.2.5 pde.grids.coordinates.cylindrical module
4.3.2.6 pde.grids.coordinates.polar module
4.3.2.7 pde.grids.coordinates.spherical module
4.3.3 pde.grids.base module
4.3.4 pde.grids.cartesian module
4.3.5 pde.grids.cylindrical module
4.3.6 pde.grids.spherical module
4.4 pde.pdes package
4.4.1 pde.pdes.allen_cahn module
4.4.2 pde.pdes.base module
4.4.3 pde.pdes.cahn_hilliard module
4.4.4 pde.pdes.diffusion module
4.4.5 pde.pdes.klein_gordon module
4.4.6 pde.pdes.kpz_interface module
4.4.7 pde.pdes.kuramoto_sivashinsky module
4.4.8 pde.pdes.laplace module
4.4.9 pde.pdes.pde module
4.4.10 pde.pdes.swift_hohenberg module
4.4.11 pde.pdes.wave module
4.5 pde.solvers package
4.5.1 pde.solvers.adams_bashforth module
4.5.2 pde.solvers.base module
4.5.3 pde.solvers.controller module
4.5.4 pde.solvers.crank_nicolson module
4.5.5 pde.solvers.euler module
4.5.6 pde.solvers.explicit_mpi module
4.5.7 pde.solvers.implicit module
4.5.8 pde.solvers.milstein module
4.5.9 pde.solvers.runge_kutta module
4.5.10 pde.solvers.scipy module
4.6 pde.storage package
4.6.1 pde.storage.base module
4.6.2 pde.storage.file module
4.6.3 pde.storage.memory module
4.6.4 pde.storage.modelrunner module
4.6.5 pde.storage.movie module
4.7 pde.tools package
4.7.1 pde.tools.cache module
4.7.2 pde.tools.config module
4.7.3 pde.tools.cuboid module
4.7.4 pde.tools.docstrings module
4.7.5 pde.tools.expressions module
4.7.6 pde.tools.ffmpeg module
4.7.7 pde.tools.math module
4.7.8 pde.tools.misc module
4.7.9 pde.tools.modelrunner module
4.7.10 pde.tools.mpi module
4.7.11 pde.tools.nested_dict module
4.7.12 pde.tools.numba module
4.7.13 pde.tools.output module
4.7.14 pde.tools.parse_duration module
4.7.15 pde.tools.plotting module
4.7.16 pde.tools.spectral module
4.7.17 pde.tools.typing module
4.8 pde.trackers package
4.8.1 pde.trackers.base module
4.8.2 pde.trackers.interactive module
4.8.3 pde.trackers.interrupts module
4.8.4 pde.trackers.trackers module
4.9 pde.visualization package
4.9.1 pde.visualization.movies module
4.9.2 pde.visualization.plotting module
py-pde
4
Reference manual
4.1
pde.backends package
4.1.2
pde.backends.numba package
View page source
4.1.2
pde.backends.numba package
Defines the
numba
backend.
NumbaBackend
Defines
numba
backend.
Subpackages:
4.1.2.1 pde.backends.numba.operators package
4.1.2.1.1 pde.backends.numba.operators.cartesian module
4.1.2.1.2 pde.backends.numba.operators.common module
4.1.2.1.3 pde.backends.numba.operators.cylindrical_sym module
4.1.2.1.4 pde.backends.numba.operators.polar_sym module
4.1.2.1.5 pde.backends.numba.operators.spherical_sym module
4.1.2.2 pde.backends.numba.backend module
4.1.2.3 pde.backends.numba.config module
4.1.2.4 pde.backends.numba.grids module
4.1.2.5 pde.backends.numba.overloads module
4.1.2.6 pde.backends.numba.utils module