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