from scipy.integrate import solve_ivp from scipy.integrate import quad import helper as h import time import sys #for q in range(qnum): t0 = time.time() L = 1 numints = 1000 dx = float(L) / numints print(int(L / dx)) xx = np.linspace(0, L, num=numints + 1) N = len(xx) Einit = h.initial(xx, L) Hinit = h.initial(xx, L) H00 = h.D0(xx, L) a1 = 0.5 * np.ones(N - 1) Dx = np.diag(a1, k=1) + np.diag(-a1, k=-1) np.set_printoptions(precision=3, threshold=10) Dx[0, 0] = -3 / 2 Dx[0, 1] = 2 Dx[0, 2] = -1 / 2 Dx[-1, -1] = 3 / 2 Dx[-1, -2] = -2
import numpy as np import matplotlib.pyplot as plt from scipy.integrate import solve_ivp from scipy.integrate import quad import helper as h L = 10 dx = 0.1 xx = np.linspace(0, L, num=(L / dx) + 1) N = len(xx) Einit = h.initial(xx) #Einit = np.sin(np.pi*x/L) Einit[0] = 0 Einit[-1] = 0 Hinit = h.initial(xx) #Hinit = np.sin(np.pi*x/L) Hinit[0] = Hinit[1] Hinit[-1] = Hinit[-2] initial = np.concatenate((Hinit, Einit)) A = np.diag([1 for b in range(N - 1)], k=1) + np.diag( [-1 for c in range(N - 1)], k=-1) Hm = np.copy(A) Hm[0, :] = 0 Hm[-1, :] = 0
import numpy as np import helper as h #from scipy.integrate import solve_ivp numints = 1000 L = 1. dx = L / numints x = np.linspace(0, L, num=numints + 1) N = len(x) def n(z): return 1 + z / L Ea = h.initial(x, L) #Ea[-1] = Ea[-2] #Ea[0] = Ea[1] #Ea[0] = Ea[-1] Ea[0] = 0 Ea[-1] = 0 Ha = h.initial(x, L) #Ha[-1] = Ha[-2] #Ha[0] = Ha[1] #Ha[0] = Ha[-1] Ha[0] = (18. / 11) * Ha[1] - (9. / 11) * Ha[2] + (2. / 11) * Ha[3] Ha[-1] = (18. / 11) * Ha[-2] - (9. / 11) * Ha[-3] + (2. / 11) * Ha[-4]
L = 1 dx = L / qs[q] hs[q] = dx xx = np.linspace(0, L, num=qs[q] + 1) N = len(xx) H00 = h.D0(xx, L) dt = dx / 2 s = dt / dx T = 2 m = int(round(T / dt)) Ha = np.zeros((N, m + 1)) Ha[:, 0] = h.initial(xx, L) Ea = np.zeros((N, m + 1)) Ea[:, 0] = h.initial(xx, L) Ea[0, 0] = 0 Ea[-1, 0] = 0 for j in range(1, m + 1): Ha[1:-1, j] = Ha[1:-1, j - 1] + s * (Ea[2:, j - 1] - Ea[1:-1, j - 1]) Ha[0, j] = (4. / 3) * Ha[1, j] - (1. / 3) * Ha[2, j] Ha[-1, j] = (4. / 3) * Ha[-2, j] - (1. / 3) * Ha[-3, j] Ea[1:-1, j] = Ea[1:-1, j - 1] + s * (Ha[1:-1, j] - Ha[:-2, j]) Ea[0, j] = 0 Ea[-1, j] = 0
from mpl_toolkits.mplot3d import Axes3D import numpy as np import matplotlib.pyplot as plt from scipy.integrate import solve_ivp from scipy.integrate import quad import helper as h L = 50 L = float(L) numints = 1000 dx = float(L) / numints print(int(L / dx)) xx = np.linspace(0, L, num=numints + 1) N = len(xx) Einit = h.initial(xx, L) Einit[0] = 0 Einit[-1] = 0 Hinit = -h.initial(xx, L) Hinit[0] = 0 Hinit[-1] = 0 a1 = np.zeros(N - 3) initial = np.concatenate((Hinit, Einit)) A = np.diag(a1 + (1.0 / 2), k=1) + np.diag(a1 - (1.0 / 2), k=-1) np.set_printoptions(precision=3, threshold=100) Hm = np.copy(A) '''
from scipy.integrate import quad import helper as h import time import sys #for q in range(qnum): t0 = time.time() L = 10 numints = 500 dx = float(L) / numints #dx = 0.1 print(int(L / dx)) xx = np.linspace(0, L, num=numints + 1) N = len(xx) Einit = h.initial(xx) Einit[0] = 0 Einit[-1] = 0 Hinit = h.initial(xx) #Hinit = np.zeros(N) Hinit[0] = 0 Hinit[-1] = 0 H00 = h.D0(xx, L) a1 = np.zeros(N - 1) initial = np.concatenate((Hinit, Einit)) A = np.diag(a1 + (1.0 / 2), k=1) + np.diag(a1 - (1.0 / 2), k=-1)
from matplotlib import pyplot as plt import numpy as np import helper as h #from scipy.integrate import solve_ivp numints = 1000 L = 10. dx = L / numints x = np.linspace(0, L, num=numints + 1) N = len(x) Ea = h.initial(x) Ea[0] = 0 Ea[-1] = 0 Ha = h.initial(x) Ha[0] = 0 Ha[-1] = 0 T = 10 dt = dx / 2 s = dt / (2 * dx) m = int(round(T / dt)) Herr = np.zeros(N) Eerr = np.zeros(N) H00 = h.D0(L)
from matplotlib import pyplot as plt import numpy as np from scipy.integrate import quad import helper as h L = 10.0 numints = 500 dx = L / numints xx = np.linspace(0, L, num=numints + 1) N = len(xx) T = 100 H00 = h.D0(xx, L) Eyee = h.initial(xx) Eyee[0] = 0 Eyee[-1] = 0 Hyee = h.initial(xx) Hyee[0] = 0 Hyee[-1] = 0 dt = dx / 2 s = dt / (2 * dx) m = int(round(T / dt)) Herr = np.zeros(m) Eerr = np.zeros(m)
#etmp = Ea[0] #Ea[0] = Ea[-1] #Ea[-1] = etmp Ea[0] = 0 Ea[-1] = 0 t = (j + 1) * dt if (2 * np.pi / T * t <= np.pi): Ea[int((N - 1) / 2)] = np.sin(2 * np.pi / T * t) #if(t%(3*L)==0): if (t == int(t)): print( str(np.max(np.abs(Ea - h.initial(x, L)))) + '\t' + str(np.max(np.abs(Ha - h.initial(x, L))))) ax11.plot(x, Ea, label='t=' + str(t)) ax11.set_ylabel('E_z') #ax11.set_ylim([-1,1]) ax12.plot(x, Ha) ax12.set_ylabel('H_y') #ax12.set_ylim([-1, 1]) ''' H = H00 + np.zeros(N) E = np.zeros(N) for k in range(1,151): H = H + h.Hn(x, t, k, L) E = E + h.En(x, t, k, L) Herr = np.abs(Ha - H)