1c4762a1bSJed Brown 2c4762a1bSJed Brown static char help[] = "Tests calling PetscOptionsSetValue() before PetscInitialize()\n\n"; 3c4762a1bSJed Brown 4c4762a1bSJed Brown /*T 5c4762a1bSJed Brown Concepts: introduction to PETSc; 6c4762a1bSJed Brown Concepts: printing^in parallel 7c4762a1bSJed Brown Processors: n 8c4762a1bSJed Brown T*/ 9c4762a1bSJed Brown 10c4762a1bSJed Brown #include <petscsys.h> 11c4762a1bSJed Brown int main(int argc,char **argv) 12c4762a1bSJed Brown { 13c4762a1bSJed Brown PetscErrorCode ierr; 14c4762a1bSJed Brown PetscMPIInt rank,size; 15c4762a1bSJed Brown 16c4762a1bSJed Brown /* 17c4762a1bSJed Brown Every PETSc routine should begin with the PetscInitialize() routine. 18c4762a1bSJed Brown argc, argv - These command line arguments are taken to extract the options 19c4762a1bSJed Brown supplied to PETSc and options supplied to MPI. 20c4762a1bSJed Brown help - When PETSc executable is invoked with the option -help, 21c4762a1bSJed Brown it prints the various options that can be applied at 22c4762a1bSJed Brown runtime. The user can use the "help" variable place 23c4762a1bSJed Brown additional help messages in this printout. 24c4762a1bSJed Brown 25c4762a1bSJed Brown Since when PetscInitialize() returns with an error the PETSc data structures 26c4762a1bSJed Brown may not be set up hence we cannot call CHKERRQ() hence directly return the error code. 27c4762a1bSJed Brown 28c4762a1bSJed Brown Since PetscOptionsSetValue() is called before the PetscInitialize() we cannot call 29c4762a1bSJed Brown CHKERRQ() on the error code and just return it directly. 30c4762a1bSJed Brown */ 31c4762a1bSJed Brown ierr = PetscOptionsSetValue(NULL,"-no_signal_handler","true");if (ierr) return ierr; 32c4762a1bSJed Brown ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr; 33ffc4695bSBarry Smith ierr = MPI_Comm_size(PETSC_COMM_WORLD,&size);CHKERRMPI(ierr); 34ffc4695bSBarry Smith ierr = MPI_Comm_rank(PETSC_COMM_WORLD,&rank);CHKERRMPI(ierr); 35c4762a1bSJed Brown ierr = PetscPrintf(PETSC_COMM_WORLD,"Number of processors = %d, rank = %d\n",size,rank);CHKERRQ(ierr); 36c4762a1bSJed Brown ierr = PetscFinalize(); 37c4762a1bSJed Brown return ierr; 38c4762a1bSJed Brown } 39c4762a1bSJed Brown 40c4762a1bSJed Brown /*TEST 41c4762a1bSJed Brown 42c4762a1bSJed Brown test: 43*dfd57a17SPierre Jolivet requires: defined(PETSC_USE_LOG) 44c4762a1bSJed Brown nsize: 2 45c4762a1bSJed Brown args: -options_view -get_total_flops 46362febeeSStefano Zampini filter: egrep -v "(cuda_initialize|malloc|display|nox|Total flops|saws_port_auto_select|vecscatter_mpi1|options_left|error_output_stdout|check_pointer_intensity|use_gpu_aware_mpi|checkstack)" 47c4762a1bSJed Brown 48c4762a1bSJed Brown TEST*/ 49