Welcome to the documentation of AutoPDEx!

AutoPDEx is a free open source partial differential equation (PDE) solver based on the automatic code transformation capabilities of JAX.

The idea of the project is to develop a modular and easily extendable environment for the solution of boundary and initial boundary value problems, which allows for good integration with machine learning algorithms and can be executed on accelerators such as GPUs.

The highest level of abstraction is the autopdex.SimState interface. It orchestrates complete simulations from mesh import and field definitions to model registration, boundary conditions, time integration and postprocessing. For more control, the medium-level modules such as ‘solver’, ‘dae’ and ‘models’ can be directly accessed. They operate on the static_settings and settings dictionaries and call lower-level modules such as the assembler. These lower-level modules can also be accessed directly, for example to assemble a global residual or tangent matrix.

_images/demos_small.png

Installation

To install AutoPDEx, you can use the following command. Note, that it requires python>=3.10.

pip install --upgrade pip
pip install autopdex

Or with all optional dependencies:

pip install autopdex[dev]

To use the Intel MKL Pardiso and PETSc solvers, they have to be installed by the user.

High-level interface

_images/navier_stokes_temperature.png

Contributions

You are warmly invited to contribute to the project. For larger developments, please get in touch beforehand in order to circumvent double work.

For detailed information on how to contribute, please see the Contribution Guidelines.

License

AutoPDEx is licensed under the GNU Affero General Public License, Version 3.

Index