#include <petsc.h>
int main(int argc, char **args) {
    PetscInitialize(&argc,&args,(char*)0,(char*)0);
    PetscInt ia[3] = { 0, 2, 4};
    PetscInt ja[4] = { 0, 1, 0, 1};
    PetscScalar c[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };

    Mat ssbaij;
    Mat msbaij;
    MatCreate(PETSC_COMM_SELF, &ssbaij);
    MatCreate(PETSC_COMM_SELF, &msbaij);
    MatSetType(ssbaij, MATSEQSBAIJ);
    MatSetType(msbaij, MATMPISBAIJ);
    MatSetBlockSize(ssbaij, 2);
    MatSetSizes(ssbaij, 4, 4, 4, 4);
    MatSetBlockSize(msbaij, 2);
    MatSetSizes(msbaij, 4, 4, 4, 4);
    MatSeqSBAIJSetPreallocationCSR(ssbaij, 2, ia, ja, c);
    MatMPISBAIJSetPreallocationCSR(msbaij, 2, ia, ja, c);
    MatView(ssbaij, PETSC_VIEWER_STDOUT_(PETSC_COMM_SELF));
    MatView(msbaij, PETSC_VIEWER_STDOUT_(PETSC_COMM_SELF));
    MatDestroy(&ssbaij);
    MatDestroy(&msbaij);
    PetscFinalize();
}
