1c4762a1bSJed Brown static char help[] = "Demonstrates constructing an application ordering.\n\n"; 2c4762a1bSJed Brown 3c4762a1bSJed Brown #include <petscao.h> 4c4762a1bSJed Brown #include <petscviewer.h> 5c4762a1bSJed Brown 6d71ae5a4SJacob Faibussowitsch int main(int argc, char **argv) 7d71ae5a4SJacob Faibussowitsch { 8c4762a1bSJed Brown PetscInt n = 5; 9c4762a1bSJed Brown PetscMPIInt rank, size; 10c4762a1bSJed Brown IS ispetsc, isapp; 11c4762a1bSJed Brown AO ao; 12c4762a1bSJed Brown 13327415f7SBarry Smith PetscFunctionBeginUser; 14*c8025a54SPierre Jolivet PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 159566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL, NULL, "-n", &n, NULL)); 169566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_rank(PETSC_COMM_WORLD, &rank)); 179566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_size(PETSC_COMM_WORLD, &size)); 18c4762a1bSJed Brown 19c4762a1bSJed Brown /* create the index sets */ 209566063dSJacob Faibussowitsch PetscCall(ISCreateStride(PETSC_COMM_WORLD, n, rank, size, &ispetsc)); 219566063dSJacob Faibussowitsch PetscCall(ISCreateStride(PETSC_COMM_WORLD, n, n * rank, 1, &isapp)); 22c4762a1bSJed Brown 23c4762a1bSJed Brown /* create the application ordering */ 249566063dSJacob Faibussowitsch PetscCall(AOCreateBasicIS(isapp, ispetsc, &ao)); 25c4762a1bSJed Brown 269566063dSJacob Faibussowitsch PetscCall(AOView(ao, PETSC_VIEWER_STDOUT_WORLD)); 27c4762a1bSJed Brown 289566063dSJacob Faibussowitsch PetscCall(ISView(ispetsc, PETSC_VIEWER_STDOUT_WORLD)); 299566063dSJacob Faibussowitsch PetscCall(ISView(isapp, PETSC_VIEWER_STDOUT_WORLD)); 309566063dSJacob Faibussowitsch PetscCall(AOPetscToApplicationIS(ao, ispetsc)); 319566063dSJacob Faibussowitsch PetscCall(ISView(isapp, PETSC_VIEWER_STDOUT_WORLD)); 329566063dSJacob Faibussowitsch PetscCall(ISView(ispetsc, PETSC_VIEWER_STDOUT_WORLD)); 33c4762a1bSJed Brown 349566063dSJacob Faibussowitsch PetscCall(ISDestroy(&ispetsc)); 359566063dSJacob Faibussowitsch PetscCall(ISDestroy(&isapp)); 36c4762a1bSJed Brown 379566063dSJacob Faibussowitsch PetscCall(AODestroy(&ao)); 389566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 39b122ec5aSJacob Faibussowitsch return 0; 40c4762a1bSJed Brown } 41c4762a1bSJed Brown 42c4762a1bSJed Brown /*TEST 43c4762a1bSJed Brown 44c4762a1bSJed Brown test: 45c4762a1bSJed Brown nsize: 2 46c4762a1bSJed Brown 47c4762a1bSJed Brown TEST*/ 48