Metadata-Version: 2.4
Name: fwl-proteus
Version: 26.7.14
Summary: Coupled atmosphere-interior framework to simulate the temporal evolution of rocky planets
Author-email: Tim Lichtenberg <tim.lichtenberg@rug.nl>, Harrison Nicholls <contact@h-nicholls.space>, Laurent Soucasse <l.soucasse@esciencecenter.nl>, Mariana Sastre <m.c.villamil.sastre@rug.nl>, Emma Postolec <e.n.postolec@rug.nl>, Flavia Pascal <fpascal@astro.rug.nl>, Ben Riegler <ben.riegler@tum.de>, Hanno Spreeuw <h.spreeuw@esciencecenter.nl>, "Dan J. Bower" <dbower@ethz.ch>, Mark Hammond <mark.hammond@physics.ox.ac.uk>, Stef Smeets <s.smeets@esciencecenter.nl>, Robb Calder <rdc49@cam.ac.uk>, "Raymond T. Pierrehumbert" <raymond.pierrehumbert@physics.ox.ac.uk>, Karen Stuitje <stuitje@proton.me>
License: Apache 2.0 License
Project-URL: homepage, https://proteus-framework.org
Project-URL: issues, https://github.com/FormingWorlds/PROTEUS/issues
Project-URL: source, https://github.com/FormingWorlds/PROTEUS/
Project-URL: documentation, https://proteus-framework.org/proteus/
Project-URL: changelog, https://github.com/FormingWorlds/PROTEUS/releases
Keywords: Astronomy,Exoplanets,Model-coupling
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Astronomy
Requires-Python: <3.13,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: attrs
Requires-Dist: cattrs
Requires-Dist: fwl-janus>=24.11.05
Requires-Dist: fwl-mors>=26.01.02
Requires-Dist: fwl-calliope>=26.06.01
Requires-Dist: fwl-zephyrus>=25.03.11
Requires-Dist: fwl-aragog>=26.07.04
Requires-Dist: fwl-zalmoxis>=26.07.03
Requires-Dist: jax<0.10
Requires-Dist: jaxlib<0.10
Requires-Dist: equinox==0.13.8
Requires-Dist: cmcrameri
Requires-Dist: juliacall>=0.9.35
Requires-Dist: matplotlib
Requires-Dist: netCDF4
Requires-Dist: numpy>=2.0.0
Requires-Dist: pandas
Requires-Dist: scipy
Requires-Dist: pre-commit
Requires-Dist: platformdirs
Requires-Dist: ruff
Requires-Dist: sympy
Requires-Dist: astropy
Requires-Dist: torch
Requires-Dist: botorch
Requires-Dist: gpytorch
Requires-Dist: toml
Requires-Dist: zenodo-get
Requires-Dist: zenodo-client>=0.4.1
Requires-Dist: osfclient
Requires-Dist: packaging
Provides-Extra: atmodeller
Requires-Dist: atmodeller>=1.0.2; extra == "atmodeller"
Provides-Extra: vulcan
Requires-Dist: fwl-vulcan>=26.04.22; extra == "vulcan"
Provides-Extra: develop
Requires-Dist: coverage[toml]; extra == "develop"
Requires-Dist: tomlkit>=0.11.0; extra == "develop"
Requires-Dist: pillow; extra == "develop"
Requires-Dist: pip-tools; extra == "develop"
Requires-Dist: pytest>=8.1; extra == "develop"
Requires-Dist: pytest-cov; extra == "develop"
Requires-Dist: pytest-dependency; extra == "develop"
Requires-Dist: pytest-timeout; extra == "develop"
Requires-Dist: pytest-xdist; extra == "develop"
Requires-Dist: hypothesis; extra == "develop"
Provides-Extra: docs
Requires-Dist: zensical==0.0.39; extra == "docs"
Requires-Dist: mkdocs-material; extra == "docs"
Requires-Dist: markdown-include; extra == "docs"
Requires-Dist: mkdocs; extra == "docs"
Requires-Dist: mkdocstrings[python]; extra == "docs"
Requires-Dist: pymdown-extensions; extra == "docs"
Dynamic: license-file

