MatConvert#
Converts a matrix to another matrix, either of the same or different type.
Synopsis#
#include "petscmat.h"
PetscErrorCode MatConvert(Mat mat, MatType newtype, MatReuse reuse, Mat *M)
Collective
Input Parameters#
mat - the matrix
newtype - new matrix type. Use
MATSAME
to create a new matrix of the same type as the original matrix.reuse - denotes if the destination matrix is to be created or reused. Use
MAT_INPLACE_MATRIX
for inplace conversion (that is when you want the input mat to be changed to contain the matrix in the new format), otherwise useMAT_INITIAL_MATRIX
orMAT_REUSE_MATRIX
(can only be used after the first call was made withMAT_INITIAL_MATRIX
, causes the matrix space in M to be reused).
Output Parameter#
M - pointer to place new matrix
Notes#
MatConvert()
first creates a new matrix and then copies the data from
the first matrix. A related routine is MatCopy()
, which copies the matrix
entries of one matrix to another already existing matrix context.
Cannot be used to convert a sequential matrix to parallel or parallel to sequential, the MPI communicator of the generated matrix is always the same as the communicator of the input matrix.
See Also#
Matrices, Mat
, MatCopy()
, MatDuplicate()
, MAT_INITIAL_MATRIX
, MAT_REUSE_MATRIX
, MAT_INPLACE_MATRIX
Level#
intermediate
Location#
Examples#
src/ksp/ksp/tutorials/ex72.c
src/ksp/ksp/tutorials/ex79.c
src/ksp/ksp/tutorials/ex34.c
src/ksp/ksp/tutorials/ex27.c
src/ksp/ksp/tutorials/ex77.c
src/ksp/ksp/tutorials/ex81.c
src/ksp/ksp/tutorials/ex71.c
src/ksp/ksp/tutorials/ex76.c
src/ksp/ksp/tutorials/ex6f.F90
src/ksp/ksp/tutorials/ex29.c
Implementations#
MatConvert_Shell() in src/mat/impls/shell/shellcnv.c
MatConvert_HT() in src/mat/impls/transpose/htransm.c
MatConvert_Transpose() in src/mat/impls/transpose/transm.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages