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) { 25: PetscInitialize(&argc, &argv, (char*) 0, help); 26: PetscFinalize(); 27: #if defined(PETSC_HAVE_ELEMENTAL) 28: PetscElementalInitialized(&initialized); 29: if (!initialized) return PETSC_ERR_LIB; 30: #endif 31: } 32: #if defined(PETSC_HAVE_ELEMENTAL) 33: PetscElementalFinalizePackage(); 34: PetscElementalInitialized(&initialized); 35: if (initialized) return 1; 36: for (i = 0; i < 32; ++i) { /* increasing the upper bound will generate an error in Elemental */ 37: PetscInitialize(&argc, &argv, (char*) 0, help); 38: PetscElementalInitialized(&initialized); 40: PetscFinalize(); 41: PetscElementalInitialized(&initialized); 42: if (initialized) return PETSC_ERR_LIB; 43: } 44: #endif 45: return MPI_Finalize(); 46: } 48: /*TEST 50: test: 51: requires: !saws 53: test: 54: requires: !saws 55: suffix: 2 56: nsize: 2 57: output_file: output/ex26_1.out 59: TEST*/