<h1 align="center">
    <div>
        <img src="https://raw.githubusercontent.com/FormingWorlds/PROTEUS/main/docs/assets/PROTEUS_white.png#gh-light-mode-only" style="vertical-align: middle;" width="60%"/>
        <img src="https://raw.githubusercontent.com/FormingWorlds/PROTEUS/main/docs/assets/PROTEUS_black_nobkg.png#gh-dark-mode-only" style="vertical-align: middle;" width="60%"/>
    </div>
</h1>

<p align="center">
  <a href="https://github.com/FormingWorlds/PROTEUS/actions/workflows/coverage-baseline.yml">
    <img src="https://img.shields.io/github/actions/workflow/status/FormingWorlds/PROTEUS/coverage-baseline.yml?branch=main&label=Unit%20Tests">
  </a>
  <a href="https://github.com/FormingWorlds/PROTEUS/actions/workflows/ci-nightly.yml">
    <img src="https://img.shields.io/github/actions/workflow/status/FormingWorlds/PROTEUS/ci-nightly.yml?branch=main&label=Integration%20Tests">
  </a>
  <a href="https://proteus-framework.org/PROTEUS/">
    <img src="https://img.shields.io/github/actions/workflow/status/FormingWorlds/PROTEUS/docs.yaml?branch=main&label=Docs">
  </a>
  <a href="https://app.codecov.io/gh/FormingWorlds/PROTEUS/tree/main">
    <img src="https://codecov.io/gh/FormingWorlds/PROTEUS/branch/main/graph/badge.svg">
  </a>
  <br/>
  <a href="https://opensource.org/licenses/Apache-2.0">
    <img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg">
  </a>
  <a href="https://proteus-framework.org">
    <img src="https://img.shields.io/website?url=https%3A%2F%2Fproteus-framework.org&label=Website&up_message=proteus-framework.org&down_message=proteus-framework.org" />
  </a>
</p>

**Coupled atmosphere-interior evolution of rocky planets and exoplanets.**

PROTEUS (/ˈproʊtiəs, PROH-tee-əs) is a modular Python framework that connects interior thermal evolution, volatile outgassing, atmospheric radiative transfer, atmospheric escape, and stellar evolution into a self-consistent time-stepping loop, following a planet from a molten magma ocean to a solidified surface over billions of years. Inspired by the Greek god of elusive sea change, who could change his form at will, PROTEUS is designed to be flexible and adaptable to a wide range of planetary environments. It can foretell the future, but answers only to those who are capable of asking the right questions.

## Features

- **Modular backends**: interior, atmosphere, escape, outgassing, stellar, and orbit domains each expose multiple interchangeable solvers behind a common interface.
- **Coupled, conservative loop**: modules exchange boundary conditions every timestep, enforcing mass and energy conservation across the whole planet system.
- **Adaptive time-stepping**: resolves fast transitions (solidification, escape episodes) and steps efficiently through quasi-steady phases.
- **Parameter sweeps and observations**: built-in Cartesian grid sweeps over configuration parameters, plus forward models for synthetic transit and eclipse spectra.

## Get started

Follow the [installation guide](https://proteus-framework.org/PROTEUS/How-to/installation.html), then run the all-dummy quick start (no external solvers, under a minute):

```console
proteus start -c input/dummy.toml
```

The [quick-start tutorial](https://proteus-framework.org/PROTEUS/Tutorials/quick_start_dummy.html) explains the output; the [Earth analogue tutorial](https://proteus-framework.org/PROTEUS/Tutorials/earth_analogue.html) is a full production run.

## Documentation

Full documentation: **[proteus-framework.org/PROTEUS](https://proteus-framework.org/PROTEUS/)**

- [Model description](https://proteus-framework.org/PROTEUS/Explanations/model.html)
- [Installation guide](https://proteus-framework.org/PROTEUS/How-to/installation.html)
- [Usage guide](https://proteus-framework.org/PROTEUS/How-to/usage.html)
- [Contributing guide](https://proteus-framework.org/PROTEUS/Community/CONTRIBUTING.html)

## Community and citation

Ask questions on the [discussions page](https://github.com/orgs/FormingWorlds/discussions) or [contact the developers](https://proteus-framework.org/PROTEUS/Community/contact.html). If you use PROTEUS, please cite the papers listed in the [bibliography](https://proteus-framework.org/PROTEUS/Reference/bibliography.html).
