1 static char help[] = "Example for PetscOptionsInsertFileYAML\n"; 2 3 #include <petscsys.h> 4 #include <petscviewer.h> 5 6 int main(int argc,char **argv) 7 { 8 PetscErrorCode ierr; 9 char filename[PETSC_MAX_PATH_LEN]; 10 PetscBool flg; 11 12 ierr = PetscInitialize(&argc,&argv,NULL,help);if (ierr) return ierr; 13 14 ierr = PetscOptionsGetString(NULL,NULL,"-f",filename,sizeof(filename),&flg); 15 if (flg) { 16 ierr = PetscOptionsInsertFileYAML(PETSC_COMM_WORLD,NULL,filename,PETSC_TRUE);CHKERRQ(ierr); 17 } 18 19 ierr = PetscOptionsGetString(NULL,NULL,"-yaml",filename,sizeof(filename),&flg); 20 if (flg) { 21 PetscBool monitor = PETSC_FALSE; 22 ierr = PetscOptionsGetBool(NULL,NULL,"-monitor",&monitor,NULL);CHKERRQ(ierr); 23 if (monitor) { 24 ierr = PetscOptionsMonitorSet(PetscOptionsMonitorDefault,NULL,NULL);CHKERRQ(ierr); 25 } 26 ierr = PetscOptionsClear(NULL);CHKERRQ(ierr); 27 ierr = PetscOptionsInsertFileYAML(PETSC_COMM_WORLD,NULL,filename,PETSC_TRUE);CHKERRQ(ierr); 28 } 29 30 ierr = PetscOptionsView(NULL,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); 31 ierr = PetscOptionsClear(NULL);CHKERRQ(ierr); 32 ierr = PetscFinalize(); 33 return ierr; 34 } 35 36 37 38 /*TEST 39 40 testset: 41 requires: yaml 42 filter: egrep -v "(malloc_dump|malloc_test|saws_port_auto_select|display|check_pointer_intensity|error_output_stdout|nox)" 43 localrunfiles: petsc.yml 44 45 test: 46 suffix: 1 47 args: -f petsc.yml -options_left 0 48 49 test: 50 suffix: 2 51 args: -options_file_yaml petsc.yml -options_left 0 52 53 54 testset: 55 nsize: {{1 2}} 56 requires: yaml 57 58 test: 59 suffix: 3_empty 60 args: -yaml ex47-empty.yaml 61 localrunfiles: ex47-empty.yaml 62 63 test: 64 suffix: 3_merge 65 args: -yaml ex47-merge.yaml -monitor 66 localrunfiles: ex47-merge.yaml 67 68 test: 69 suffix: 3_options 70 args: -yaml ex47-options.yaml 71 localrunfiles: ex47-options.yaml 72 73 test: 74 suffix: 3_include 75 args: -yaml ex47-include.yaml 76 localrunfiles: ex47-include.yaml ex47-empty.yaml ex47-options.yaml 77 78 79 TEST*/ 80