Available Spatial Methods
| Class | Module | Description | Typical use |
|---|---|---|---|
FiniteVolume | pybamm | Cell-centred FVM. Conservative, handles discontinuities well. | Default for all 1D battery domains |
SpectralVolume | pybamm | Higher-order spectral volume method; extends FiniteVolume. | Smooth problems requiring high accuracy |
ZeroDimensionalSpatialMethod | pybamm | No spatial discretisation — scalar equations only. | 0D domains (e.g. current collectors in some models) |
ScikitFiniteElement | pybamm | 2D FEM via scikit-fem. | 2D current-collector models |
FiniteVolume
pybamm.FiniteVolume implements the standard cell-centred finite volume discretisation. It is the default method used by pybamm.Simulation.
Optional configuration dict. Supported key:
"extrapolation": controls boundary extrapolation order. Sub-keys"order"(default"linear"for values,"quadratic"for gradients) and"use_bcs"(bool).
SpectralVolume
pybamm.SpectralVolume extends FiniteVolume with a higher-order spectral reconstruction. It is compatible only with SpectralVolume1DSubMesh.
Same options as
FiniteVolume.Polynomial order of the spectral reconstruction within each control volume.
SpectralVolume registers the Wang (2002) citation automatically on construction.ZeroDimensionalSpatialMethod
Used for domains with no spatial variation. Applied automatically to 0D domains.ScikitFiniteElement
Provides 2D finite-element discretisation for current-collector models. Requiresscikit-fem and meshio:
Passing Custom Spatial Methods to a Simulation
Use thespatial_methods argument of pybamm.Simulation (or pybamm.Discretisation) to override the default per-domain: