[Trilinos-Users] Block Vectors and Matrices
Cihan Altinay
c.altinay at uq.edu.au
Thu Apr 21 21:07:56 EDT 2016
Dear Trilinos Devs,
Further to my initial queries in February I have now finally started in
earnest trying to use the (experimental) Tpetra block matrix and vector
classes and I am encountering some issues.
To give some context, our project (escript [1]) is a FEM tool which
currently comes with its own solvers, however we'd like to incorporate
Trilinos as much as possible in the future to benefit from the wealth of
preconditioners and solvers.
To date I have successfully integrated the Tpetra stack with Belos and
Amesos2 solvers, as well as Ifpack2 & MueLu preconditioners for single
DOF per node matrices (i.e. block size 1). Now I am trying to add
support for block sizes > 1 (always constant-sized square blocks) using
Tpetra's BlockCrsMatrix & BlockVector, while keeping the interface as
similar as possible.
Here are the questions/issues:
0) Is there an example for solving a block system using the experimental
classes somewhere?
1) I have been initializing the "regular" vectors using ArrayViews from
local std::vectors. The BlockVector does not have a constructor that
takes an ArrayView - do I need to create a regular Vector first, then
pass that to the BlockVector constructor or is there a more direct way?
2) Unlike regular CrsMatrix/Vector the Block versions appear to take
references to graph, map and vectors rather than RCPs. This is not
really a problem but is there a reason for this?
3) The block matrix does not appear to support resumeFill() or
fillComplete(). Are these not required?
4) Is there a MatrixMarket interface for the block matrix yet? That
would ease debugging since I could dump to file...
Thanks for all hints,
Cihan
[1] https://launchpad.net/escript-finley
More information about the Trilinos-Users
mailing list