All Projects → team-ocean → Veros

team-ocean / Veros

Licence: mit
The versatile ocean simulator, in pure Python, powered by Bohrium.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Veros

Pism
repository for the Parallel Ice Sheet Model (PISM)
Stars: ✭ 61 (-55.15%)
Mutual labels:  parallel, geophysics
Numba
NumPy aware dynamic Python compiler using LLVM
Stars: ✭ 7,090 (+5113.24%)
Mutual labels:  parallel, numpy
Core
parallel finite element unstructured meshes
Stars: ✭ 124 (-8.82%)
Mutual labels:  parallel
Jyni
Enables Jython to load native CPython extensions.
Stars: ✭ 131 (-3.68%)
Mutual labels:  numpy
Numcpp
C++ implementation of the Python Numpy library
Stars: ✭ 2,031 (+1393.38%)
Mutual labels:  numpy
Threadsx.jl
Parallelized Base functions
Stars: ✭ 126 (-7.35%)
Mutual labels:  parallel
Forpy
Forpy - use Python from Fortran
Stars: ✭ 129 (-5.15%)
Mutual labels:  numpy
Android Download Manager Pro
Android/Java download manager library help you to download files in parallel mechanism in some chunks.
Stars: ✭ 1,568 (+1052.94%)
Mutual labels:  parallel
2016 Ml Contest
Machine learning contest - October 2016 TLE
Stars: ✭ 135 (-0.74%)
Mutual labels:  geophysics
Color Tracker
Color tracking with OpenCV
Stars: ✭ 128 (-5.88%)
Mutual labels:  numpy
Pyjson tricks
Extra features for Python's JSON: comments, order, numpy, pandas, datetimes, and many more! Simple but customizable.
Stars: ✭ 131 (-3.68%)
Mutual labels:  numpy
Fpart
Sort files and pack them into partitions
Stars: ✭ 127 (-6.62%)
Mutual labels:  parallel
Teaching Monolith
Data science teaching materials
Stars: ✭ 126 (-7.35%)
Mutual labels:  numpy
Root numpy
The interface between ROOT and NumPy
Stars: ✭ 130 (-4.41%)
Mutual labels:  numpy
One Python Benchmark Per Day
An ongoing fun challenge where I'll try to post one Python benchmark per day.
Stars: ✭ 124 (-8.82%)
Mutual labels:  numpy
Rubico
[a]synchronous functional programming
Stars: ✭ 133 (-2.21%)
Mutual labels:  parallel
From Python To Numpy
An open-access book on numpy vectorization techniques, Nicolas P. Rougier, 2017
Stars: ✭ 1,728 (+1170.59%)
Mutual labels:  numpy
Data Science For Marketing Analytics
Achieve your marketing goals with the data analytics power of Python
Stars: ✭ 127 (-6.62%)
Mutual labels:  numpy
Tiny ml
numpy 实现的 周志华《机器学习》书中的算法及其他一些传统机器学习算法
Stars: ✭ 129 (-5.15%)
Mutual labels:  numpy
Ml Cheatsheet
A constantly updated python machine learning cheatsheet
Stars: ✭ 136 (+0%)
Mutual labels:  numpy

Documentation status Build status Code Coverage DOI

Veros, the versatile ocean simulator, is just that: A powerful tool that makes high-performance ocean modeling approachable and fun. Since it is a pure Python module, the days of struggling with complicated model setup workflows, ancient programming environments, and obscure legacy code are finally over.

Veros supports both a NumPy backend for small-scale problems and a fully parallelized high-performance backend powered by Bohrium using either OpenMP (CPU) or OpenCL (GPU), and runs on distributed architectures via MPI.

A good starting point to gain an overview of Veros' design, performance, and capabilities are these slides of a talk on Veros held during the 98th Annual Meeting of the American Meteorological Society.

The underlying numerics are based on pyOM2, an ocean model developed by Carsten Eden (Institut für Meereskunde, Hamburg University). Veros is currently being developed at Niels Bohr Institute, Copenhagen University.

How about a demonstration?

0.25×0.25° high-resolution model spin-up

(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 to choose from
  • 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 netCDF output)
  • pre-configured idealized and realistic set-ups that are ready to run and easy to adapt
  • accessibility, readability, and extensibility - thanks to the power of Python!

Veros for the impatient

A minimal example to install and run Veros:

$ pip install veros
$ veros copy-setup acc --to /tmp
$ cd /tmp/acc
$ python 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 Veros 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:

$ 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 as scripts, e.g. through

$ python 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 nice setup, fixed a bug, or even extended Veros' core mechanics. There are two 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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].