1c4762a1bSJed Brown static char help[] = "Example for PetscOptionsInsertFileYAML\n";
2c4762a1bSJed Brown
3c4762a1bSJed Brown #include <petscsys.h>
4c4762a1bSJed Brown #include <petscviewer.h>
5c4762a1bSJed Brown
main(int argc,char ** argv)6d71ae5a4SJacob Faibussowitsch int main(int argc, char **argv)
7d71ae5a4SJacob Faibussowitsch {
8c4762a1bSJed Brown char filename[PETSC_MAX_PATH_LEN];
9c4762a1bSJed Brown PetscBool flg;
10c4762a1bSJed Brown
11327415f7SBarry Smith PetscFunctionBeginUser;
129566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc, &argv, NULL, help));
135c23ca1cSLisandro Dalcin
149566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetString(NULL, NULL, "-f", filename, sizeof(filename), &flg));
159566063dSJacob Faibussowitsch if (flg) PetscCall(PetscOptionsInsertFileYAML(PETSC_COMM_WORLD, NULL, filename, PETSC_TRUE));
165c23ca1cSLisandro Dalcin
179566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetString(NULL, NULL, "-yaml", filename, sizeof(filename), &flg));
185c23ca1cSLisandro Dalcin if (flg) {
195c23ca1cSLisandro Dalcin PetscBool monitor = PETSC_FALSE;
20b122ec5aSJacob Faibussowitsch
219566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-monitor", &monitor, NULL));
22758f5028SMatthew G. Knepley if (monitor) PetscCall(PetscOptionsMonitorSet(PetscOptionsMonitorDefault, PETSC_VIEWER_STDOUT_WORLD, NULL));
239566063dSJacob Faibussowitsch PetscCall(PetscOptionsClear(NULL));
249566063dSJacob Faibussowitsch PetscCall(PetscOptionsInsertFileYAML(PETSC_COMM_WORLD, NULL, filename, PETSC_TRUE));
255c23ca1cSLisandro Dalcin }
265c23ca1cSLisandro Dalcin
27758f5028SMatthew G. Knepley PetscCall(PetscOptionsGetString(NULL, NULL, "-yamlstr", filename, sizeof(filename), &flg));
28758f5028SMatthew G. Knepley if (flg) {
29758f5028SMatthew G. Knepley PetscBool monitor = PETSC_FALSE;
30758f5028SMatthew G. Knepley
31758f5028SMatthew G. Knepley PetscCall(PetscOptionsGetBool(NULL, NULL, "-monitor", &monitor, NULL));
32758f5028SMatthew G. Knepley if (monitor) PetscCall(PetscOptionsMonitorSet(PetscOptionsMonitorDefault, NULL, NULL));
33758f5028SMatthew G. Knepley PetscCall(PetscOptionsClear(NULL));
34758f5028SMatthew G. Knepley PetscCall(PetscOptionsInsertStringYAML(NULL, filename));
35758f5028SMatthew G. Knepley }
36758f5028SMatthew G. Knepley
379566063dSJacob Faibussowitsch PetscCall(PetscOptionsView(NULL, PETSC_VIEWER_STDOUT_WORLD));
389566063dSJacob Faibussowitsch PetscCall(PetscOptionsClear(NULL));
399566063dSJacob Faibussowitsch PetscCall(PetscFinalize());
40b122ec5aSJacob Faibussowitsch return 0;
41c4762a1bSJed Brown }
42c4762a1bSJed Brown
43c4762a1bSJed Brown /*TEST
44c4762a1bSJed Brown
455c23ca1cSLisandro Dalcin testset:
46951eb098SLisandro Dalcin args: -options_left false
47*e9a33e21SBarry Smith filter: grep -E -v "(options_monitor)"
485c23ca1cSLisandro Dalcin localrunfiles: petsc.yml
49c4762a1bSJed Brown
50c4762a1bSJed Brown test:
51c4762a1bSJed Brown suffix: 1
52d06005cbSLisandro Dalcin args: -f petsc.yml
53c4762a1bSJed Brown
54c4762a1bSJed Brown test:
55d06005cbSLisandro Dalcin suffix: 2_file
56d06005cbSLisandro Dalcin output_file: output/ex47_2.out
57d06005cbSLisandro Dalcin args: -options_file_yaml petsc.yml
58d06005cbSLisandro Dalcin
59d06005cbSLisandro Dalcin test:
60d06005cbSLisandro Dalcin suffix: 2_string
61d06005cbSLisandro Dalcin args: -options_string_yaml "`cat petsc.yml`"
62d06005cbSLisandro Dalcin
63d06005cbSLisandro Dalcin test:
64a1d2f846SLisandro Dalcin suffix: 2_auto
65a1d2f846SLisandro Dalcin args: -options_monitor
66a1d2f846SLisandro Dalcin args: -options_file ex47-yaml_tag
67a1d2f846SLisandro Dalcin args: -options_file ex47-yaml_doc
68a1d2f846SLisandro Dalcin localrunfiles: ex47-yaml_tag ex47-yaml_doc
69a1d2f846SLisandro Dalcin
70a1d2f846SLisandro Dalcin test:
71d06005cbSLisandro Dalcin suffix: 2_prefix
72d06005cbSLisandro Dalcin args: -options_monitor
73d06005cbSLisandro Dalcin args: -options_file ex47-opt.txt
74be10d61cSLisandro Dalcin args: -prefix_push p5_ -options_file ex47-opt.yml -prefix_pop
75be10d61cSLisandro Dalcin args: -prefix_push p5_ -options_file ex47-opt.yml:yaml -prefix_pop
76d06005cbSLisandro Dalcin args: -prefix_push p6_ -options_file_yaml ex47-opt.yml -prefix_pop
77d06005cbSLisandro Dalcin args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
78d06005cbSLisandro Dalcin args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
79d06005cbSLisandro Dalcin args: -prefix_push p8_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
80a1d2f846SLisandro Dalcin args: -prefix_push p9_ -options_file ex47-opt.json -prefix_pop
81a1d2f846SLisandro Dalcin localrunfiles: ex47-opt.txt ex47-opt.yml ex47-opt.json
825c23ca1cSLisandro Dalcin
835c23ca1cSLisandro Dalcin testset:
845c23ca1cSLisandro Dalcin nsize: {{1 2}}
855c23ca1cSLisandro Dalcin
865c23ca1cSLisandro Dalcin test:
875c23ca1cSLisandro Dalcin suffix: 3_empty
885c23ca1cSLisandro Dalcin args: -yaml ex47-empty.yaml
895c23ca1cSLisandro Dalcin localrunfiles: ex47-empty.yaml
905c23ca1cSLisandro Dalcin
915c23ca1cSLisandro Dalcin test:
925c23ca1cSLisandro Dalcin suffix: 3_merge
935c23ca1cSLisandro Dalcin args: -yaml ex47-merge.yaml -monitor
945c23ca1cSLisandro Dalcin localrunfiles: ex47-merge.yaml
955c23ca1cSLisandro Dalcin
965c23ca1cSLisandro Dalcin test:
97758f5028SMatthew G. Knepley suffix: 3_env
98758f5028SMatthew G. Knepley env: PETSC_OPTIONS_YAML='"name: value"'
99758f5028SMatthew G. Knepley args: -monitor
100758f5028SMatthew G. Knepley
101758f5028SMatthew G. Knepley test:
102758f5028SMatthew G. Knepley suffix: 3_str
103758f5028SMatthew G. Knepley args: -yamlstr "name: value" -monitor
104758f5028SMatthew G. Knepley
105758f5028SMatthew G. Knepley test:
1065c23ca1cSLisandro Dalcin suffix: 3_options
1075c23ca1cSLisandro Dalcin args: -yaml ex47-options.yaml
1085c23ca1cSLisandro Dalcin localrunfiles: ex47-options.yaml
1095c23ca1cSLisandro Dalcin
1105c23ca1cSLisandro Dalcin test:
1115c23ca1cSLisandro Dalcin suffix: 3_include
1125c23ca1cSLisandro Dalcin args: -yaml ex47-include.yaml
1135c23ca1cSLisandro Dalcin localrunfiles: ex47-include.yaml ex47-empty.yaml ex47-options.yaml
1145c23ca1cSLisandro Dalcin
1150379105fSLisandro Dalcin test:
1160379105fSLisandro Dalcin suffix: 3_prefix
1170379105fSLisandro Dalcin args: -yaml ex47-prefix.yaml
1180379105fSLisandro Dalcin localrunfiles: ex47-prefix.yaml
119c4762a1bSJed Brown
1202b8ac955SLisandro Dalcin test:
1212b8ac955SLisandro Dalcin suffix: 3_multidoc
1222b8ac955SLisandro Dalcin args: -yaml ex47-multidoc.yaml
1232b8ac955SLisandro Dalcin localrunfiles: ex47-multidoc.yaml
1242b8ac955SLisandro Dalcin
125c4762a1bSJed Brown TEST*/
126