Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tpetra Solver and Preconditioner wrappers #16636

Open
4 of 12 tasks
jpthiele opened this issue Feb 12, 2024 · 1 comment
Open
4 of 12 tasks

Tpetra Solver and Preconditioner wrappers #16636

jpthiele opened this issue Feb 12, 2024 · 1 comment

Comments

@jpthiele
Copy link
Contributor

jpthiele commented Feb 12, 2024

This is to track a subset of #15979 namely the direct solvers from Amesos2, the iterative solvers from Belos and the preconditioners from Ifpack2 (and maybe other packages)

All these packages provide factories that return a subclass with an actual implementation given its name,
e.g. Amesos2.create("MUMPS",....).

Due to this the general structure is as follows:

  • A base class, e.g. SolverDirectBase that implements all the actual solve/vmult/apply functions with the respective Tpetra base class
  • A general subclass, e.g. SolverDirect that allows the user to pass the solver name as well as a Teuchos::ParameterList for full control and support for everything the actual Trilinos installation provides
  • Specific subclasses for the most commonly used solvers and preconditions with individual AdditionalData objects
    that expose the most useful parameters (or all).

So for tracking purposes

  • SolverDirectBase
    • implemented
    • merged
  • SolverDirect
    • implemented
    • merged
  • PreconditionBase
    • implemented
    • merged
  • Precondition
    • implemented
    • merged
  • SolverIterativeBase
    • implemented
    • merged
  • SolverIterative
    • implemented
    • merged
@jpthiele
Copy link
Contributor Author

In addition we will need conversion functions to use the solvers with built-in Vector classes

  • Vector<Number> to LinearAlgebra::TpetraWrappers::Vector<Number>
  • LinearAlgebra::distributed::Vector<Number> to LinearAlgebra::TpetraWrappers::Vector<Number>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant