MatCreateComposite#

Creates a matrix as the sum or product of one or more matrices

Synopsis#

#include "petscmat.h" 
PetscErrorCode MatCreateComposite(MPI_Comm comm, PetscInt nmat, const Mat *mats, Mat *mat)

Collective

Input Parameters#

  • comm - MPI communicator

  • nmat - number of matrices to put in

  • mats - the matrices

Output Parameter#

  • mat - the matrix

Options Database Keys#

  • -mat_composite_merge - merge in MatAssemblyEnd()

  • -mat_composite_merge_mvctx - merge Mvctx of component matrices to optimize communication in MatMult() for ADDITIVE matrices

  • -mat_composite_merge_type - set merge direction

Note#

Alternative construction

For the multiplicative form the product is mat[nmat-1]mat[nmat-2]….*mat[0]

See Also#

Matrices, Mat, MatDestroy(), MatMult(), MatCompositeAddMat(), MatCompositeGetMat(), MatCompositeMerge(), MatCompositeSetType(), MATCOMPOSITE, MatCompositeType

Level#

advanced

Location#

src/mat/impls/composite/mcomposite.c

Examples#

src/mat/tutorials/ex9.c
src/ksp/pc/tutorials/ex4.c


Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages