Hedge

Hedge

Hybrid and Easy Discontinuous Galerkin Environment

hedge.png

hedge is an unstructured, high-order, parallel Discontinuous Galerkin (DG) code that I am developing as part my PhD project. hedge's design is focused on two things: being fast and easy to use. While the need for speed dictates implementation in a low level language, these same low-level languages become quite cumbersome at a higher level of abstraction. This is where the "h" in hedge comes from; it takes a hybrid approach. While a small core is written in C++ for speed, all user-visible functionality is driven from Python.

Features

Since everybody loves bulleted lists, here's one for you. Hedge:

  • Supports simplicial unstructured meshes in two and three dimensions (i.e. triangles and tetrahedra)
  • Approximates using orthogonal polynomials of any degree you specify at runtime
  • Solves your problem in parallel using MPI
  • Comes with canned operator templates for
    • Wave equation
    • Heat equation
    • Poisson equation
    • Maxwell's equations
  • Makes it really simple to roll your own operators using friendly, mathematically-oriented (and dimension-independent, if desired) notation
  • Visualizes your solutions in parallel with XML-based VTK or Silo files. It directly supports Paraview and Visit.
  • Runs on your Nvidia CUDA-capable graphics card.

Documentation

We have

Support

If you run into trouble, chances are that someone on the mailing list can help you.

License and Availability

hedge is available under the terms of the MIT License and is built using components that have source code available for free. (Sadly, the mesh generators and partitioner are not strictly open-source, but everything else is.)

Curious? Follow the simple build instructions on the wiki (see above).

Release downloads are available form Hedge's Python Package Index page.

You may also peek at the development version in my source control archive. To check out a copy, type:

git clone http://git.tiker.net/trees/hedge.git

Why is GPU Computing significant?

In my opinion, GPU computing is significant because I--as a grad student--can easily afford a machine that allows me to perform a simulation like the following in 40 minutes instead of a whole workday. That's why.

If you're curious, this shows the density of a vortex shedding flow behind a square obstacle at Re=100 and Ma=0.1. The attentive viewer may notice a sound wave at the beginning as the system settles from uniform flow to flow around the obstacle, as well as the passing of a gentle density "nudge" intended to throw the system off balance and accelerate the onset of shedding. This was computed using my Discontinuous Galerkin solver hedge on an Nvidia GTX 260.

This work owes a lot to Hendrik Riedmann from IAG, Uni Stuttgart who wrote the initial version of the Navier-Stokes operator in hedge.

(Btw: did you notice how the movie cleverly avoids the typical criticism of being "CFD"--colorful fluid dynamics? :-)