Feature/redesign restructure
Issue/feature addressed
I found it hard to follow the structure of the redesign when all operators were in a flat directory structure. So I have introduced ElmtOps, PreconOps, GlobalLinSysOps, BndCondOps to provide a bit of design structure and clean up some of the top level structure. I have also put in some more generic directories called Common, MathKernels and a seperate one for Field
Proposed solution
This requires modification of the Cmake constructor design which was providing the directory names into a macro to generate bioler plate code. We now need to pass the directories into this macro and it then searches for the directory names of the operators
Implementation
Apart from the Cmake code modification it also required the include paths to be renamed. Also, the Kokkos backend is now fully a build option with a consistent implementation to the CUDA and AVX backends.
Tests
Check it was running all current tests
Suggested reviewers
Jacques, Boyang
Notes
Have merged in Boynange Helmholtz SumFac branch which fixed the AVX tests.
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).