1: static char help[] = "Tests repeated PetscInitialize/PetscFinalize calls.\n\n"; 3: #include <petscsys.h> 5: int main(int argc, char **argv) 6: { 7: int i, imax; 8: #if defined(PETSC_HAVE_ELEMENTAL) 9: PetscBool initialized; 10: #endif 12: #if defined(PETSC_HAVE_MPIUNI) 13: imax = 32; 14: #else 15: imax = 1024; 16: #endif 18: MPI_Init(&argc, &argv); 19: #if defined(PETSC_HAVE_ELEMENTAL) 20: PetscElementalInitializePackage(); 21: PetscElementalInitialized(&initialized); 22: if (!initialized) return 1; 23: #endif 24: for (i = 0; i < imax; ++i) { 26: PetscInitialize(&argc, &argv, (char *)0, help); 27: PetscFinalize(); 28: #if defined(PETSC_HAVE_ELEMENTAL) 29: PetscElementalInitialized(&initialized); 30: if (!initialized) return PETSC_ERR_LIB; 31: #endif 32: } 33: #if defined(PETSC_HAVE_ELEMENTAL) 34: PetscElementalFinalizePackage(); 35: PetscElementalInitialized(&initialized); 36: if (initialized) return 1; 37: for (i = 0; i < 32; ++i) { /* increasing the upper bound will generate an error in Elemental */ 39: PetscInitialize(&argc, &argv, (char *)0, help); 40: PetscElementalInitialized(&initialized); 42: PetscFinalize(); 43: PetscElementalInitialized(&initialized); 44: if (initialized) return PETSC_ERR_LIB; 45: } 46: #endif 47: return MPI_Finalize(); 48: } 50: /*TEST 52: test: 53: requires: !saws 55: test: 56: requires: !saws 57: suffix: 2 58: nsize: 2 59: output_file: output/ex26_1.out 61: TEST*/