Actual source code: ex47.c

petsc-3.15.0 2021-03-30
Report Typos and Errors
  1: static char help[] = "Example for PetscOptionsInsertFileYAML\n";

  3: #include <petscsys.h>
  4: #include <petscviewer.h>

  6: int main(int argc,char **argv)
  7: {
  8:   PetscErrorCode  ierr;
  9:   char            filename[PETSC_MAX_PATH_LEN];
 10:   PetscBool       flg;

 12:   PetscInitialize(&argc,&argv,NULL,help);if (ierr) return ierr;

 14:   PetscOptionsGetString(NULL,NULL,"-f",filename,sizeof(filename),&flg);
 15:   if (flg) {
 16:     PetscOptionsInsertFileYAML(PETSC_COMM_WORLD,NULL,filename,PETSC_TRUE);
 17:   }

 19:   PetscOptionsGetString(NULL,NULL,"-yaml",filename,sizeof(filename),&flg);
 20:   if (flg) {
 21:     PetscBool monitor = PETSC_FALSE;
 22:     PetscOptionsGetBool(NULL,NULL,"-monitor",&monitor,NULL);
 23:     if (monitor) {
 24:       PetscOptionsMonitorSet(PetscOptionsMonitorDefault,NULL,NULL);
 25:     }
 26:     PetscOptionsClear(NULL);
 27:     PetscOptionsInsertFileYAML(PETSC_COMM_WORLD,NULL,filename,PETSC_TRUE);
 28:   }

 30:   PetscOptionsView(NULL,PETSC_VIEWER_STDOUT_WORLD);
 31:   PetscOptionsClear(NULL);
 32:   PetscFinalize();
 33:   return ierr;
 34: }



 38: /*TEST

 40:    testset:
 41:      args: -options_left false
 42:      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)"
 43:      localrunfiles: petsc.yml

 45:      test:
 46:         suffix: 1
 47:         args: -f petsc.yml

 49:      test:
 50:         suffix: 2_file
 51:         output_file: output/ex47_2.out
 52:         args: -options_file_yaml petsc.yml

 54:      test:
 55:         suffix: 2_string
 56:         output_file: output/ex47_2.out
 57:         args: -options_string_yaml "`cat petsc.yml`"

 59:      test:
 60:         suffix: 2_auto
 61:         args: -options_monitor
 62:         args: -options_file ex47-yaml_tag
 63:         args: -options_file ex47-yaml_doc
 64:         localrunfiles: ex47-yaml_tag ex47-yaml_doc

 66:      test:
 67:         suffix: 2_prefix
 68:         args: -options_monitor
 69:         args: -options_file ex47-opt.txt
 70:         args: -prefix_push p5_ -options_file ex47-opt.yml -prefix_pop
 71:         args: -prefix_push p5_ -options_file ex47-opt.yml:yaml -prefix_pop
 72:         args: -prefix_push p6_ -options_file_yaml ex47-opt.yml -prefix_pop
 73:         args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
 74:         args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
 75:         args: -prefix_push p8_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
 76:         args: -prefix_push p9_ -options_file ex47-opt.json -prefix_pop
 77:         localrunfiles: ex47-opt.txt ex47-opt.yml ex47-opt.json


 80:    testset:
 81:      nsize: {{1 2}}

 83:      test:
 84:         suffix: 3_empty
 85:         args: -yaml ex47-empty.yaml
 86:         localrunfiles: ex47-empty.yaml

 88:      test:
 89:         suffix: 3_merge
 90:         args: -yaml ex47-merge.yaml -monitor
 91:         localrunfiles: ex47-merge.yaml

 93:      test:
 94:         suffix: 3_options
 95:         args: -yaml ex47-options.yaml
 96:         localrunfiles: ex47-options.yaml

 98:      test:
 99:         suffix: 3_include
100:         args: -yaml ex47-include.yaml
101:         localrunfiles: ex47-include.yaml ex47-empty.yaml ex47-options.yaml

103:      test:
104:         suffix: 3_prefix
105:         args: -yaml ex47-prefix.yaml
106:         localrunfiles: ex47-prefix.yaml

108:      test:
109:         suffix: 3_multidoc
110:         args: -yaml ex47-multidoc.yaml
111:         localrunfiles: ex47-multidoc.yaml

113: TEST*/