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