veros

The versatile ocean simulator, in pure Python, powered by JAX.

MIT License

Downloads
371
Stars
309
Committers
12

Bot releases are visible (Hide)

veros - v1.5.1 Latest Release

Published by dionhaefner about 1 year ago

What's Changed

Full Changelog: https://github.com/team-ocean/veros/compare/v1.5.0...v1.5.1

veros - v1.5.0

Published by dionhaefner about 1 year ago

What's Changed

Full Changelog: https://github.com/team-ocean/veros/compare/v1.4.6...v1.5.0

veros - v1.4.6

Published by dionhaefner over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/team-ocean/veros/compare/v1.4.5...v1.4.6

veros - v1.4.5

Published by dionhaefner about 2 years ago

What's Changed

Full Changelog: https://github.com/team-ocean/veros/compare/v1.4.4...v1.4.5

veros - v1.4.4

Published by dionhaefner about 2 years ago

What's Changed

Full Changelog: https://github.com/team-ocean/veros/compare/v1.4.3...v1.4.4

veros - v1.4.3

Published by dionhaefner over 2 years ago

What's Changed

Full Changelog: https://github.com/team-ocean/veros/compare/v1.4.2...v1.4.3

veros - v1.4.2

Published by dionhaefner about 3 years ago

Extension modules are now optional as intended.

veros - v1.4.1

Published by dionhaefner about 3 years ago

Bumped dependencies, fixes a path issue on some systems.

veros - v1.4.0

Published by dionhaefner about 3 years ago

The following setups are not part of the main Veros repository anymore:

  • acc_sector
  • fjord
  • wave_propagation

They are now found in the veros-extra-setups plugin.

veros - v1.3.4

Published by dionhaefner over 3 years ago

  • Benchmarks now use at most 120 vertical layers
  • Runtime settings are now correctly parsed from environment variables
veros - v1.3.3

Published by dionhaefner over 3 years ago

  • biharmonic_friction_cosPower now works as intended (a value of 3 has a total impact of cos(lat)^3, not cos(lat)^6).
  • Added multi-GPU support to benchmarks (via -c jax-gpu-mpi).
veros - v1.3.2

Published by dionhaefner over 3 years ago

Changes

  • New setting biharmonic_friction_cosPower to scale biharmonic friction with latitude
  • New runtime setting monitor_streamfunction_residual to switch off convergence checks in PETSc solver
  • Restart files are never written in the first iteration
veros - v1.3.1

Published by dionhaefner over 3 years ago

Source distributions now include files missing in v1.3.0.

veros - v1.3.0

Published by dionhaefner over 3 years ago

This is a huge release with many breaking changes.

Setups written for previous versions of Veros will not be compatible with this version.

New versioning scheme

  • We have decided to add +1 to the Veros version. Veros has been at a stage where it is mature enough for scientific applications for a while, and we feel that a version 1.x.x reflects that better than 0.x.x.

Major changes

  • A new command line interface to execute Veros setups: $ veros run mysetup.py
  • Bohrium is now replaced with JAX. JAX is easier to install and provides better performance on CPU and GPU.
  • Overhauled the internal data model. All model state is now encapsulated in a VerosState object that can be passed around and inspected.
  • Major performance increases on GPU.
  • The PETSc linear solver now works on GPUs.
  • Explicit support for custom variables and dimensions.
  • Many bug fixes and quality-of-life improvements.
  • Asset files are now in JSON format.

Internal changes

  • Enforcing of a code formatting standard via flake8 and black.
  • Hand-written TDMA kernels (CUDA kernel by @sefrin).
  • A more robust testing suite.
  • Better modularity of diagnostics and model restarts.
veros - v0.2.3

Published by dionhaefner over 3 years ago

This is the last release before replacing Bohrium with JAX, and before switching to a new versioning scheme.

Besides some bug fixes and tweaks this also introduces the setup acc_basic (a simplified version of ACC).

veros - v0.2.2

Published by dionhaefner over 4 years ago

Changes

  • Assets are now downloaded the first time they are accesses (instead of during import)
  • Dependencies are pinned by default
  • Streamfunction solver uses a new ILU preconditioner that shows very good performance. PyAMG support has been dropped.
  • Linear solver can now be chosen via the VEROS_LINEAR_SOLVER environment variable.
  • Wind stress (surface_taux, surface_tauy) now has the correct units in output files.
  • global_4deg setup now has an ITF (Indonesian Throughflow).
  • Fixed critical bugs related to wind stress in acc and global_flexible setups.
veros - v0.2.1

Published by dionhaefner almost 5 years ago

Changes

  • A new plugin system that supports external development on Veros
  • Diagnostics now have their own log level to make sure output is displayed in most cases
  • Veros now supports system-wide setup folders that can be discovered by veros copy-setup
  • Fixed bugs in overturning diagnostic
  • Potential density is now computed as a model variable
  • Fixed missing attributes on netCDF outputs
  • Tweaked documentation
veros - v0.2.0

Published by dionhaefner over 5 years ago

This is a huge release with many exciting changes!

This release is not backwards-compatible. Setups created with v0.1.x will have to be rewritten to work with this version.

Changes

  • Veros now fully supports distributed architectures through MPI, for both NumPy and Bohrium backends. If you have MPI installed, just run something like

    $ mpirun -n 4 python mysetup.py -n 2 2
    

    to get started.

  • A new realistic flexible resolution setup (global_flexible) that automatically adapts to the chosen resolution. Just choose a resolution and time step and that's it! Also comes with automatic removal of marginal seas.

  • Better output and logging capabilities: terminal colors, a progress bar and throughput indicator, more verbosity options.

  • A re-implementation of the island routines, which are now faster and more stable.

  • A fully distributed Poisson solver via PETSc that is over 10x faster than PyOM's solver.

  • netCDF output via HDF5, so libnetcdf is not a dependency anymore.

  • The old Veros base class is now separated into VerosSetup (containing all setup-specific logic) and VerosState (holding the model settings and variables).

  • Global runtime settings:

    from veros import runtime_settings as rs
    
    rs.backend = 'bohrium'
    
  • Polished documentation.

  • Various code quality improvements and polish.

Removed features

  • Dropped Python 2 support.

  • Removed Eady setup.

  • Removed logfile argument.

veros - v0.1.1

Published by dionhaefner over 6 years ago

Veros on PyPI

Veros is now installable via pip! This allows you to get started with Veros in lightning speed:

$ pip install veros
$ veros copy-setup --to /tmp
$ python /tmp/acc/acc.py

Other changes

  • Command line interfaces are now based on click instead of argparse.

  • Unless explicitly told, Veros does not consume any arguments from the command line any more. In setups meant to be run interactively, you can add the following to parse command line arguments:

    @veros.tools.cli
    def run(*args, **kwargs):
        simulation = MySetup(*args, **kwargs)
        simulation.setup()
        simulation.run()
    
    
    if __name__ == "__main__":
        run()
    
  • Setup assets (i.e., external binary files required to run the standard setups) are now downloaded on demand to $HOME/.veros, or to wherever the environment variable VEROS_ASSET_DIR pointed when Veros was imported.

  • Git LFS is not required anymore.

  • Veros is now licensed under a MIT license.

veros - v0.1.0

Published by dionhaefner almost 7 years ago

The first official release of Veros!

All core routines in this version are more or less direct (vectorized) translations of their respective pyOM 2.1.0 counterpart.

The code is optimized for use with NumPy or Bohrium, using either the OpenMP or OpenCL backend.

Supports both Python 2.7 and 3.x, but you might run into issues with Bohrium on Python 3.x.