Metadata-Version: 2.4
Name: fwl-vulcan
Version: 26.4.22
Summary: Photochemical kinetics for exoplanetary atmospheres, a fast and easy-to-use python code.
Author-email: Shang-Min Tsai <shangmin.tsai@ucr.edu>, Harrison Nicholls <harrison.nicholls@ast.cam.ac.uk>
License: GPL-3.0-only
Project-URL: homepage, https://github.com/FormingWorlds/VULCAN/
Project-URL: issues, https://github.com/FormingWorlds/VULCAN/issues
Project-URL: changelog, https://github.com/FormingWorlds/VULCAN/releases
Keywords: Astronomy,Exoplanets,Model-coupling
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
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.11
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: juliacall
Requires-Dist: matplotlib
Requires-Dist: numpy>=2.0.0
Requires-Dist: pandas
Requires-Dist: scipy
Requires-Dist: sympy
Requires-Dist: astropy
Provides-Extra: docs
Requires-Dist: zensical; extra == "docs"
Requires-Dist: markdown-include; extra == "docs"
Requires-Dist: mkdocs; extra == "docs"
Requires-Dist: mkdocs-material; extra == "docs"
Requires-Dist: mkdocstrings[python]; extra == "docs"
Requires-Dist: pymdown-extensions; extra == "docs"
Requires-Dist: mkdocstrings; extra == "docs"
Requires-Dist: mkdocs-bibtex; extra == "docs"
Provides-Extra: develop
Requires-Dist: coverage; extra == "develop"
Requires-Dist: tomlkit>=0.11.0; extra == "develop"
Requires-Dist: pytest>=8.1; extra == "develop"
Requires-Dist: pytest-cov; extra == "develop"
Requires-Dist: pytest-timeout; extra == "develop"
Requires-Dist: ruff; extra == "develop"
Requires-Dist: pre-commit; extra == "develop"
Dynamic: license-file

# VULCAN

Photochemical kinetics for exoplanetary atmospheres, a fast and easy-to-use python code.  This distribution of VULCAN contains a number of performance and usability improvements.

[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
<a href="https://github.com/FormingWorlds/VULCAN/actions/workflows/tests.yaml">
    <img src="https://gist.githubusercontent.com/nichollsh/59f094e7d22cd6af9a1cb3ea665b4260/raw/covbadge.svg">
</a>



More information can be found on the [documentation](https://proteus-framework.org/VULCAN/) pages:

* [installation guide](https://proteus-framework.org/VULCAN/How-to/installation.html)
* [usage guide](https://proteus-framework.org/VULCAN/How-to/index.html)
* [contributing guide](https://proteus-framework.org/VULCAN/Community/CONTRIBUTING.html)


The theory papers of VULCAN can be found here:

* [Tsai et al. 2021](https://arxiv.org/abs/2108.01790) (with photochemistry)
* [Tsai et al. 2017](https://arxiv.org/abs/1607.00409) (without photochemistry).


![Running with realtime plotting](docs/assets/demo.gif)

## Quick Demo

Let's dive in and see chemical kinetics in action!

First, go to the `fastchem_vulcan/` folder to compile FastChem by running
```
make
```

After compilation has finished, go back to the main directory of VULCAN and run
```
python vulcan.py
```

You should see the default model starts running with real-time plotting.
This will take about 10-15 minutes to complete depending on your comuputer.

Now you may want to try a different T-P input, changing the elemental abundances or
vertical mixing. All these settings are set in ```config.py```. For example, find and edit
```python
const_Kzz = 1.E7
```
and
```python
C_H = 6.0618E-4
```
for a weaker vertical mixing (K<sub>zz</sub>) and carbon rich (C/O=1) run. Set use_live_plot = False if you wish to switch off the real-time plotting (why whould you though?). More detailed instruction can be found in the following sections. Have fun!

The object in this `config.py` file can be edited at runtime and passed around as a variable.

## Reading Output Files
Run ```plot_vulcan.py``` within ```plot_py```
```
python plot_vulcan.py [vulcan output] [species] [plot name] [-h (for plotting height)]
```
will read vulcan output (.vul files) can plot the species profiles. Species should be sepreated by commas without space. Plot is in pressure by diffcult and can be changed to height by adding "-h".
