DAKOTA
DAKOTA developed by Sandia National Laboratory represents a tool for optimization of designs, sensitivity and uncertainty analysis of virtually unlimited kinds of simulations. The user manual can be found at DAKOTA homepage.
Running DAKOTA
It is the best to illustrate DAKOTA function by an example. Running DAKOTA requires typically DAKOTA input file, template file to generate variants of input files for the actual calculation tool, and driver script that defines for DAKOTA how to read the results. This example is built for Serpent and analysis of multiplication factor uncertainty due to fuel salt density uncertainty.
DAKOTA input file defines calculation parameters. Especially the sampling method, default value of the analysed parameter and its standard deviation.
environment tabular_data output_precision 1e-16 results_output method sampling sample_type lhs seed = 52983 samples = 100 model single variables active all normal_uncertain = 1 means -2.06684099705179 std_deviations 0.02 descriptors 'saltDensity' interface analysis_drivers = 'driver.sh' fork parameters_file = 'params.in' results_file = 'results.out' file_save responses response_functions = 1 descriptors = 'kinf' no_gradients no_hessians
Serpent template file with {saltDensity} keyword to be replaced by the variations.
set title "Graphite block 12 cm, salt channel 5 cm" pin 1 salt 5 graphite pin e graphite lat lat.1 2 0.0 0.0 3 3 12 e e e e 1 e e e e surf S.1 hexyc 0.0 0.0 6 cell C.1 0 fill lat.1 -S.1 cell C.O 0 outside S.1 mat salt {saltDensity} 3007.02c 3.60000E-01 9019.02c 5.48000E-01 4009.02c 9.00000E-02 92235.02c 1.01214E-04 92238.02c 1.89742E-03 92234.02c 9.04661E-07 92236.02c 4.63607E-07 mat graphite -1.8 moder grph12 6012 6012.02c 0.9893 6013.02c 0.0107 therm grph12 900 gr30.85t gr30.86t set acelib "/opt/ENDFB-8.0/endfb80.xsdir" set declib "/opt/ENDFB-8.0/sss_endfb80.dec" set nfylib "/opt/ENDFB-8.0/sss_endfb80.nfy" set bc 3 set pop 10000 500 20
The next file is driver.sh file that depends on the computational environment. The presented version works with the NEcluster. This driver.sh file defines preprocessing command for DAKOTA, check for existence of output files, submit command for the Serpent job, waiting for the results, and command to get results from Serpent output file.
#!/bin/bash dprepro params.in msrG12S5_template msrG12S5_input if [ -f msrG12S5_input.done ]; then rm msrG12S5_input.done fi qsub runSkript.sh while [ ! -f msrG12S5_input.done ]; do echo "#" sleep 30 done awk '/IMP_KEFF/ {print $7,'kinf'}' msrG12S5_input_res.m > results.out