Skip to main content

The virtual planet simulator

Project description

VPLanet: The Virtual Planet Simulator






ascl:1811.017

Overview

VPLanet is software to simulate planetary system evolution, with a focus on habitability. Physical models, typically consisting of ordinary differential equations, are coupled together to simulate evolution, from planetary cores to passing stars, for the age of a system. We strive for full transparency and reproducibility in our software, and this repository contains 1) the source code, 2) extensive documentation, 3) scripts and files to generate published figures and perform parameter sweeps, and 4) scripts to validate the current release. We can't claim we found life beyond the Earth with closed-source or unreliable software!

To get started, ensure you have clang/gcc installed and follow the Installation Guide. You can also watch videos on our YouTube channel on how to install and run VPLanet, as well as updates on recent results .

Modules

VPLanet currently consists of 13 functioning "modules," each containing a set of equations that simulates a specific physical process:

AtmEsc: Roche lobe overflow and thermal escape (energy-limited and radiation-recombination-limited) of an atmosphere, including water photolyzation, hydrogen escape, oxygen escape, and oxygen build-up.

Binary: Orbital evolution of a single circumbinary planet.

DistOrb: 2nd and 4th order semi-analytic models of orbital evolution outside of resonance.

DistRot: Evolution of a world's rotational axis due to orbital evolution and the stellar torque.

EqTide: Tidal evolution in the equilibrium tide framework.

Flare: Flare frequency distribution and flare XUV luminosity evolution in low-mass stars.

GalHabit: Evolution of a wide orbit due to the galactic tide and impulses from passing stars (including radial migration).

MagmOc: Thermal and geochemical evolution of a magma ocean.

POISE: Energy balance climate model including dynamic ice sheets and lithospheric compression/rebound.

RadHeat: Radiogenic heating in a world's core, mantle, and crust.

SpiNBody: N-body integrator for the evolution of a system of massive particles.

Stellar: Evolution of a star's bolometric and XUV luminosity, temperature, radius, and mass concentration. Also includes magnetic braking and stellar wind spin-down.

ThermInt: Thermal interior evolution, including magnetic fields, for planets undergoing plate tectonics or stagnant lid evolution.

Many of these modules can be combined together to simulate numerous phenomena and feedback loops in planetary systems.

Resources

The examples/ directory contains input files and scripts for generating the figures in Barnes et al. (2020) and subsequent publications. The "examples" badge shows if all the examples can be built with the most recent version. The Manual/ directory contains the pdf of Barnes et al. (2020), which describes the physics of the first 11 modules, validates the software against observations and/or past results, and uses figures from the examples/ directory.

An ecosystem of support software is also publicly available. VPLot is both a command line tool to quickly plot the evolution of a single integration, and also includes matplotlib functions to generate publication-worthy figures. The VSPACE script generates input files for a parameter space sweep, which can then be performed on an arbitrary number of cores with MultiPlanet. For large parameter sweeps, an enormous amount of data can be generated, which can slow analyses. To overcome this barrier, the BigPlanet code can both compress datasets into HDF5 format, including statistics of an integration, and tools to facilitate plotting. These three scripts can be executed from the command line to seamlessly perform parameter sweeps. These Python scripts are optimized for anaconda distributions versions 3.7-3.9. The "wheels" badge indicates if you can download and install the executables with pip for these Python distributions on the latest Linux and Mac operating systems.

Code Integrity

Behind the scenes, the VPLanet team maintains code integrity through via various automatic checks at every merge into the main branch. You can see the status of these checks via the "badges" the GitHub logo above. Currently we perform 5 checks: documentation ("docs"), units tests ("tests"), memory checks via valgrind ("memcheck"), confirmation that all examples are working ("examples"), and that the code is pip-installable on the latest Linux and Mac operating systems ("pip-install") for the Python distributions listed after the GitHub Actions badge. The percentage of the lines of code that are executed by the unit tests is shown with the "codecov" badge, with details available at our Codecov account. We are committed to maintaining a stable tool for scientists to analyze any planetary system.

Community

VPLanet is a community project. We're happy to take pull requests; if you want to create one, please issue it to the dev branch. The documentation includes tutorials on adding new features and modules. It's a platform for planetary science that can grow exponentially, either by adding new physics or by adding competing models for clean comparisons.

A list of additional GitHub repositories with VPLanet examples can be found here.

If you believe you have encountered a bug, please raise an issue using the Issues tab at the top of this page.

If you'd like to stay up to date on VPLanet by joining the e-mail list, please send a request to Rory Barnes, rory@astro.washington.edu. You can also follow VPLanet on twitter: @VPLanetCode.

Acknowledgments

If you use this code to generate results used in any publication or conference contribution, please cite Barnes, R. et al. (2020), PASP, 132, 24502.

VPLanet development has been supported by NASA grants NNA13AA93A, NNX15AN35G, 80NSSC17K048, 13-13NAI7_0024, and 80NSSC20K0229. We also acknowledge support from the University of Washington and the Carnegie Institute for Science.

