Skip to content

GVVM (GPU-accelerated Vector Vorticity Model)

GVVM is a GPU-accelerated, Kokkos-based C++ implementation of the Vector Vorticity equation cloud-resolving Model (VVM). It uses MPI for domain decomposition, CUDA (via Kokkos) on NVIDIA GPUs in current configurations, and ADIOS2 for I/O.

The source code is at VVM_GPU_CPP.

Features

  • 3D cloud-resolving dynamics — Vector vorticity formulation with configurable tendencies, sponge layer, and idealized test modes.
  • Microphysics: Modified P3 Scheme Based on the E3SM EAMxx lineage, but with major architectural restorations. We have explicitly restored the vapor-cloud water (\(q_v \leftrightarrow q_c\)) conversion processes (condensation/evaporation/deposition/sublimation) from the original Fortran P3 formulation. Read the details of our P3 modifications here.
  • Radiation — RRTMGP (E3SM EAMxx lineage, Kokkos-enabled build).
  • Turbulence and surface — Subgrid turbulence and surface flux options.
  • Land — Noah land surface model (Fortran OpenACC), with contributions from the Central Weather Administration (CWA) of Taiwan.
  • Taiwan-oriented workflows — NetCDF-based topography and land fields; see TaiwanVVM.

Documentation map

Section Description
Quick Start Dependencies, build, first run
User guides JSON configuration and I/O
Developer guides Architecture and physics hooks
Examples Idealized tests and Taiwan setups

Source repository

Clone and build instructions use the project root layout (CMakePresets.json, src/, rundata/). The upstream repository is VVM_GPU_CPP on GitHub.

License

This project is licensed under the Apache License 2.0.

Contact

For bugs, feature requests, or contributions, open an issue on the GitHub repository. For questions about the model or usage: B08209006@ntu.edu.tw.