Ejemplo n.º 1
0
class Job(object):
    """
    This class represents a simulation job to be run
    """

    def __init__(self, job_name, simulation_parameters, x_variable_field, x_variable_name, x_variable_values, y_variables, debug=False):
        """
        Constructor for the parameters present in a job
        """
        counter = 0
        for x_var in x_variable_values:
            counter += 1
            _set_attribute_recursively(simulation_parameters, x_variable_field, x_var)

            if debug:
                import time

                print "\n\n%s -- Running %d of %d with variable %s with value %s" % (time.strftime("%H:%M:%S"), counter, len(x_variable_values), x_variable_name, str(x_var))

            self.sim = Simulation(simulation_parameters)
            self.sim.run()
            self.sim.end_simulation()

            if DRAW_MAPS:
                import plot_plane
                plot_plane.plot_plane(self.sim.plane, self.sim.all_nodes, str(job_name) + str(counter))

            for y_var_name in y_variables:
                y_value = y_variables[y_var_name](self.sim.protocol_manager)
                _save_to_file_statistics(job_name, x_variable_name, y_var_name, x_var, y_value)