Skip to main content

A Python library for solving ice sheet modeling problems using Physics Informed Neural Networks

Project description

PINNICLE: Physics-Informed Neural Networks for Ice and CLimatE

Python CI codecov Documentation Status DOI License PyPI

PINNICLE (Physics-Informed Neural Networks for Ice and CLimatE) is an open-source Python library for modeling ice sheets using physics-informed neural networks. It is designed to integrate physical laws with observational data to solve both forward and inverse problems in glaciology. The library currently supports stress balance approximations, mass conservation, and time-dependent simulations, etc. Built on top of DeepXDE, it supports TensorFlow, PyTorch, and JAX backends.

Developed at the Department of Earth Sciences, Dartmouth College, USA.


🚀 Features

  • Solve forward and inverse glaciological problems
  • Built-in support for:
    • Shelfy-Stream Approximation (SSA)
    • Mono-Layer Higher-Order (MOLHO) stress balance
    • Mass conservation
  • Support for multiple backends: TensorFlow, PyTorch, JAX
  • Integration with observational data: ISSM data format, MATLAB general .mat, HDF5, NetCDF.
  • Fourier Feature Transform for input and output
  • Fully modular and customizable architecture

📦 Installation

Install from PyPI (recommended)

pip install pinnicle

Install from source

git clone https://github.com/ISSMteam/PINNICLE.git
cd PINNICLE
pip install -e .

Dependencies

PINNICLE requires:

  • Python ≥ 3.9
  • DeepXDE
  • NumPy, SciPy, pandas, matplotlib, scikit-learn
  • mat73 (for MATLAB v7.3 files)

⚙️ Backend Selection

PINNICLE supports TensorFlow, PyTorch, and JAX backends via DeepXDE.

Choose your backend:

DDE_BACKEND=tensorflow python your_script.py

You can also export the backend globally (Linux/macOS):

export DDE_BACKEND=pytorch

Alternatively, edit ~/.deepxde/config.json:

{
  "backend": "tensorflow"
}

🧪 Examples

Example scripts and input files are located in the examples/ directory.

  • Example 1: Inverse problem on Helheim Glacier using SSA to infer basal friction

  • Example 2: Simultaneous Inference of Basal Friction and Ice Rheology for Pine Island Glacier, Antarctica

  • Example 3: Time-dependent forward modeling of Helheim Glacier (2008–2009)

Each example includes a complete Python script and configuration dictionary.

📖 Documentation

Full documentation is available in the docs/ folder or at:

📘 pinnicle.readthedocs.io

📚 Citation

If you use PINNICLE in your research, please cite:

Cheng, G., Krishna, M., and Morlighem, M.: A Python library for solving ice sheet modeling problems using physics-informed neural networks, PINNICLE v1.0, Geosci. Model Dev., 18, 5311–5327, https://doi.org/10.5194/gmd-18-5311-2025, 2025

BibTeX:

@Article{gmd-18-5311-2025,
  AUTHOR = {Cheng, G. and Krishna, M. and Morlighem, M.},
  TITLE = {A Python library for solving ice sheet modeling problems using physics-informed neural networks, PINNICLE v1.0},
  JOURNAL = {Geoscientific Model Development},
  VOLUME = {18},
  YEAR = {2025},
  NUMBER = {16},
  PAGES = {5311--5327},
  URL = {https://gmd.copernicus.org/articles/18/5311/2025/},
  DOI = {10.5194/gmd-18-5311-2025}
}

📂 License

This project is licensed under the GNU Lesser General Public License v2.1.


🤝 Acknowledgements

Supported by:

  • National Science Foundation [#2118285, #2147601]
  • Novo Nordisk Foundation [NNF23OC00807040]
  • Heising-Simons Foundation [2019-1161, 2021-3059]

🔗 Links

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

pinnicle-1.0.5.tar.gz (84.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pinnicle-1.0.5-py3-none-any.whl (93.9 kB view details)

Uploaded Python 3

File details

Details for the file pinnicle-1.0.5.tar.gz.

File metadata

  • Download URL: pinnicle-1.0.5.tar.gz
  • Upload date:
  • Size: 84.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pinnicle-1.0.5.tar.gz
Algorithm Hash digest
SHA256 7808f5d31abf5c598a8d9534e4e993d0dbe149979aa811d233b0e407bd177e30
MD5 2366d965f91e3d6cfc8b9d76f96c7279
BLAKE2b-256 76e21fc8666b1ba2e05a44559ce029f05d308d8d18a583573c04387f09e55a18

See more details on using hashes here.

Provenance

The following attestation bundles were made for pinnicle-1.0.5.tar.gz:

Publisher: python-publish.yml on ISSMteam/PINNICLE

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pinnicle-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: pinnicle-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 93.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pinnicle-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 22b7e1431248f73986e6893baad6785e8f463b3ae0d8dbec6423b614a15cad44
MD5 6ccf36a9f610b2a9d2a05966f38a7cab
BLAKE2b-256 b8f95238ca92a545d31d6d72213e0b90217eb80424888dcb2009ab8ba9d4f495

See more details on using hashes here.

Provenance

The following attestation bundles were made for pinnicle-1.0.5-py3-none-any.whl:

Publisher: python-publish.yml on ISSMteam/PINNICLE

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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