The number of input arguments we accept via the YAML file, and their respective valid values, evolve over time. We need a simple way to tell users:
- Which options they can use?
- Which values are accepted by those options?
One idea is via command line, let's say:
$ ./hypre_app --help
Usage: ./hypre_app input.yml
List of valid sections for input.yml:
general
linear_system
solver
preconditioner
For more information about which section: ./hypre_app --help <section>
Then, we might do:
$ ./hypre_app --help solver
List of valid values for the solver:
pcg - Preconditioned Conjugate Gradient
gmres - Generalized Minimal RESidual
fgmres - Flexible Generalized Minimal RESidual
bicgstab - Bi-Conjugate Gradient STABilized
List of valid keys under the solver section:
max_iter: <val> - val is a positive integer number
print_level: <val> - val is a positive integer number in {0, 1, 2}
tol: <val> - val is a non-negative real number
...
The number of input arguments we accept via the YAML file, and their respective valid values, evolve over time. We need a simple way to tell users:
One idea is via command line, let's say:
Then, we might do: