Skip to content

Iterative solvers using Local storage

Spencer Sherwin requested to merge ssherw/nektar:Feature/LocalIterSolves into master

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).
Edited by Spencer Sherwin

Merge request reports