[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