1c4762a1bSJed Brown static char help[] = "Tests ISSetBlockSize() on ISBlock().\n\n"; 2c4762a1bSJed Brown 3c4762a1bSJed Brown #include <petscis.h> 4c4762a1bSJed Brown #include <petscviewer.h> 5c4762a1bSJed Brown 6d71ae5a4SJacob Faibussowitsch int main(int argc, char **argv) 7d71ae5a4SJacob Faibussowitsch { 8c4762a1bSJed Brown PetscInt bs = 2, n = 3, ix[3] = {1, 7, 9}; 9c4762a1bSJed Brown const PetscInt *indices; 10c4762a1bSJed Brown IS is; 11c4762a1bSJed Brown PetscBool broken = PETSC_FALSE; 12c4762a1bSJed Brown 13327415f7SBarry Smith PetscFunctionBeginUser; 14c8025a54SPierre Jolivet PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 159566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-broken", &broken, NULL)); 169566063dSJacob Faibussowitsch PetscCall(ISCreateBlock(PETSC_COMM_SELF, bs, n, ix, PETSC_COPY_VALUES, &is)); 179566063dSJacob Faibussowitsch PetscCall(ISGetIndices(is, &indices)); 189566063dSJacob Faibussowitsch PetscCall(PetscIntView(bs * 3, indices, NULL)); 199566063dSJacob Faibussowitsch PetscCall(ISRestoreIndices(is, &indices)); 20c4762a1bSJed Brown if (broken) { 219566063dSJacob Faibussowitsch PetscCall(ISSetBlockSize(is, 3)); 229566063dSJacob Faibussowitsch PetscCall(ISGetIndices(is, &indices)); 239566063dSJacob Faibussowitsch PetscCall(PetscIntView(bs * 3, indices, NULL)); 249566063dSJacob Faibussowitsch PetscCall(ISRestoreIndices(is, &indices)); 25c4762a1bSJed Brown } 269566063dSJacob Faibussowitsch PetscCall(ISDestroy(&is)); 27c4762a1bSJed Brown 289566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 29b122ec5aSJacob Faibussowitsch return 0; 30c4762a1bSJed Brown } 31c4762a1bSJed Brown 32c4762a1bSJed Brown /*TEST 33c4762a1bSJed Brown 34c4762a1bSJed Brown test: 35c4762a1bSJed Brown 36c4762a1bSJed Brown test: 37c4762a1bSJed Brown suffix: 2 38c4762a1bSJed Brown args: -broken 39c4762a1bSJed Brown filter: Error: grep -o "[0]PETSC ERROR: Object is in wrong state" 40*3886731fSPierre Jolivet output_file: output/empty.out 41c4762a1bSJed Brown 42c4762a1bSJed Brown TEST*/ 43