Navier-Stokes solver for complex domains
Inciter is a fully asynchronous distributed-memory-parallel fluid solver for complex engineering geometries. Computational domains of arbitrary shapes are discretized into tetrahedron elements and decomposed into small chunks assigned to different CPUs. The number of chunks may be more than the number of CPUs allowing overdecomposition. The solution along partition boundaries, that exists on multiple processing elements, is made consistent with asynchronous communication which enables overlapping parallel computation, communication, input, and output (I/O).
Inciter is used to research asynchronous algorithms for fluid dynamics and to experiment with coupling asynchronous to bulk-synchronous parallel code, e.g., Charm++ code to MPI-only libraries. We are working on a Navier-Stokes solver for compressible gases. The equations governing the conservation of mass, momentum, and energy are discretized using continuous and discontinuous Galerkin finite element methods. We are implementing solution-adaptive mesh-, and polynomial-degree refinement to enable dynamically concentrating compute resources to regions with interesting phenomena such as vortices or large gradients. Combining these features we are exploring how to scale such high-load-imbalance simulations, representative of production multiphysics codes, to large problems on large computers using Charm++'s automatic load balancing capabilities.