1. Praveen C
  2. ug3


Clone wiki

ug3 / Home

Welcome to the UG3 code website

UG3 is a parallel 3-D finite volume code for compressible flows on unstructured grids. It solves compressible Euler and Navier-Stokes equations. The code is written in simple modern Fortran. Parallelization is achieved using PETSc data structures. Our goal is to write an efficient code that can be used to build an efficient adjoint solver using automatic differentiation.

Access to UG3 is restricted. If you have access to it, you can read the code here or clone it to your computer

git clone git@bitbucket.org:cpraveen/ug3.git

For the above to work, you must have copied your ssh public key into your Bitbucket account, which is highly recommended. You can also get the code via https

git clone https://bitbucket.org/cpraveen/ug3.git

and you will be prompted to enter your Bitbucket username/password.

To make use of ug3, you will need

  • ug3exa: Collection of examples
  • ug3pre: Grid preprocessor and Metis-based partitioner

Note: The code in directory src_ser is the serial code which is no longer updated. Use the parallel version of the code in src_mpi which can also run on a single processor.

UG3 features

The current features of the code are:

  • 2/3-d compressible Euler and Navier-Stokes equations
  • Unstructured grids containing tetrahedra, pyramid, prism and hexahedra
  • Vertex-centered finite volume scheme
  • Numerical fluxes: Rusanov, HLLC, Roe, KEPEC
  • Second order by MUSCL approach for inviscid fluxes
  • Compact discretization of diffusive fluxes
  • Explicit time stepping: SSPRK3, SSPRK43, Petsc TS (adaptive time stepping)
  • Parallelization using Metis, MPI and PETSc
  • Visualization using VTK, HDF5+XDMF

Future development will include the following

  • LES models
  • Spalart-Allmaras turbulence model
  • Implicit time integration
  • Adjoint solver using automatic differentiation

Roadmap for code development

  1. Grid preprocessor for serial computations (completed)
  2. Serial, explicit code for Euler on hybrid grids (completed)
  3. Parallel, explicit Euler code using PETSc (completed)
  4. Grid preprocessor for parallel computations (completed)
  5. Laminar Navier-Stokes equation
  6. LES models
  7. RANS with Spalart-Allmaras model
  8. Implicit time integration schemes using PETSc


  1. Numerical scheme
  2. Grid preprocessor
  3. Running the code
  4. Discussion group
  5. Coding style guide
  6. Trouble shooting


2-D, Inviscid

  1. Isentropic vortex
  2. NACA0012 airfoil
  3. Cylinder

3-D, Inviscid

  1. Onera M6 wing
  2. RAE A plane
  3. YF17 fighter plane


If you are interested to contribute, contact the code developer by email.