Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
solver_graph.cpp File Reference

A whole time step (time-step reduction, halo exchanges, stages) as one CUDA graph, launched once per step. More...

#include "solver.h"
#include <limits>
#include <stdexcept>
#include <string>
#include <Kokkos_Core.hpp>
#include "device_comm.h"
#include "log.h"

Detailed Description

A whole time step (time-step reduction, halo exchanges, stages) as one CUDA graph, launched once per step.

Author
Matthew Bonanni (mbona.nosp@m.nni0.nosp@m.01@gm.nosp@m.ail..nosp@m.com)
Version
0.1
Date
2026-10-05

The step's kernels are captured once and replayed: dt then lives on the device (computed there with the host's arithmetic), the halo exchanges and the dt reduction are NCCL operations on the same stream, and the host waits once per step, for dt. Steps whose host work depends on the time (boundary or source expressions of t, characteristic boundaries, average-pressure outlets) or that need host decisions inside the step (gas mixtures, chemistry) run kernel by kernel as before.