@@ -10,16 +10,16 @@ and visualization for integrated codes. Instructions on how to download and inst
1010Workbench can be found on the Workbench
1111`Gitlab repository <https://code.ornl.gov/neams-workbench/downloads> `.
1212
13- To set up WATTS in the Workbench environment, user needs to first provide the path to
14- where Workbench is installed in `workbench.sh ` under the `scripts ` directory. User can
13+ To set up WATTS in the Workbench environment, you first need to first provide the path to
14+ where Workbench is installed in `workbench.sh ` under the `scripts ` directory. You can
1515then run `setup_conda_wb.sh ` under the same directory to set up WATTS within
1616the Workbench environment.
1717
1818Optional: To install OpenMC in the Workbench environemnt, run `setup_openmc.sh `.
1919
2020To finish setting up WATTS, open Workbench and go to the `File ` tab at the top-left corner
2121then select `Configurations ` from the drop menu. In the `Application configurations `
22- window, click `Add ` on the top most row then select `WATTS ` from the pop-up window.
22+ window, click `Add ` on the top most row then select `Watts ` from the pop-up window.
2323In the list of `Application Options `, input the path of `watts_ui.py ` to `Executable `.
2424The file should exist by default in `/watts/src/watt_ui/ `. Next, click `Load Grammar `.
2525Click `OK ` to complete the setup.
@@ -35,9 +35,7 @@ file can also be dragged and dropped to the Workbench window.
3535
3636The WATTS input file utilizes a hierarchical block-based system where a block
3737is defined with opening and closing curly braces `{ } `. A `watts ` block is first
38- created within which other blocks and variables can be defined. Within the `watts `
39- block, `workflow_dir ` needs to be defined as the path to the working directory
40- (where all templates and extra files are located).
38+ created within which other blocks and variables can be defined.
4139
4240Plugins
4341~~~~~~~
@@ -53,7 +51,7 @@ The `plugins` block is required. Within the `plugins` blocks are
5351 exec_dir = SAM_DIR
5452 exec_name = "sam-opt"
5553 extra_inputs=["file1", "file2", "file3"]
56- extra_templat_inputs =["template1", "template2", "template3"]
54+ extra_template_inputs =["template1", "template2", "template3"]
5755 show_stderr = False
5856 show_stdout = False
5957 }
@@ -77,7 +75,7 @@ in the snippet above. For each sub-block the basic inputs are::
7775 `show_stdout` : Option to display output
7876 `exec_dir` : Environment variable that points to the directory in which the application's executable is stored
7977 `extra_inputs` : Additional non-templated input files
80- `extra_templateinputs ` : Additional tempalted input files
78+ `extra_template_inputs ` : Additional tempalted input files
8179 `exec_name` : Name of the executable
8280 `executable` : Path to the executable
8381
@@ -86,13 +84,30 @@ ONLY `executable`. Additionally, there are application-specific inputs
8684that can be provided to the plugins such as::
8785
8886 `extra_args` (multiple apps) : Extra arguments to applications
87+ 'transfer_params' (multiple apps) : Output to transfer between applications for multi-apps run
8988 `plotfl_to_csv` (RELAP5) : Option to convert `plotfl` file to `csv` file
9089 `conv_channel` (SAS) : Path to `CHANNELtoCSV.x`
9190 `conv_primar4` (SAS) : Path to `PRIMAR4toCSV.x`
9291 `auto_link_files` (Dakota) : List of files for Dakota to link automatically
9392 `scores` (OpenMC) : List of filters for tallies
9493 `score_names` (OpenMC) : List of user-given names for tally filters
9594
95+ Currently all applications/codes already integrated to WATTS can be run on Workbench, these include
96+ PyARC, OpenMC, SERPENT, ABCE, MCNP, MOOSE, SAS, Dakota, Serpent, and RELAP5.
97+
98+ For OpenMC, multiple `scores ` can be provided at once. If provided, the number of `score_names ` must be the
99+ same as the number of `scores `. For instance, ::
100+
101+ scores = ["elastic", "nu-fission"]
102+ score_names = ["total_elastic_scatter_rate", "total_fission_neutron_prod"]
103+
104+ and there are N tallies where N > 1, then the outputs of the run will be named as::
105+
106+ total_elastic_scatter_rate_1, total_elastic_scatter_rate_2, ..., total_elastic_scatter_rate_N
107+ total_fission_neutron_prod_1, total_fission_neutron_prod_2, ..., total_fission_neutron_prod_N
108+
109+ If `score_names ` is not provided, `scores ` will be used as the base name for the outputs.
110+
96111Workflow level
97112~~~~~~~~~~~~~~
98113
@@ -101,8 +116,21 @@ by the `plugin` keyword::
101116
102117 plugin = ID1
103118
104- where 'ID1' is the ID of the plugin provided in the `plugins ` block. The
105- `variable ` sub-block is where the values of the templated variables are
119+ where 'ID1' is the ID of the plugin provided in the `plugins ` block. When performing
120+ a multi-app run where more than one plugins are used, the sequence of the run is
121+ determined by the order of plugins. For example, when the order of the plugins is::
122+
123+ plugin = ID1
124+ plugin = ID2
125+
126+ Workbench will run ID1 first then ID2. On the other than, when the order is ::
127+
128+ plugin = ID2
129+ plugin = ID1
130+
131+ Workbench will instead run ID1 first then ID2.
132+
133+ The`variable` sub-block is where the values of the templated variables are
106134specified, as shown below::
107135
108136 variables{
@@ -146,9 +174,17 @@ Parametric study
146174To perform parametric study, a `parametric ` block needs to be added to
147175the `workflow_level1 ` block as follows::
148176
149- parametric{
177+ workflow_level1{
178+ plugin = ID1
179+ variables{
180+ param(He_inlet_temp) {value = 873.15}
181+ param(He_outlet_temp) {value = 1023.15}
182+ ...
183+ }
184+ parametric{
150185 changing_params = "heat_source"
151186 changing_values = [0, 1e5, 2e5, 3e5]
187+ }
152188 }
153189
154190where `changing_params ` is the parameter whose values are varied and
@@ -160,22 +196,32 @@ Picard iteration
160196To perform Picard iteration, the `iteration ` block needs to be added
161197to the `workflow_level1 ` block::
162198
163- iteration{
164- plugin_main = ID1
165- plugin_sub = ID2
166- nmax = 10
167- convergence_params = "keff"
168- convergence_criteria = 0.0001
169- to_sub_params = ["avg_Tf_1" "avg_Tf_2" "avg_Tf_3" "avg_Tf_4" "avg_Tf_5"]
170- to_main_params = ["Init_P_1" "Init_P_2" "Init_P_3" "Init_P_4" "Init_P_5"]
199+ workflow_level1{
200+ plugin = ID1
201+ variables{
202+ param(He_inlet_temp) {value = 873.15}
203+ param(He_outlet_temp) {value = 1023.15}
204+ ...
205+ }
206+ iteration{
207+ plugin = ID2
208+ nmax = 10
209+ convergence_params = "keff"
210+ convergence_criteria = 0.0001
211+ to_sub_params = ["avg_Tf_1" "avg_Tf_2" "avg_Tf_3" "avg_Tf_4" "avg_Tf_5"]
212+ to_main_params = ["Init_P_1" "Init_P_2" "Init_P_3" "Init_P_4" "Init_P_5"]
213+ }
171214 }
172215
173- where `plugin_main ` and `plugin_sub ` are the plugin IDs of the two applications,
174- `nmax ` is the maximum number of iterations, `convergence_params ` is the parameter
175- used for evaluating convergence, `convergence_criteria ` is the tolerance for
216+ `plugin ` in the `iteration ` block is the plugin ID (ID2 in this example) of the
217+ application that will be used along with the the first plugin (ID1 in this example)
218+ to perform iteration. `nmax ` is the maximum number of iterations,
219+ `convergence_params ` is the parameter used for evaluating convergence,
220+ `convergence_criteria ` is the tolerance for
176221convergence, `to_sub_params ` and `to_main_params ` are lists of parameters whose
177222values are iterated between the two applications where they each must have at least
178223one parameter. Note that the parameter supplied to `convergence_params ` must be
179224an output from the second plugin. For instance, in the above example, "keff" is
180- an output produced by the plugin of "ID2". The same also applies for `to_sub_params `
181- and `to_main_params `.
225+ an output produced by the plugin of "ID2". Note that the choice of "keff" in
226+ this example is arbitrary and `convergence_params ` should be chosen according to
227+ the applications used and the objective of iteration runs.
0 commit comments