veros
The versatile ocean simulator, in pure Python, powered by JAX.
Science Score: 85.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
✓Academic publication links
Links to: wiley.com, zenodo.org -
✓Committers with academic emails
2 of 17 committers (11.8%) from academic institutions -
✓Institutional organization owner
Organization team-ocean has institutional domain (www.nbi.ku.dk) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
The versatile ocean simulator, in pure Python, powered by JAX.
Basic Info
- Host: GitHub
- Owner: team-ocean
- License: gpl-3.0
- Language: Python
- Default Branch: main
- Homepage: https://veros.readthedocs.io
- Size: 28.3 MB
Statistics
- Stars: 367
- Watchers: 8
- Forks: 57
- Open Issues: 26
- Releases: 22
Topics
Metadata Files
README.md
Versatile Ocean Simulation in Pure Python
Veros, the versatile ocean simulator, aims to be the swiss army knife of ocean modeling. It is a full-fledged primitive equation ocean model that supports anything between idealized toy models and realistic, high-resolution, global ocean simulations. And because Veros is written in pure Python, the days of struggling with complicated model setup workflows, ancient programming environments, and obscure legacy code are finally over.
In a nutshell, we want to enable high-performance ocean modelling with a clear focus on flexibility and usability.
Veros supports a NumPy backend for small-scale problems, and a high-performance JAX backend with CPU and GPU support. It is fully parallelized via MPI and supports distributed execution on any number of nodes, including multi-GPU architectures (see also our benchmarks).
The dynamical core of Veros is based on pyOM2, an ocean model with a Fortran backend and Fortran and Python frontends.
To learn more about Veros, make sure to visit our documentation.
How about a demonstration?
(0.25×0.25° high-resolution model spin-up, click for better quality)
Features
Veros provides
- a fully staggered 3-D grid geometry (C-grid)
- support for both idealized and realistic configurations in Cartesian or pseudo-spherical coordinates
- several friction and advection schemes
- isoneutral mixing, eddy-kinetic energy, turbulent kinetic energy, and internal wave energy parameterizations
- several pre-implemented diagnostics such as energy fluxes, variable time averages, and a vertical overturning stream function (written to netCDF4 output)
- pre-configured idealized and realistic set-ups that are ready to run and easy to adapt
- accessibility and extensibility - thanks to the power of Python!
Veros for the impatient
A minimal example to install and run Veros:
bash
$ pip install veros
$ veros copy-setup acc --to /tmp/acc
$ veros run /tmp/acc/acc.py
For more detailed installation instructions, have a look at our documentation.
Basic usage
To run Veros, you need to set up a model --- i.e., specify which settings
and model domain you want to use. This is done by subclassing the
VerosSetup base class in a setup script that is written in Python. You
should use the veros copy-setup command to copy one into your current
folder. A good place to start is the
ACC model:
bash
$ veros copy-setup acc
After setting up your model, all you need to do is call the setup and
run methods on your setup class. The pre-implemented setups can all be
executed via veros run:
bash
$ veros run acc.py
For more information on using Veros, have a look at our documentation.
Contributing
Contributions to Veros are always welcome, no matter if you spotted an inaccuracy in the documentation, wrote a new setup, fixed a bug, or even extended Veros\' core mechanics. There are 2 ways to contribute:
- If you want to report a bug or request a missing feature, please open an issue. If you are reporting a bug, make sure to include all relevant information for reproducing it (ideally through a minimal code sample).
- If you want to fix the issue yourself, or wrote an extension for Veros - great! You are welcome to submit your code for review by committing it to a repository and opening a pull request. However, before you do so, please check the contribution guide for some tips on testing and benchmarking, and to make sure that your modifications adhere with our style policies. Most importantly, please ensure that you follow the PEP8 guidelines, use meaningful variable names, and document your code using Google-style docstrings.
How to cite
If you use Veros in scientific work, please consider citing the following publication:
bibtex
@article{hafner_veros_2018,
title = {Veros v0.1 – a fast and versatile ocean simulator in pure {Python}},
volume = {11},
issn = {1991-959X},
url = {https://gmd.copernicus.org/articles/11/3299/2018/},
doi = {10.5194/gmd-11-3299-2018},
number = {8},
journal = {Geoscientific Model Development},
author = {Häfner, Dion and Jacobsen, René Løwe and Eden, Carsten and Kristensen, Mads R. B. and Jochum, Markus and Nuterman, Roman and Vinter, Brian},
month = aug,
year = {2018},
pages = {3299--3312},
}
Or have a look at our documentation for more publications involving Veros.
Owner
- Name: TeamOcean
- Login: team-ocean
- Kind: organization
- Location: Copenhagen
- Website: https://www.nbi.ku.dk/english/research/pice/oceanography/
- Repositories: 4
- Profile: https://github.com/team-ocean
Software development at TeamOcean, NBI Copenhagen.
Citation (CITATION.cff)
authors:
- family-names: Häfner
given-names: Dion
- family-names: Jacobsen
given-names: René Løwe
- family-names: Nuterman
given-names: Roman
- family-names: Jochum
given-names: Markus
cff-version: 1.2.0
message: "If you use this software, please cite the article from preferred-citation."
title: Veros
url: "https://github.com/team-ocean/veros"
preferred-citation:
type: article
title: "Veros v0.1 – a fast and versatile ocean simulator in pure Python"
authors:
- family-names: Häfner
given-names: Dion
- family-names: Jacobsen
given-names: René Løwe
- family-names: Eden
given-names: Carsten
- family-names: Kristensen
given-names: Mads R. B.
- family-names: Jochum
given-names: Markus
- family-names: Nuterman
given-names: Roman
- family-names: Vinter
given-names: Brian
year: 2018
journal: "Geoscientific Model Development"
volume: 11
issue: 8
pages: "3299-3312"
doi: "10.5194/gmd-11-3299-2018"
url: "https://gmd.copernicus.org/articles/11/3299/2018/"
GitHub Events
Total
- Create event: 75
- Release event: 2
- Issues event: 10
- Watch event: 34
- Delete event: 69
- Issue comment event: 52
- Push event: 88
- Pull request event: 138
- Fork event: 3
Last Year
- Create event: 75
- Release event: 2
- Issues event: 10
- Watch event: 34
- Delete event: 69
- Issue comment event: 52
- Push event: 88
- Pull request event: 138
- Fork event: 3
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Dion Häfner | m****l@d****e | 908 |
| dependabot[bot] | 4****] | 501 |
| René Løwe Jacobsen | r****j@r****t | 54 |
| Roman Nuterman | n****n@n****k | 33 |
| dependabot-preview[bot] | 2****] | 24 |
| Jonas la Cour | j****r@J****l | 15 |
| Jonas la Cour | j****1@g****m | 10 |
| Jonas la Cour | j****r@J****m | 7 |
| Roman Nuterman | n****k@R****l | 7 |
| Roman Nuterman | n****k@d****k | 7 |
| Bruno P. Kinoshita | b****k@y****r | 1 |
| Jesper Pedersen | 3****n | 1 |
| Mads R. B. Kristensen | m****k@g****m | 1 |
| Tomas Chor | t****r@g****m | 1 |
| Jonas Dornonville de la Cour | j****r@m****r | 1 |
| Dion Häfner | d****r@w****e | 1 |
| iury simoes-sousa | i****t@p****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 79
- Total pull requests: 781
- Average time to close issues: 9 months
- Average time to close pull requests: 3 days
- Total issue authors: 24
- Total pull request authors: 9
- Average comments per issue: 2.59
- Average comments per pull request: 0.7
- Merged pull requests: 705
- Bot issues: 3
- Bot pull requests: 673
Past Year
- Issues: 10
- Pull requests: 154
- Average time to close issues: 12 days
- Average time to close pull requests: 1 day
- Issue authors: 5
- Pull request authors: 2
- Average comments per issue: 1.4
- Average comments per pull request: 0.09
- Merged pull requests: 129
- Bot issues: 3
- Bot pull requests: 145
Top Authors
Issue Authors
- dionhaefner (30)
- Sougata18 (10)
- nutrik (7)
- AminMoradiXL (3)
- jklymak (3)
- dependabot[bot] (3)
- jonnyhtw (2)
- sb4233 (2)
- Titouan-Moulin (2)
- fabien-roquet (2)
- HuangLianghong (2)
- RasmusRanumHansen (1)
- mapirooznia (1)
- devyani2509 (1)
- tomchor (1)
Pull Request Authors
- dependabot[bot] (645)
- dionhaefner (90)
- dependabot-preview[bot] (26)
- nutrik (12)
- iuryt (2)
- tomchor (1)
- kinow (1)
- jrpedersen (1)
- jklymak (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 283 last-month
- Total dependent packages: 0
- Total dependent repositories: 4
- Total versions: 21
- Total maintainers: 1
pypi.org: veros
The versatile ocean simulator, in pure Python, powered by JAX.
- Homepage: https://veros.readthedocs.io
- Documentation: https://veros.readthedocs.io/
- License: MIT
-
Latest release: 1.6.0
published 6 months ago
Rankings
Maintainers (1)
Dependencies
- Pillow ==9.2.0
- Sphinx ==5.0.2
- click ==8.1.3
- cmocean ==2.0
- entrypoints ==0.4
- ipython ==8.4.0
- matplotlib ==3.5.2
- netCDF4 ==1.6.0
- sphinx-rtd-theme ==1.0.0
- xarray ==2022.3.0
- click ==8.1.3
- entrypoints ==0.4
- h5netcdf ==1.0.1
- h5py ==3.7.0
- loguru ==0.6.0
- numpy ==1.23.1
- pillow ==9.2.0
- requests ==2.28.1
- scipy ==1.8.1
- tqdm ==4.64.0
- jax ==0.3.14
- jaxlib *
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pre-commit/action v2.0.0 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- codecov/codecov-action v1 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- conda-incubator/setup-miniconda v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite