/Multiphysics

Discontinuous Galerkin FEM Runge-Kutta solver for hyperbolic systems of equations, in particular for shallow water equations.

Primary LanguageC++

MATH 0471: Multiphysics integrated computational project

Build Status Maintenance

Description

This repository contains the implementation of the Discontinuous Galerkin method (DG) applied to systems of possibly coupled non-linear hyperbolic equations, i.e. to physical conservative systems. The geometry is currently assumed to be two-dimensional. The targeted physical application was chosen to be the shallow water equations, but any new system of equations can easily be implemented, by adding new physical fluxes or sources.

The time-integration process is explicit, and uses Runge-Kutta algorithms, up to the fourth order. The mesh is handled using Gmsh, and Eigen is used for the linear algebra operations. Please note that edges of the elements in the mesh are assumed to be straight.

The code is currently parallized locally using OpenMP, such that it can be run on HPC clusters.

This project was part of the 2018-2019 Multiphysics integrated computational project course. Here is a link of the problem statement. The authors are ImperatorS79, tgregov and jmarichal.

Useful information

Some useful information can be found on the wiki. In particular, a small (uncomplete) description of the physical parameters that can be introduced in the context of the shallow water equations is provided.

Compilation procedure

The project use CMake to manage the build system. The run directory contains some predefined configuration for various platforms.

Do not forget to install the Gmsh 4.4.0 SDK as well as the Eigen 3.3.7 SDK on your system.

On NIC4/VEGA

Connect to NIC4/VEGA (using SSH for instance). Then, clone the repositoy:

git clone https://github.com/tgregov/Multiphysics

Move to the code repository:

cd ./Multiphysics

Automatically build the code (<cluster> is either vega or nic4):

. ./build_cluster.sh <cluster>

Submit a batch file for one of the simulations

cd ../simulations
sbatch runObstacleSquare.sh