Skip to main content

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

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]

Metadata

Release files for PINNICLE 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PINNICLE 1.0.6
File Size Uploaded
pinnicle-1.0.6.tar.gz 84.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for PINNICLE 1.0.6
File Interpreter ABI Platform
pinnicle-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 84.2 MB

Release files / pinnicle-1.0.6.tar.gz

Download URL pinnicle-1.0.6.tar.gz
Size 84.1 MB
Tags Source
SHA-256 checksum
How to use checksums
f65c6fdbf5fb20fb9c94e869acd9c35516496d9a9bb77d700188bb9ffed3bdae
BLAKE2b-256 checksum
How to use checksums
298f6fb69b4759e9185f0e534085a3804731b5d6d8b1209c6f8ba2a09b00d90d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 2, 2026.

Transparency log

Release files / pinnicle-1.0.6-py3-none-any.whl

Download URL pinnicle-1.0.6-py3-none-any.whl
Size 109.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bdc0abd18cb8e413dadfb97921a21fcae33137ef286831fe19dbe10aeeccda5f
BLAKE2b-256 checksum
How to use checksums
23761deab282331dbe89535c59a94f18721836a41363c344a0750429626cc833
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0

2 release files

0.3

2 release files

0.2

2 release files

0.0.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page