Package PyMPDATA

Numba-accelerated Pythonic implementation of Multidimensional Positive Definite Advection Transport Algorithm (MPDATA) with examples in Python, Julia and Matlab

PyMPDATA uses staggered grid with the following node placement for ScalarField and VectorField elements:

Expand source code
"""
Numba-accelerated Pythonic implementation of Multidimensional Positive Definite
Advection Transport Algorithm (MPDATA) with examples in Python, Julia and Matlab

PyMPDATA uses staggered grid with the following node placement for
`PyMPDATA.scalar_field.ScalarField` and
`PyMPDATA.vector_field.VectorField` elements:
![](https://github.com/atmos-cloud-sim-uj/PyMPDATA/releases/download/tip/readme_grid.png)
"""

# pylint: disable=invalid-name
from importlib.metadata import PackageNotFoundError, version

from .options import Options
from .scalar_field import ScalarField
from .solver import Solver
from .stepper import Stepper
from .vector_field import VectorField

try:
    __version__ = version(__name__)
except PackageNotFoundError:
    # package is not installed
    pass

Sub-modules

PyMPDATA.boundary_conditions

classes representing boundary conditions

PyMPDATA.impl

package internals, if anything from within is needed to be referenced from user code, please report implementation leak into public API as an issue

PyMPDATA.options

MPDATA variants, iterations, data-type and jit-flags settings

PyMPDATA.scalar_field

scalar field abstractions for the staggered grid

PyMPDATA.solver

class grouping user-supplied stepper, fields and post-step/post-iter hooks, as well as self-initialised temporary storage

PyMPDATA.stepper

MPDATA iteration logic

PyMPDATA.vector_field

vector field abstractions for the staggered grid