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

Trilinos solver support #18

Open
12 tasks
ritukeshbharali opened this issue Mar 25, 2024 · 0 comments
Open
12 tasks

Trilinos solver support #18

ritukeshbharali opened this issue Mar 25, 2024 · 0 comments
Labels
external libraries help wanted Extra attention is needed

Comments

@ritukeshbharali
Copy link
Owner

Currently, external linear algebra support is limited to sequential cases. The idea is therefore, to expand it towards distributed-memory (MPI) solvers. Trilinos is good option, since it contains several packages as well as provides interfaces to third-party solvers.

In future, the sequential third-party solvers integrated in falcon may be deprecated.

Caveat(s):

  1. Jive (and therefore, falcon) does not have any global dof numbering.
  2. Unless Trilinos is added to Jive backend, the implementation would involve duplication of data (e.g., same matrix, vector as Jive and Trilinos types)

Assumption(s): Some basic assumptions that will be relaxed in later developments

  1. Node numbering starts from 1
  2. Nodes numbering is contiguous
  3. All nodes have same number of dofs
  4. Non-overlapping domain decomposition

Here is the workflow:

  • Prepare a list of owned, relevant nodes
  • Enumerate global dofs (using node IDs)
  • Map local-global dofs
  • Create Epetra/Tpetra maps (owned, relevant)
  • Create FECrsMatrix (since, it allows any processor to contribute any data)
  • Copy Jive matrix data to FECrsMatrix
  • Create Vectors for lhs and rhs
  • Copy data
  • Create a configurable solver using Stratimikos
  • Solve
  • Gather locally relevant data using 'relevant' map
  • Copy solution to Jive vector (for post-processing, next iterative loop)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external libraries help wanted Extra attention is needed
Projects
Status: To-do
Development

No branches or pull requests

1 participant