def run_experiment(self): xmax = self.simulation_params.wall.get_xmax() ymax = self.simulation_params.wall.get_ymax() rc = self.simulation_params.interaction.get_rc() v0 = self.simulation_params.params.v0 mu = self.simulation_params.params.mu deltat = self.simulation_params.params.deltat diffcoef = self.simulation_params.params.diffcoef sim_steps = self.simulation_params.simulation_steps interaction = self.simulation_params.interaction wall = self.simulation_params.wall init_positions = self.simulation_params.init_positions epsilon = self.simulation_params.params.epsilon sigma = self.simulation_params.params.sigma max_lambda = self.max_lambda if self.max_lambda is not None else min( xmax, ymax) / rc - 1 the_lambdas = np.linspace(0, max_lambda, self.lambda_samples) times = [] for lambd in the_lambdas: rv = (1 + lambd) * rc params = Params(rc=rc, rv=rv, v0=v0, mu=mu, deltat=deltat, diffcoef=diffcoef, epsilon=epsilon, sigma=sigma) sim = Simulation(sim_steps, interaction, wall, init_positions, params) sim.run() times.append(sim.total_phys_time) return the_lambdas, np.array(times)
params_tuple = [lambd, eta, total_phys_time, wall_to_use.name(), sigma, epsilon, v0, deltat, all_interactions, particles_num] params_tuple_str = [] for x in params_tuple: if type(x) == float: params_tuple_str.append("%.4f" % x) else: params_tuple_str.append(str(x)) fname = 'result_' + '_'.join(params_tuple_str) + '_.txt' wall = wall_to_use(xmin, xmax, ymin, ymax) rv = (1+lambd)*rc params = Params(rc=rc, rv=rv, v0=v0, mu=mu, deltat=deltat, diffcoef=diffcoef, epsilon=epsilon, sigma=sigma) sim = Simulation(total_phys_time, interaction, wall, init_positions, params) grid_rows = sim.particle_handlers.grid.rows grid_cols = sim.particle_handlers.grid.cols results = sim.run() sim_time = sim.total_run_time with open(fname, 'w') as f: f.write(str(sim_time)) if save_results: pkfile = fname + '_positions.pkl' with open(pkfile, 'wb') as f: pickle.dump(results, f, pickle.HIGHEST_PROTOCOL)
def Sim(): sim = Simulation() sim.run()
from src.simulation import Simulation simulation = Simulation() simulation.run()