Skip to content

Trilinos solver support #18

@ritukeshbharali

Description

@ritukeshbharali

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)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions