Skip to main content

ODIL (Optimizing a DIscrete Loss) is a framework for solving inverse problems for differential equations

Project description

ODIL

ODIL (Optimizing a Discrete Loss) is a Python framework for solving inverse and data assimilation problems for partial differential equations. ODIL formulates the problem through optimization of a loss function including the residuals of a finite-difference and finite-volume discretization along with data and regularization terms. ODIL solves the same problems as the popular PINN (Physics-Informed Neural Networks) framework.

Key features:

  • automatic differentiation using TensorFlow or JAX
  • optimization by gradient-based methods (Adam, L-BFGS) and Newton's method
  • orders of magnitude lower computational cost than PINN [1]
  • multigrid decomposition for faster optimization [2]

Interactive demos

These demos use a C++ implementation of ODIL with autodiff and Emscripten to run interactively in the web browser.

Poisson Wave Heat Advection Advection2

Installation

pip install odil

or

pip install git+https://github.com/cselab/odil.git

Using GPU

To enable GPU support, provide a non-empty list of devices in CUDA_VISIBLE_DEVICES. Values CUDA_VISIBLE_DEVICES= and CUDA_VISIBLE_DEVICES=-1 disable GPU support.

Developers

ODIL is developed by researchers at Harvard University

advised by

Publications

  1. Karnakov P, Litvinov S, Koumoutsakos P. Solving inverse problems in physics by optimizing a discrete loss: Fast and accurate learning without neural networks. PNAS Nexus, 2024. DOI:10.1093/pnasnexus/pgae005

  2. Karnakov P, Litvinov S, Koumoutsakos P. Flow reconstruction by multiresolution optimization of a discrete loss with automatic differentiation. Eur. Phys. J, 2023. DOI:10.1140/epje/s10189-023-00313-7 arXiv:2303.04679 slides

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odil-0.1.8.tar.gz (56.5 kB view details)

Uploaded Source

Built Distribution

odil-0.1.8-py2.py3-none-any.whl (40.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file odil-0.1.8.tar.gz.

File metadata

  • Download URL: odil-0.1.8.tar.gz
  • Upload date:
  • Size: 56.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for odil-0.1.8.tar.gz
Algorithm Hash digest
SHA256 aeb1dfb9ca468973a25e0b74c52087886695138b45a14e23acc86c621cd53b63
MD5 965205d41b608366829e67dc5a9cb99b
BLAKE2b-256 d6e1d56cd50d8ec96ec268f8450e1bf4969bd32ce1dab385258c262d979452e9

See more details on using hashes here.

File details

Details for the file odil-0.1.8-py2.py3-none-any.whl.

File metadata

  • Download URL: odil-0.1.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 40.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for odil-0.1.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6173f5fc5b0665259db7ff4fa7a8e39a4434fb0e519de8997e2d3799756a305a
MD5 5c56607299bbfb2fe02d9410520a9a2d
BLAKE2b-256 21f8b31d325a3c2cb38045cb6c9cafb69e09013b8bac705650f20468d7b2814e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page