Iterative solvers using Local storage
Issue/feature addressed
Introduce an iterative Conjugate Gradient and GMRES solvers that keep the solution field in a local storage format. Also extended diagonal preconditioner to also do a Jacobi version.
Proposed solution
Ensure that local storage information is passed into SolveLinearSystem and then introduce a local format of the CG and GMRES solvers. This has required a new functor to be used called AssembleLoc which takes a local vector, assembles it into global storage and then copies the informaiton back to the local format. This is primarily where communication takes place although it is also still required in the precodnitioners. The preconditioner also requires knowledge of whether the dates is input in local or global format.
Implementation
Introcuded two new methods in LibUtilities/LinearAlgebra. Also had to modify the GlobalLinSysXXX and PreconditionerXXX methods to recognise the are now two formats for the SystemlinearSolve and the preconditioners.
Tests
I have modified some existing tests to use this option
Suggested reviewers
Chris & Jacques
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).