Inciter
Euler and Navier-Stokes solvers for engineering flows
Inciter contains multiple flow solvers for complex 3D engineering geometries specialized to different families of problems. The software implementation facilitates effective use of any multi-CPU computer from a laptop to the largest distributed-memory machines, combining data-, and task-parallelism on top of the Charm++ runtime system. Charm++'s execution model is asynchronous by default, allowing arbitrary overlap of computation and communication. Built-in automatic load balancing enables redistribution of arbitrarily heterogeneous computational load based on real-time CPU load measurement at negligible cost. The runtime system also features automatic checkpointing, fault tolerance, resilience against hardware failure, and supports power-, and energy-aware computation.
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, useful for effective cache utilization and automatic load balancing. The solution along partition boundaries, that exists on multiple processing elements, is made consistent with asynchronous communication which hides latencies by enabling overlapping of computation and communication.
Solvers
Inciter contains the following solvers. The numerical methods all belong to the family of continuous Galerkin finite element methods storing solution values at nodes of the computational mesh. See below for more details on how the various solvers are specialized.
RieCG: for accurate simulation of energetic, high-speed, compressible, inviscid flows
Solves the Euler equations modeling highly compressible inviscid flows. Compared to KozCG, RieCG uses a super-edge-based implementation of the finite element operators to reduce indirect addressing and thus to increase performance. It also contains a Riemann solver with a configurable numerical flux and piecewise limited solution reconstruction to ensure second order numerical accuracy. RieCG uses explicit three-stage Runge-Kutta time integration. More details: method, V&V, performance.
KozCG: a simple implementation of a finite element method for compressible flows
Solves the Euler equations modeling highly compressible inviscid flows. Compared to RieCG, KozCG contains a simpler, element-based implementation of the continuous Galerkin finite element operators. This is combined with Taylor-Galerkin stabilization and explicit single-step Euler time marching. The solver employs flux-corrected transport to ensure oscillation-free solutions with second order numerical accuracy. Compared to RieCG, KozCG does not require a Riemann solver or explicit gradient computations. More details: method, V&V.
ZalCG: for fast simulation of energetic, high-speed, compressible, inviscid flows
Solves the Euler equations modeling highly compressible inviscid flows. Similar to RieCG, ZalCG also employs a super-edge-based implementation of the finite element operators to reduce indirect addressing compared to element-based loops, but uses the cheaper Taylor-Galerkin numerical flux to stabilize advection. This is combined with flux-corrected transport (implemented over edges, compared to the element-based loops in KozCG) to avoid unphysical numerical oscillations. Since this solver does not require Riemann solvers or gradient computations it is generally faster than RieCG and KozCG. ZalCG can further save CPU time by dynamically deactivating inactive partitions of the computational mesh during parallel flow simulations of propagation phenomena, e.g., detonations or scalar transport. The parallel imbalance is then homogenized by Charm++'s built-in load balancers. More details: method, V&V, performance.
LaxCG: for energetic, high-speed, compressible, inviscid flows at all Mach numbers
Solves the Euler equations modeling compressible inviscid flows. The solver in LaxCG is very similar to RieCG, but LaxCG applies a time-derivative preconditioning technique to enable computation of flows and flow regions at all Mach numbers. More details: method, V&V.
ChoCG: for accurate simulation of constant-density, inviscid or viscous flows
Solving the Navier-Stokes equation modeling constant-density viscous flows, ChoCG enforces the divergence-free constraint by solving a Poisson equation for the pressure increment in time and projecting the velocity field to a divergence-free subspace. The advection and divergence operators, resulting from the continuous Galerkin finite element discretization, are stabilized by edge-based consistent numerical fluxes. More details: method, V&V, performance.
LohCG: for fast simulation of constant-density, inviscid or viscous flows
Solving the Navier-Stokes equation modeling constant-density viscous flows, LohCG is similar to ChoCG, but enforces the divergence-free constraint by recasting the elliptic problem of the Poisson equation to a hyperbolic/parabolic system using an artificial compressibility technique. The method is stabilized by artificial viscosity. This yields a numerical method that can be 100x faster than ChoCG and also scales better to larger problems and larger resources. More details: method, V&V, performance.