Enjoy!

© 2018-2023 The VPLanet Team.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

vplanet-2.4.21-cp39-cp39-musllinux_1_1_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

vplanet-2.4.21-cp39-cp39-musllinux_1_1_i686.whl (11.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

vplanet-2.4.21-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

vplanet-2.4.21-cp38-cp38-musllinux_1_1_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

vplanet-2.4.21-cp38-cp38-musllinux_1_1_i686.whl (11.1 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

vplanet-2.4.21-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

vplanet-2.4.21-cp37-cp37m-musllinux_1_1_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

vplanet-2.4.21-cp37-cp37m-musllinux_1_1_i686.whl (11.1 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ i686

vplanet-2.4.21-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

vplanet-2.4.21-cp36-cp36m-musllinux_1_1_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ x86-64

vplanet-2.4.21-cp36-cp36m-musllinux_1_1_i686.whl (11.1 MB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ i686

vplanet-2.4.21-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

File details

Details for the file vplanet-2.4.21-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c418237d08c81f49d37e9af2983d1aa877a1cd645b71b32ba6a53b83e8a5476f
MD5 efa3b52c9bdf31672cc31096f1283689
BLAKE2b-256 ccd7da87a02defdca25805888d06d2401539d07257f287405d616e8066363541

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 53958e379b7f784bd6ecb30a8d9f920640a37841c41671c5c1b4fe2b9235b8b6
MD5 c7ca76aca70d5c39abcd34d7cc7ea8fd
BLAKE2b-256 67aea60dcaab7bdf839809483c6ae5dfac1bcb5ff5bbfacb0dd106393cd6248e

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9feba8294dc143ce5c880f3e2d6ec5a5206e05a76078e0c64a907b60fe90d729
MD5 7f21ce2443721ada108ae9b2449fb749
BLAKE2b-256 59344a957766ab18eb25e2497930672b98048ce7fb8646135b1c6919c74953f2

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 563650e13e7967f0ff347c50636a71f86f487c405a58fc24aa9baf6aee807136
MD5 089e3771549cef2981d6f467ac592764
BLAKE2b-256 786e2f365ce52771e3846daf5e238189bec98ae0349d8545bdda9ed2708024a9

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 fb5c1429ecf06c5f538a9cfe8b78c58f99c917b53ff463865c2a4a38e3d24dae
MD5 5ff9241186cd8a9693b3c827e0dc6671
BLAKE2b-256 2a9832729edb80942654b36d8465d8876f6e945483d553ed13b123c23a7a4ece

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54e10e56411fe1832c649e540eb3b19e7e30a5c2cd6a3f3315f04828771b08bc
MD5 e6990a5a2090e254a82c6b7eff572d1b
BLAKE2b-256 1ffea17a4ace8cb908d4bc20e3d0b8bcd468f22fa89cd6b614a7f76dec079054

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 58056288d85d1f297dd3b930401195c7a8133bc4a1b6807ad148ccd9e3a09d9d
MD5 c12057e59370a3f2600bc27b498aaabd
BLAKE2b-256 3dd649b8da6e93c2a121e5af5266067a5663d818fe327f854bb6fcb883bce5f7

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 8caf34cd90aa93fd1caca4f85be70a1ae3044832ef9edb9adf12d251c3ee7160
MD5 aeed1f01b204f750ea1d225c899002f0
BLAKE2b-256 743d11867a8f01216c938298e427ff4d9e73730c4907e2041c4cca00c63a2978

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c0dd259c99cc7ac1aa72857c39a7d108211f4af8fe202a3de2779c3e90feffff
MD5 c31767fdbb42cb00b1ee254c7e864d19
BLAKE2b-256 c0bdfaad715cfca8e6063582c5ba081ec868638b94869c731fae64b5f1a7f0bb

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8e175c6d37f833d28ea0a7cb98f71b1341bb87d1342c9e80f9f3d842d229d613
MD5 cb00a392054261daa41b7297f5017216
BLAKE2b-256 5be5f4fbcfdb07124beef475adb31a31e6d52a2c8cb059d80fc7838ad9b7c7b8

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp36-cp36m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 87e44d7cd7b0f02e0cc809279dd0e95b39cbba489c88d071869d4a38880d064d
MD5 ab05be1660163f8b8f22acf04f46d120
BLAKE2b-256 6e234fd4ba0eb0e416245ee5fa31f8a1a3fa4a87e43e10e604b00af8987a72b9

See more details on using hashes here.

File details

Details for the file vplanet-2.4.21-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vplanet-2.4.21-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a6857e3abc3f878e212f93e6dfa0de59ad71b18c46b86627422325aeb84a578b
MD5 ca60f2a030f887df64e279e89e6b338f
BLAKE2b-256 c23b4a81c1f8741f78cedab0e29179bdcc3fd8242c26eb0dde6bec767dc44c10

See more details on using hashes here.

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