MatCreateTile#
Explicitly build a matrix from four blocks, G = [ aA bB; cC dD ].
Synopsis#
#include "slepcsys.h"
PetscErrorCode MatCreateTile(PetscScalar a,Mat A,PetscScalar b,Mat B,PetscScalar c,Mat C,PetscScalar d,Mat D,Mat *G)
Collective
Input Parameters#
A - matrix for top-left block
a - scaling factor for block A
B - matrix for top-right block
b - scaling factor for block B
C - matrix for bottom-left block
c - scaling factor for block C
D - matrix for bottom-right block
d - scaling factor for block D
Output Parameter#
G - the resulting matrix
Notes#
In the case of a parallel matrix, a permuted version of G is returned. The permutation is a perfect shuffle such that the local parts of A, B, C, D remain in the local part of G for the same process.
Matrix G must be destroyed by the user.
The blocks can be of different type. They can be either ConstantDiagonal, or a standard type such as AIJ, or any other type provided that it supports the MatGetRow operation. The type of the output matrix will be the same as the first block that is not ConstantDiagonal (checked in the A,B,C,D order).
See Also#
MatCreateNest()
Level#
developer
Location#
Index of all Sys routines Table of Contents for all manual pages Index of all manual pages