17fb60732SBarry Smith static char help[] = "Tests MatTranspose() with MAT_REUSE_MATRIX and different nonzero pattern\n\n"; 27fb60732SBarry Smith 37fb60732SBarry Smith #include <petscmat.h> 47fb60732SBarry Smith 5d71ae5a4SJacob Faibussowitsch int main(int argc, char **argv) 6d71ae5a4SJacob Faibussowitsch { 77fb60732SBarry Smith Mat A, B; 87fb60732SBarry Smith PetscMPIInt size; 97fb60732SBarry Smith 10*c8025a54SPierre Jolivet PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 117fb60732SBarry Smith PetscCallMPI(MPI_Comm_size(PETSC_COMM_WORLD, &size)); 127fb60732SBarry Smith PetscCheck(size == 1, PETSC_COMM_WORLD, PETSC_ERR_WRONG_MPI_SIZE, "This is a uniprocessor example only!"); 137fb60732SBarry Smith PetscCall(MatCreateSeqAIJ(PETSC_COMM_SELF, 2, 2, 2, NULL, &A)); 147fb60732SBarry Smith PetscCall(MatSetValue(A, 0, 0, 1.0, INSERT_VALUES)); 157fb60732SBarry Smith PetscCall(MatSetValue(A, 0, 1, 2.0, INSERT_VALUES)); 167fb60732SBarry Smith PetscCall(MatSetValue(A, 1, 1, 4.0, INSERT_VALUES)); 177fb60732SBarry Smith PetscCall(MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY)); 187fb60732SBarry Smith PetscCall(MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY)); 197fb60732SBarry Smith PetscCall(MatView(A, PETSC_VIEWER_STDOUT_SELF)); 207fb60732SBarry Smith PetscCall(MatTranspose(A, MAT_INITIAL_MATRIX, &B)); 217fb60732SBarry Smith PetscCall(MatView(B, PETSC_VIEWER_STDOUT_SELF)); 227fb60732SBarry Smith PetscCall(MatSetOption(A, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE)); 237fb60732SBarry Smith PetscCall(MatSetValue(A, 1, 0, 3.0, INSERT_VALUES)); 247fb60732SBarry Smith PetscCall(MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY)); 257fb60732SBarry Smith PetscCall(MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY)); 267fb60732SBarry Smith PetscCall(MatView(A, PETSC_VIEWER_STDOUT_SELF)); 277fb60732SBarry Smith PetscCall(MatTranspose(A, MAT_REUSE_MATRIX, &B)); 287fb60732SBarry Smith PetscCall(MatView(B, PETSC_VIEWER_STDOUT_SELF)); 297fb60732SBarry Smith PetscCall(MatDestroy(&A)); 307fb60732SBarry Smith PetscCall(MatDestroy(&B)); 317fb60732SBarry Smith PetscCall(PetscFinalize()); 327fb60732SBarry Smith return 0; 337fb60732SBarry Smith } 347fb60732SBarry Smith 357fb60732SBarry Smith /*TEST 367fb60732SBarry Smith 377fb60732SBarry Smith test: 387fb60732SBarry Smith 397fb60732SBarry Smith TEST*/ 40