Ejemplo n.º 1
0
def run_model_abstract_1d():
    dx = 0.4
    L = 5.0
    dim = 1
    t_max = 160.0
    dt = 2.0

    D_rho = 0.01
    mu = 0.215

    m = ModelAbstract(dim, dt, dx, L, D_rho, mu, walls=None)

    print(m.get_x().shape, m.get_c().shape)
    raw_input()
    fig = plt.figure()
    ax_rho = fig.add_subplot(2, 1, 1)
    ax_c = fig.add_subplot(2, 1, 2)
    plot_rho = ax_rho.plot(m.get_x(), m.get_rho(), c='red')[0]
    plot_c = ax_c.plot(m.get_x(), m.get_c(), c='green')[0]
    plt.ion()
    plt.show()
    every = 1

    while m.t < t_max:
        if not m.i % every:
            plot_rho.set_ydata(m.get_rho())
            plot_c.set_ydata(m.get_c())
            rho = m.get_rho()
            rho_ran = rho.max() - rho.min()
            rho_max = rho.max() + 0.1 * rho_ran
            rho_min = rho.min() - 0.1 * rho_ran
            ax_rho.set_ylim(rho_min, rho_max)
            c = m.get_c()
            c_ran = c.max() - c.min()
            c_max = c.max() + 0.1 * c_ran
            c_min = c.min() - 0.1 * c_ran
            ax_c.set_ylim(c_min, c_max)
            fig.canvas.draw()
            print(m.t, np.var(rho))
        m.iterate()