Skip to content

Matrix-Free operator for LinearAdvectionDiffusionReaction

Issue/feature addressed

Enable Collections grouping for ADR operator to enable faster (Matrix-Free) runs for the Implicit Velocity-Correction scheme (VCSImplicit) in IncNavierStokesSolver.

Proposed solution

Add the operator similar to the Helmholtz implementations in Collections, however, including an AdvectionKernel. This new kernel requires time-dependent varcoeffs i.e. advection velocities. Therefore, this MR is based on !1701 (merged) which adds an interface for varcoeffs to Collections.

Implementation

Most changes are analogous to the Helmholtz operator, however, the matrix-free routine requires interleaving of the advection velocities. The interleaving is done inside the Collections library for the matrix-free ADR operator.

Tests

  • Test based on existing VCSImplicit test which uses the Matrix-free routines instead of StdMatrix

Suggested reviewers

@CFD-Xing (familiar with !1701 (merged)) @dmoxey

Notes

Checklist

  • Functions and classes, or changes to them, are documented.
  • User guide/documentation is updated.
  • Changelog is updated.
  • Suitable tests added for new functionality.
  • Contributed code is correctly formatted. (See the contributing guidelines).
  • License added to any new files.
  • No extraneous files have been added (e.g. compiler output or test data files).
Edited by Henrik Wustenberg

Merge request reports