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 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 Visualizing a scalar field
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 Stochastic simulation
2.2.8 Setting boundary conditions
2.2.9 Time-dependent boundary conditions
2.2.10 1D problem - Using
PDE
class
2.2.11 Brusselator - Using the
PDE
class
2.2.12 Diffusion equation with spatial dependence
2.2.13 Schrödinger’s Equation
2.3 Output and analysis
2.3.1 Storage examples
2.3.2 Writing and reading trajectory data
2.3.3 Using simulation trackers
2.4 Advanced PDEs
2.4.1 Post-step hook function
2.4.2 Heterogeneous boundary conditions
2.4.3 Kuramoto-Sivashinsky - Using custom class
2.4.4 Custom Class for coupled PDEs
2.4.5 1D problem - Using custom class
2.4.6 Custom noise
2.4.7 Kuramoto-Sivashinsky - Compiled methods
2.4.8 Solver comparison
2.4.9 Post-step hook function in a custom class
2.4.10 Custom PDE class: SIR model
2.4.11 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 Numba-accelerated PDEs
3.3.6 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 Design choices
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.fields package
4.1.1 pde.fields.base module
4.1.2 pde.fields.collection module
4.1.3 pde.fields.datafield_base module
4.1.4 pde.fields.scalar module
4.1.5 pde.fields.tensorial module
4.1.6 pde.fields.vectorial module
4.2 pde.grids package
4.2.1 pde.grids.boundaries package
4.2.1.1 Boundary conditions
4.2.1.2 Boundaries overview
4.2.1.3 pde.grids.boundaries.axes module
4.2.1.4 pde.grids.boundaries.axis module
4.2.1.5 pde.grids.boundaries.local module
4.2.2 pde.grids.coordinates package
4.2.2.1 pde.grids.coordinates.base module
4.2.2.2 pde.grids.coordinates.bipolar module
4.2.2.3 pde.grids.coordinates.bispherical module
4.2.2.4 pde.grids.coordinates.cartesian module
4.2.2.5 pde.grids.coordinates.cylindrical module
4.2.2.6 pde.grids.coordinates.polar module
4.2.2.7 pde.grids.coordinates.spherical module
4.2.3 pde.grids.operators package
4.2.3.1 pde.grids.operators.cartesian module
4.2.3.2 pde.grids.operators.common module
4.2.3.3 pde.grids.operators.cylindrical_sym module
4.2.3.4 pde.grids.operators.polar_sym module
4.2.3.5 pde.grids.operators.spherical_sym module
4.2.4 pde.grids.base module
4.2.5 pde.grids.cartesian module
4.2.6 pde.grids.cylindrical module
4.2.7 pde.grids.spherical module
4.3 pde.pdes package
4.3.1 pde.pdes.allen_cahn module
4.3.2 pde.pdes.base module
4.3.3 pde.pdes.cahn_hilliard module
4.3.4 pde.pdes.diffusion module
4.3.5 pde.pdes.kpz_interface module
4.3.6 pde.pdes.kuramoto_sivashinsky module
4.3.7 pde.pdes.laplace module
4.3.8 pde.pdes.pde module
4.3.9 pde.pdes.swift_hohenberg module
4.3.10 pde.pdes.wave module
4.4 pde.solvers package
4.4.1 pde.solvers.adams_bashforth module
4.4.2 pde.solvers.base module
4.4.3 pde.solvers.controller module
4.4.4 pde.solvers.crank_nicolson module
4.4.5 pde.solvers.explicit module
4.4.6 pde.solvers.explicit_mpi module
4.4.7 pde.solvers.implicit module
4.4.8 pde.solvers.scipy module
4.5 pde.storage package
4.5.1 pde.storage.base module
4.5.2 pde.storage.file module
4.5.3 pde.storage.memory module
4.5.4 pde.storage.modelrunner module
4.5.5 pde.storage.movie module
4.6 pde.tools package
4.6.1 pde.tools.cache module
4.6.2 pde.tools.config module
4.6.3 pde.tools.cuboid module
4.6.4 pde.tools.docstrings module
4.6.5 pde.tools.expressions module
4.6.6 pde.tools.ffmpeg module
4.6.7 pde.tools.math module
4.6.8 pde.tools.misc module
4.6.9 pde.tools.modelrunner module
4.6.10 pde.tools.mpi module
4.6.11 pde.tools.numba module
4.6.12 pde.tools.output module
4.6.13 pde.tools.parameters module
4.6.14 pde.tools.parse_duration module
4.6.15 pde.tools.plotting module
4.6.16 pde.tools.spectral module
4.6.17 pde.tools.typing module
4.7 pde.trackers package
4.7.1 pde.trackers.base module
4.7.2 pde.trackers.interactive module
4.7.3 pde.trackers.interrupts module
4.7.4 pde.trackers.trackers module
4.8 pde.visualization package
4.8.1 pde.visualization.movies module
4.8.2 pde.visualization.plotting module
py-pde
3
User manual
View page source
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 Numba-accelerated PDEs
3.3.6 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 Design choices
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