Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
 def Sim():
     sim = Simulation()
     sim.run()
Exemplo n.º 4
0
from src.simulation import Simulation

simulation = Simulation()
simulation.run()