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 /*TEST 37 38 testset: 39 args: -options_left false 40 filter: egrep -v "(options_left|options_monitor|malloc_dump|malloc_test|saws_port_auto_select|display|check_pointer_intensity|error_output_stdout|nox|vecscatter_mpi1|use_gpu_aware_mpi)" 41 localrunfiles: petsc.yml 42 43 test: 44 suffix: 1 45 args: -f petsc.yml 46 47 test: 48 suffix: 2_file 49 output_file: output/ex47_2.out 50 args: -options_file_yaml petsc.yml 51 52 test: 53 suffix: 2_string 54 output_file: output/ex47_2.out 55 args: -options_string_yaml "`cat petsc.yml`" 56 57 test: 58 suffix: 2_auto 59 args: -options_monitor 60 args: -options_file ex47-yaml_tag 61 args: -options_file ex47-yaml_doc 62 localrunfiles: ex47-yaml_tag ex47-yaml_doc 63 64 test: 65 suffix: 2_prefix 66 args: -options_monitor 67 args: -options_file ex47-opt.txt 68 args: -prefix_push p5_ -options_file ex47-opt.yml -prefix_pop 69 args: -prefix_push p5_ -options_file ex47-opt.yml:yaml -prefix_pop 70 args: -prefix_push p6_ -options_file_yaml ex47-opt.yml -prefix_pop 71 args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop 72 args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop 73 args: -prefix_push p8_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop 74 args: -prefix_push p9_ -options_file ex47-opt.json -prefix_pop 75 localrunfiles: ex47-opt.txt ex47-opt.yml ex47-opt.json 76 77 testset: 78 nsize: {{1 2}} 79 80 test: 81 suffix: 3_empty 82 args: -yaml ex47-empty.yaml 83 localrunfiles: ex47-empty.yaml 84 85 test: 86 suffix: 3_merge 87 args: -yaml ex47-merge.yaml -monitor 88 localrunfiles: ex47-merge.yaml 89 90 test: 91 suffix: 3_options 92 args: -yaml ex47-options.yaml 93 localrunfiles: ex47-options.yaml 94 95 test: 96 suffix: 3_include 97 args: -yaml ex47-include.yaml 98 localrunfiles: ex47-include.yaml ex47-empty.yaml ex47-options.yaml 99 100 test: 101 suffix: 3_prefix 102 args: -yaml ex47-prefix.yaml 103 localrunfiles: ex47-prefix.yaml 104 105 test: 106 suffix: 3_multidoc 107 args: -yaml ex47-multidoc.yaml 108 localrunfiles: ex47-multidoc.yaml 109 110 TEST*/ 111