Esempio n. 1
0
        x0=-0.4,
        xf=0.4,
        t0=0.0,
        #tf=2.0,
        tf=0.005,
    )

    # Initial conditions
    U_0 = ic(solver.x)
    U_0 = np.append(U_0, U_0[-solver.gc:])
    U_0 = np.append(U_0[0:solver.gc], U_0)
    U_0 = np.atleast_2d(U_0)

    # Solve
    Urk3, solrk3 = solver.rk3(U_0)  # self.U_0_sol
    Ue, sole = solver.euler(U_0)  # self.U_0_sol
    if 1:
        #U_0 = np.atleast_2d(U_0)[:, solver.gc: -(1 + solver.gc)]
        #plt.plot(solver.x, U_0, '--', label='Initial')
        plt.plot(solver.xc, U_0.T, '--', label='Initial')
        # plt.plot(x, uc, '--')
        plt.plot(solver.x,
                 Ue[:, solver.gc:-(solver.gc)].T,
                 '--',
                 label='Euler')
        #plt.plot(solver.xc, sol, '-.', label='RK3')
        #plt.plot(solver.x, sol[-1, :].T, '-.', label='RK3')
        plt.plot(solver.x,
                 Urk3[:, solver.gc:-(solver.gc)].T,
                 '-.',
                 label='RK3')
Esempio n. 2
0
    #U_0 = np.zeros([2, N])
    #U_0[:, int(.5 / solver.dx): int(1 / solver.dx + 1)] = 2
    #sol = solver.rk3(U_0)  # self.U_0_sol
    #U_0 = np.atleast_2d(U_0)
    # Add ghost cells
    #U_0 = np.hstack((U_0, U_0[:, -solver.gc:]))
    #U_0 = np.hstack((U_0[:, -solver.gc:], U_0))
    # Solve
    U_0 = IC(solver.xc)
    print(f'U_0 = {U_0}')
    print(f'U_0[0] = {U_0[0]}')
    print(f'U_0[1] = {U_0[1]}')
    print(f'U_0[2] = {U_0[2]}')

    #  Urk3, solrk3 = solver.rk3(U_0)  # self.U_0_sol
    Urk3, solrk3 = solver.euler(U_0)  # self.U_0_sol
    #Ue, sole = solver.euler(U_0)  # self.U_0_sol
    #print(f'sol = {sol}')
    #fsol = self.U_0_sol
    #print(f'Ue.shape = {Ue.shape}')
    #print(f'sole.shape = {sole.shape}')
    print(f'solver.xc.shape = {solver.xc.shape}')
    print(f'solver.xc.shape = {solver.x.shape}')
    if 1:
        plt.figure(1)
        plt.plot(1)
        plt.plot(solver.xc, U_0[0, :].T, '.', label='Initial 1')
        plt.plot(solver.xc, U_0[1, :].T, 'x', label='Initial 2')
        plt.plot(solver.xc, U_0[2, :].T, 'o', label='Initial 3')
        plt.plot(solver.xc, exact(solver.xc, 0)[0].T, label='Exact 1, t = 0')
        plt.plot(solver.xc, exact(solver.xc, 0)[1].T, label='Exact 2, t = 0')