rollo.evaluation
Contents
rollo.evaluation
Module Contents
- class rollo.evaluation.Evaluation
Holds functions that generate and execute the evaluation solver’s scripts.
DEAP’s (evolutionary algorithm package) fitness evaluator requires an evaluation function to evaluate each individual’s fitness values. The Evaluation class contains a method that creates an evaluation function that runs the nuclear software and returns the required fitness values, defined in the input file.
- input_scripts
key is evaluation software name, value is that evaluation software’s template input script name
- Type
dict
- output_scripts
key is evaluation software name, value is that evaluation software’s template output script name
- Type
dict
- add_evaluator(self, solver_name, input_script, output_script)
Adds information about an evaluator to the Evaluation class object for later use in eval_fn_generator.
- Parameters
solver_name (str) – name of solver
input_script (str) – input script name
output_script (str) – optional output script name
- eval_fn_generator(self, control_dict, output_dict, input_evaluators, gens, parallel_method, keep_files)
if parallel_method is none or multiprocessing, this function returns a function that accepts a DEAP individual and returns a tuple of output values listed in outputs
if parallel_method is job_control, this function returns a function that accepts a list of DEAP individuals (population) and returns a list of output value tuples. Each tuple corresponds to one individual
- Parameters
control_dict (OrderedDict) – Ordered dict of control variables as keys and a list of their solver and number of variables as each value
output_dict (OrderedDict) – Ordered dict of output variables as keys and solvers as values
input_evaluators (dict) – evaluators sub-dictionary from input file
gens (int) – total generations in simulation (defined in input file)
parallel_method ({'none', 'multiprocessing', 'job_control'}) – parallelization method
- Returns
eval_function – function that runs the evaluation software and returns output values output by the software
- Return type
function
- create_input_execute_output_scripts(self, pop, solver, control_vars_dict, input_evaluators_solver)
Renders input scripts, copies execute scripts, and renders output scripts for parallel_method=job_control in each individual’s directory
- Parameters
pop (list) – list of deap.creator.Ind
solver (str) – name of solver
control_vars_dict (dict) – multiple layers of dicts layer 1: gen_ind dir (str) layer 2: solver (str) layer 3: control parameter (str) layer 4: control parameter value (float)
input_evaluators_solver (dict) – specific solver’s evaluators sub-sub-dictionary from input file
- Return type
None
- run_input_and_execute_and_output_scripts(self, pop, solver, input_evaluators_solver)
Runs input scripts, execute scripts or executable, and output scripts for parallel_method=job_control in each individual’s directory
- Parameters
pop (list) – list of deap.creator.Ind
solver (str) – name of solver
control_vars_dict (dict) – multiple layers of dicts layer 1: gen_ind dir (str) layer 2: solver (str) layer 3: control parameter (str) layer 4: control parameter value (float)
input_evaluators_solver (dict) – specific solver’s evaluators sub-sub-dictionary from input file
- Return type
None
- generate_run_command_job_control(self, pop, solver, single_command)
Generates bash command to run all directories executables for parallel_method=job_control
- Parameters
pop (list) – list of deap.creator.Ind
solver (str) – name of solver
control_vars_dict (dict) – multiple layers of dicts layer 1: gen_ind dir (str) layer 2: solver (str) layer 3: control parameter (str) layer 4: control parameter value (float)
input_evaluators_solver (dict) – specific solver’s evaluators sub-sub-dictionary from input file
- Returns
command – bash command to run all directories executables for parallel_method=job_control
- Return type
str
- get_output_vals_job_control(self, output_vals_dict, pop, solver, output_dict, control_vars_dict)
returns a list of output value tuples. Each tuple corresponds to output values for one individual. The results are in order of the individuals in pop. For parallel_method=job_control
- Parameters
output_vals_dict (dict) –
layer 1: gen_ind dir (str) layer 2: list of output values requested by rollo input file
in correct order
pop (list) – list of deap.creator.Ind
solver (str) – name of solver
output_dict (OrderedDict) – Ordered dict of output variables as keys and solvers as values
control_vars_dict (dict) – multiple layers of dicts layer 1: gen_ind dir (str) layer 2: solver (str) layer 3: control parameter (str) layer 4: control parameter value (float)
- Returns
all_output_vals – each index of list contains a tuple of output values from evaluators ordered by output_dict
- Return type
list
- run_input_script_serial(self, solver, control_vars_solver, ind, path)
Renders an input script into an individual’s directory and runs it for parallel_method=none or multiprocessing
- Parameters
solver (str) – name of solver
control_vars_solver (str) – name of evaluation solver software
ind (deap.creator.Ind) –
path (str) – path name
- Return type
None
- run_execute_serial(self, input_evaluator_solver_execute, path, solver)
copies execute scripts into an individual’s directory if the scripts exists then runs it or only the executable for parallel_method=none or multiprocessing
- Parameters
input_evaluator_solver_execute (list) – execute list from specific solver’s evaluators sub-sub-dictionary from input file
path (str) – path name
solver (str) – name of solver
- Return type
None
- solver_order(self, input_evaluators)
Returns a list with solver name at its order index
- Parameters
input_evaluators (dict) – evaluators sub-dictionary from input file
- Returns
list with solver name at its order index e.g. if openmc solver order = 0 and moltres solver order = 1, the returned list looks like [“openmc”, “moltres”]
- Return type
list
- render_input_script(self, solver, control_vars_solver, ind, path)
Renders an input script into an individual’s directory
- Parameters
solver (str) – name of solver
control_vars_solver (str) – name of evaluation solver software
ind (deap.creator.Ind) –
path (str) – path name
- Return type
None
- generate_execute_scripts(self, path, input_evaluator_solver_execute)
Copies execute scripts into an individual’s directory
- Parameters
path (str) – path name
input_evaluator_solver_execute (list) – execute list from specific solver’s evaluators sub-sub-dictionary from input file
- Return type
None
- generate_output_script(self, path, solver)
Copies output script into an individual’s directory
- Parameters
path (str) – path name
solver (str) – name of solver
- Return type
None
- subprocess_call(self, path, out_file, command)
Runs command in bash
- Parameters
path (str) – path name
out_file (str) – txt file to output command’s stderror and stdoutput to
command (str) – bash command to run
- Return type
None
- run_output_script_serial(self, output_vals, solver, output_dict, control_vars, path)
Copies an output script into an individual’s directory and runs it and returns a populated list with output values for each solver
- Parameters
output_vals (list) – empty list of the correct size
solver (str) – name of solver
output_dict (OrderedDict) – Ordered dict of output variables as keys and solvers as values
control_vars (dict) – multiple layers of dict layer 1: solver name layer 2: control parameter str layer 3: control parameter value
path (str) – path name
- Returns
output_vals – output values requested by rollo input file in correct order
- Return type
list
- get_output_vals(self, output_vals, solver, path, output_dict, control_vars)
Returns a populated list with output values for each solver
- Parameters
output_vals (list) – list of Nones with length corresponding to number of output values
solver (str) – name of solver
path (str) – path name
output_dict (OrderedDict) – Ordered dict of output variables as keys and solvers as values
control_vars (dict) – multiple layers of dict layer 1: solver name layer 2: control parameter str layer 3: control parameter value
- Returns
output_vals – output values requested by rollo input file in correct order
- Return type
list
- name_ind(self, ind, control_dict, input_evaluators)
Returns a dictionary that maps the control_dict’s variable names to values from ind list
- Parameters
ind (deap.creator.Ind) – Created in rollo.toolbox_generator.ToolboxGenerator. It is a list with special attributes.
control_dict (OrderedDict) – Ordered dict of control variables as keys and a list of their solver and number of variables as each value
input_evaluators (dict) – evaluators sub-dictionary from input file
- Returns
control_vars – multiple layers of dict layer 1: solver name layer 2: control parameter str layer 3: control parameter value
- Return type
dict
- render_jinja_template(self, script, control_vars_solver, ind, solver)
Renders a jinja2 templated input file. This will be used by solvers with text-based interfaces such as Moltres
- Parameters
script (str) – name of evaluator template script
control_vars_solver (str) – name of evaluation solver software
- Returns
rendered_template – rendered evaluator template script
- Return type
str