Exemplo n.º 1
0
def main(argv):
    L         = 1.0
    alpha     = 1.22e-3

    t_final   = 20.0
    dt        = 0.1
    nt        = int(t_final / dt)

    nx_values = np.asarray([11, 21, 41, 81, 161])
    error     = np.zeros(len(nx_values))

    for i, nx in enumerate(nx_values):
        dx       = L / (nx - 1)
        sigma    = alpha * dt / (dx * dx)

        x        = np.linspace(0, L, nx)

        T        = np.zeros(nx)
        T[0]     = 100

        A        = rod_03.generateMatrix(nx, sigma)
        T        = rod_03.CrankNicolson(T, A, nt, sigma)
        T_exact  = T_analytical(x, t_final, 100, alpha, L)
        error[i] = L2_error(T, T_exact)

    plot_error(nx_values, error, 'error_02.png')
Exemplo n.º 2
0
def main(argv):
    L          = 1.0
    alpha      = 1.22e-3

    nx         = 1001
    dx         = L / (nx - 1)

    x          = np.linspace(0, L, nx)

    dt_values  = np.asarray([1.0, 0.5, 0.25, 0.125])
    error      = np.zeros(len(dt_values))
    error_ftcs = np.zeros(len(dt_values))

    t_final    = 10.0 
    t_initial  = 1.0

    Ti         = T_analytical(x, t_initial, 100, alpha, L)
    T_exact    = T_analytical(x, t_final, 100, alpha, L)

    for i, dt in enumerate(dt_values):
        sigma         = alpha * dt / (dx * dx)
        nt            = int((t_final - t_initial) / dt)

        T             = Ti.copy()
        A             = rod_03.generateMatrix(nx, sigma)
        T             = rod_03.CrankNicolson(T, A, nt, sigma)
        error[i]      = L2_error(T, T_exact)

        T             = Ti.copy()
        A_ftcs        = rod_02.generateMatrix(nx, sigma)
        T             = rod_02.implicit_ftcs(T, A_ftcs, nt, sigma)
        error_ftcs[i] = L2_error(T, T_exact)

    plot_error(dt_values, error, error_ftcs, 'error_01.png')
Exemplo n.º 3
0
def main(argv):
    L = 1.0
    alpha = 1.22e-3

    t_final = 20.0
    dt = 0.1
    nt = int(t_final / dt)

    nx_values = np.asarray([11, 21, 41, 81, 161])
    error = np.zeros(len(nx_values))

    for i, nx in enumerate(nx_values):
        dx = L / (nx - 1)
        sigma = alpha * dt / (dx * dx)

        x = np.linspace(0, L, nx)

        T = np.zeros(nx)
        T[0] = 100

        A = rod_03.generateMatrix(nx, sigma)
        T = rod_03.CrankNicolson(T, A, nt, sigma)
        T_exact = T_analytical(x, t_final, 100, alpha, L)
        error[i] = L2_error(T, T_exact)

    plot_error(nx_values, error, 'error_02.png')
Exemplo n.º 4
0
def main(argv):
    L = 1.0
    alpha = 1.22e-3

    nx = 1001
    dx = L / (nx - 1)

    x = np.linspace(0, L, nx)

    dt_values = np.asarray([1.0, 0.5, 0.25, 0.125])
    error = np.zeros(len(dt_values))
    error_ftcs = np.zeros(len(dt_values))

    t_final = 10.0
    t_initial = 1.0

    Ti = T_analytical(x, t_initial, 100, alpha, L)
    T_exact = T_analytical(x, t_final, 100, alpha, L)

    for i, dt in enumerate(dt_values):
        sigma = alpha * dt / (dx * dx)
        nt = int((t_final - t_initial) / dt)

        T = Ti.copy()
        A = rod_03.generateMatrix(nx, sigma)
        T = rod_03.CrankNicolson(T, A, nt, sigma)
        error[i] = L2_error(T, T_exact)

        T = Ti.copy()
        A_ftcs = rod_02.generateMatrix(nx, sigma)
        T = rod_02.implicit_ftcs(T, A_ftcs, nt, sigma)
        error_ftcs[i] = L2_error(T, T_exact)

    plot_error(dt_values, error, error_ftcs, 'error_01.png')