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