def solve_upwind(T, X, MAX_TIME): grid_u = func.initialize_grid(T, X, c.RHO_0) delta_x = c.L/(X-1) delta_t = MAX_TIME/(T-1) for i in range(1, T): time=i*delta_t grid_u[i]=one_step_upwind(grid_u[i-1], X, delta_t, delta_x, time) return grid_u
def solve_lax_wendroff(T, X, MAX_TIME): rho0, L = c.RHO_0, c.L delta_x = L / (X - 1) delta_t = MAX_TIME / (T - 1) grid_u = func.initialize_grid(T, X, rho0) for i in range(1, T): time = i * delta_t grid_u[i] = one_step_lax_wendroff(grid_u[i - 1], X, delta_t, delta_x, time, rho0, L) return grid_u
def solve_mac_cormack(T, X, MAX_TIME): rho0, L = c.RHO_0, c.L grid_u = func.initialize_grid(T, X, rho0) delta_x = L / (X - 1) delta_t = MAX_TIME / (T - 1) for i in range(1, T): time = i * delta_t grid_u[i] = one_step_mac_cormack(grid_u[i - 1], X, delta_t, delta_x, time, rho0, L) return grid_u