#include "petscmat.h" PetscErrorCode MatCreateSeqSBAIJ(MPI_Comm comm,PetscInt bs,PetscInt m,PetscInt n,PetscInt nz,const PetscInt nnz[],Mat *A)Collective
comm | - MPI communicator, set to PETSC_COMM_SELF | |
bs | - size of block, the blocks are ALWAYS square. One can use MatSetBlockSizes() to set a different row and column blocksize but the row blocksize always defines the size of the blocks. The column blocksize sets the blocksize of the vectors obtained with MatCreateVecs() | |
m | - number of rows, or number of columns | |
nz | - number of block nonzeros per block row (same for all rows) | |
nnz | - array containing the number of block nonzeros in the upper triangular plus diagonal portion of each block (possibly different for each block row) or NULL |
A | - the symmetric matrix |
-mat_no_unroll | - uses code that does not unroll the loops in the block calculations (much slower) | |
-mat_block_size | - size of the blocks to use |
It is recommended that one use the MatCreate(), MatSetType() and/or MatSetFromOptions(), MatXXXXSetPreallocation() paradigm instead of this routine directly. [MatXXXXSetPreallocation() is, for example, MatSeqAIJSetPreallocation]
Specify the preallocated storage with either nz or nnz (not both). Set nz=PETSC_DEFAULT and nnz=NULL for PETSc to control dynamic memory allocation. See Users-Manual: ch_mat for details.
If the nnz parameter is given then the nz parameter is ignored