-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
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):
- Jive (and therefore, falcon) does not have any global dof numbering.
- 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
- Node numbering starts from 1
- Nodes numbering is contiguous
- All nodes have same number of dofs
- 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)
Reactions are currently unavailable