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]

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 arXiv:2205.04611

  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.2.tar.gz (246.1 kB view details)

Uploaded Source

Built Distribution

odil-0.1.2-py2.py3-none-any.whl (39.0 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: odil-0.1.2.tar.gz
  • Upload date:
  • Size: 246.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for odil-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1a80f2d3ddae78fa814b8d0d6f622210d9ed2685854c729f39ca0cf10bf617fe
MD5 6ed024417c9946f62913551031bc6960
BLAKE2b-256 4adc759e1da06a83d1ea4b7a59f25f706954a9b71b1a264bfede2fc9fec2803e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: odil-0.1.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 39.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for odil-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d1045f6eb7c988d32b709a321d1bbaf52c5181ed6df4d2c137f6fdb13f240119
MD5 3892a4e705c343a233c4d055b2c4da68
BLAKE2b-256 b1d565c992509c5bfa5a6bcd94fd26cdb869e6c20e38a674e76b9424ddd97127

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