This repository contains some preliminary experiments on performing adjoint-based optimization of systems with shocks by using automatic differentiation. The main goal is to get it working for the one-dimensional unsteady Euler equations with common WENO schemes.
It is currently quite far from that goal, so this is very experimental.
The project currently supports Python 3.8 and later. The (full) requirements are listed in pyproject.toml
.
jax
andjaxlib
: base numeric and automatic differentiation package used throughout. See JAX support policy for details on supported versions.rich
: recommended for nicer logging.matplotlib
andSciencePlots
: recommended for nicer plotting.
For development, it is recommended to run
A pinned version of all the requirements is kept in requirements.txt
. For a quick install with the versions that are currently being tested on the CI
or use requirements-dev.txt
to also install development packages (e.g. ruff
).
Documentation can be generated using Sphinx. For example, to generate a nice HTML-based variant go
Sphinx ca can also generate LaTeX documentation with
The documentation is also hosted on readthedocs.