MatCreateMPIAdj#
Creates a sparse matrix representing an adjacency list. The matrix need not have numerical values associated with it, it is intended for ordering (to reduce bandwidth etc) and partitioning.
Synopsis#
#include "petscmat.h" 
PetscErrorCode MatCreateMPIAdj(MPI_Comm comm, PetscInt m, PetscInt N, PetscInt *i, PetscInt *j, PetscInt *values, Mat *A)
Collective
Input Parameters#
- comm - MPI communicator 
- m - number of local rows 
- N - number of global columns 
- i - the indices into - jfor the start of each row
- j - the column indices for each row (sorted for each row). 
- values - the values, optional, use - NULLif not provided
Output Parameter#
- A - the matrix 
Notes#
The indices in i and j start with zero (NOT with one).
You must NOT free the i, values and j arrays yourself. PETSc will free them
when the matrix is destroyed; you must allocate them with PetscMalloc().
You should not include the matrix diagonals.
If you already have a matrix, you can create its adjacency matrix by a call
to MatConvert(), specifying a type of MATMPIADJ.
Possible values for MatSetOption() - MAT_STRUCTURALLY_SYMMETRIC
Fortran Note#
From Fortran the arrays indices and values must be retained by the user until A is destroyed
See Also#
Matrices, Mat, MatCreate(), MatConvert(), MatGetOrdering(), MATMPIADJ, MatMPIAdjSetPreallocation()
Level#
intermediate
Location#
Examples#
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages