--- myst: substitutions: bloc: python: 6-8 cpp: 4-5,8-9 console: python: 7-25 cpp: 9-27 --- (sampler_oat_toatdesign_multiple_sets)= # Multiple sets of nominal values If the factors have more than one possible nominal value, the OAT sampler can automatically build a {{doe}} for each set of nominal values stored in the dataserver. This information can be set manually, but an easier way is to write it inside a "Salome table" file (cf. [](#dataserver_data) for a description of the format). Below is a simple example of such a file: ```none #FILE_NAME: myNominalValues.dat #COLUMN_NAMES: x1 | x2 0.0 10.0 5.0 3.0 -5.0 17.0 ``` Still starting from the script of the example of [](#sampler_oat_toatdesign_simple_oat), the only step requiring modifications is the first one: {{ "```{literalinclude} " + parent_dir + "/roottest/uranie/doc/sampler/use_cases/" + language + "/samplingOATMulti." + extension + "\n" + ":language: " + language + "\n" + ":lines: " + bloc[language] + "\n" + "```" }} The "step 2" is now useless and must be removed. The nominal values of the factors will be automatically loaded from the dataserver. Now if we run the modified script, the result is: {{ "```{literalinclude} " + parent_dir + "/roottest/build/uranie/doc/sampler/use_cases/" + language + "/samplingOATMulti.log" + "\n" + ":language: none\n" + ":lines: " + console[language] + "\n" + "```" }} The generated design contains $3\times(2n+1)$ experiments. The attribute "\_\_nominal_set\_\_" now varies from 1 to 3, indicating which set of nominal value is taken as reference. The complete code can be found in [](#use_cases_macro_sampler_oat_multi).