Consolidated the ConGrad operator into a universal operator.
Issue/feature addressed
Consolidated the ConGrad operator into a universal operator.
Proposed solution
Also fixed issues related to the consolidation.
Implementation
A single implementation of the ConGrad operator now exists making long term maintanence easier.
Tests
All test pass.
Suggested reviewers
Notes
The SerialStdMat implementation will not work when built under AVX. Normally the input and output fields can be used directly. When using AVX and intermediate Nektar::Array must be used because of the alignment differences. The work around is surrounded by an
#if defined(NEKTAR_ENABLE_SIMD_AVX2) || defined(NEKTAR_ENABLE_SIMD_AVX512)
There should be a better way to deal with the alignment differences. For now it works because the alignment differences can be detected.
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 Allen Sanderson