Skip to content

Latest commit

 

History

History
35 lines (26 loc) · 1.77 KB

README.md

File metadata and controls

35 lines (26 loc) · 1.77 KB

StartUpDG

Docs-stable Docs-dev Build status Codecov

Routines to initialize reference element operators, physical mesh arrays, and connectivity for nodal discontinuous Galerkin (DG) methods. Codes roughly based on Nodal Discontinuous Galerkin Methods by Hesthaven and Warburton (2007). Original port from Matlab to Julia by Yimin Lin. SBP nodal points were contributed by Ethan Kubatko and Jason Hicken.

This package is registered, so you can install it via ] add StartUpDG.

Usage overview

Variables are contained within structs rd::RefElemData and md::MeshData, which contain quantities from Globals1D, Globals2D, Globals3D in the Nodal DG book codes. These can be used to compute DG derivatives, and are useful for matrix-free implementations of DG methods using explicit time-stepping.

using StartUpDG

# polynomial degree and mesh size
N = 3
K1D = 8

# init ref element and mesh
rd = RefElemData(Tri(), N)
VXY, EToV = uniform_mesh(Tri(), K1D)
md = MeshData(VXY, EToV, rd)

# Define a function by interpolation
@unpack x, y = md
u = @. 2 + .5*exp(-100*(x^2 + y^2))

# Compute derivatives using geometric mapping + chain rule
@unpack Dr, Ds = rd
@unpack rxJ, sxJ, J = md
dudx = (rxJ .* (Dr*u) + sxJ .* (Ds*u)) ./ J