About

The dream package is a Python extension for NGSolve designed to address challenges in computational fluid dynamics. Its primary focus is on simulating aeroacoustics, such as the sound waves generated by flows around bluff bodies. The following figure illustrates this phenomenon, showcasing the velocity of a flow around a cylinder (left) and the resulting induced acoustic pressure waves (right).

Centered image

Magnitude of the velocity for a flow around a cylinder (left) and induced acoustic pressure waves (right).

Aeroacoustic phenomena near bluff bodies arise due to viscous effects governed by the compressible Navier-Stokes equations. The dream solver addresses these equations using a (Hybridized) Discontinuous Galerkin method. We use a method of lines approach, combining a (discontinuous) polynomial approximation with a time-marching scheme.

Although the solver is designed for complex problems, its standout feature is its flexibility and user-friendly interface, enabling straightforward adaptations and modifications.

Key Features of the dream Solver

  • Supports arbitrary-order polynomial approximations for conservative quantities.

  • Various boundary conditions, including non-reflecting characteristic conditions tailored for aeroacoustics.

  • Pre-implemented Riemann solvers, applicable to both DG and HDG methods.

  • Supports fully implicit, explicit, and splitting-based time-marching schemes.

  • Easy to use pre- and post-processing tools.

Work in progress

  • Expand capabilities to handle incompressible flows.

  • Simplify the integration of Perfectly Matched Layers (PML) and acoustic sponge layers for enhanced wave absorption.

  • Develop advanced space-time marching schemes tailored for hybridized DG methods.