1c4762a1bSJed Brown 2c4762a1bSJed Brown /* tests MatSeqSBAIJSetPreallocationCSR() and MatMPISBAIJSetPreallocationCSR() */ 3c4762a1bSJed Brown 4c4762a1bSJed Brown #include <petsc.h> 5c4762a1bSJed Brown 6d71ae5a4SJacob Faibussowitsch int main(int argc, char **args) 7d71ae5a4SJacob Faibussowitsch { 8c4762a1bSJed Brown PetscInt ia[3] = {0, 2, 4}; 9c4762a1bSJed Brown PetscInt ja[4] = {0, 1, 0, 1}; 10c4762a1bSJed Brown PetscScalar c[16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; 11*b4e2f619SBarry Smith Mat ssbaij, msbaij; 12*b4e2f619SBarry Smith PetscBool v2 = PETSC_FALSE; 13c4762a1bSJed Brown 14327415f7SBarry Smith PetscFunctionBeginUser; 159566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc, &args, (char *)0, (char *)0)); 16*b4e2f619SBarry Smith PetscCall(PetscOptionsGetBool(NULL, NULL, "-v2", &v2, NULL)); 17c4762a1bSJed Brown 189566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_SELF, &ssbaij)); 199566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_SELF, &msbaij)); 20*b4e2f619SBarry Smith if (!v2) { 219566063dSJacob Faibussowitsch PetscCall(MatSetType(ssbaij, MATSEQSBAIJ)); 229566063dSJacob Faibussowitsch PetscCall(MatSetType(msbaij, MATMPISBAIJ)); 23*b4e2f619SBarry Smith } 249566063dSJacob Faibussowitsch PetscCall(MatSetBlockSize(ssbaij, 2)); 259566063dSJacob Faibussowitsch PetscCall(MatSetSizes(ssbaij, 4, 4, 4, 4)); 269566063dSJacob Faibussowitsch PetscCall(MatSetBlockSize(msbaij, 2)); 279566063dSJacob Faibussowitsch PetscCall(MatSetSizes(msbaij, 4, 4, 4, 4)); 28*b4e2f619SBarry Smith if (v2) { 29*b4e2f619SBarry Smith PetscCall(MatSetUp(ssbaij)); 30*b4e2f619SBarry Smith PetscCall(MatSetUp(msbaij)); 31*b4e2f619SBarry Smith PetscCall(MatSetType(ssbaij, MATSEQSBAIJ)); 32*b4e2f619SBarry Smith PetscCall(MatSetType(msbaij, MATMPISBAIJ)); 33*b4e2f619SBarry Smith } 349566063dSJacob Faibussowitsch PetscCall(MatSeqSBAIJSetPreallocationCSR(ssbaij, 2, ia, ja, c)); 359566063dSJacob Faibussowitsch PetscCall(MatMPISBAIJSetPreallocationCSR(msbaij, 2, ia, ja, c)); 369566063dSJacob Faibussowitsch PetscCall(MatView(ssbaij, PETSC_VIEWER_STDOUT_(PETSC_COMM_SELF))); 379566063dSJacob Faibussowitsch PetscCall(MatView(msbaij, PETSC_VIEWER_STDOUT_(PETSC_COMM_SELF))); 389566063dSJacob Faibussowitsch PetscCall(MatDestroy(&ssbaij)); 399566063dSJacob Faibussowitsch PetscCall(MatDestroy(&msbaij)); 409566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 41b122ec5aSJacob Faibussowitsch return 0; 42c4762a1bSJed Brown } 43c4762a1bSJed Brown 44c4762a1bSJed Brown /*TEST 45c4762a1bSJed Brown 46c4762a1bSJed Brown test: 47c4762a1bSJed Brown filter: sed "s?\.??g" 48c4762a1bSJed Brown 49*b4e2f619SBarry Smith test: 50*b4e2f619SBarry Smith suffix: 2 51*b4e2f619SBarry Smith filter: sed "s?\.??g" 52*b4e2f619SBarry Smith args : -v2 53*b4e2f619SBarry Smith output_file: output/ex232_1.out 54*b4e2f619SBarry Smith 55c4762a1bSJed Brown TEST*/ 56