TF = space.Basic3D((Nx, Ny, Nz), (dx, dy, dz), dt, Tsteps, np.float32, np.complex64, engine='cupy') # Total field IF = space.Basic3D((Nx, Ny, Nz), (dx, dy, dz), dt, Tsteps, np.float32, np.complex64, engine='cupy') # Incident field SF = space.Empty3D((Nx, Ny, Nz), (dx, dy, dz), dt, Tsteps, np.float32, np.complex64, engine='cupy') # Scattered field TF.malloc() IF.malloc() SF.malloc() # Put structures radius = 200 * um height = (500 * um, 700 * um) center = (640 * um, 640 * um) cylinder = structure.Cylinder(TF, radius, height, center, 4., 1.) # Set PML and PBC TF.set_PML({'x': '+-', 'y': '+-', 'z': '+-'}, 10)
interval = 2 spread = 0.3 pick_pos = 1000 plot_per = 30 wvlens = np.arange(200, 600, interval) * um freqs = c / wvlens np.save("../graph/freqs", freqs) #------------------------------------------------------------------# #-------------------------- Call objects --------------------------# #------------------------------------------------------------------# FDTDspace = space.Basic3D((Nx,Ny,Nz), (dx,dy,dz), dt, Tstep, np.complex64, np.complex64, method='FDTD', engine='cupy') PSTDspace = space.Basic3D((Nx,Ny,Nz), (dx,dy,dz), dt, Tstep, np.complex64, np.complex64, method='PSTD', engine='cupy') Diffspace = space.Empty3D((Nx,Ny,Nz), (dx,dy,dz), dt, Tstep, np.complex64, np.complex64) FDTDspace.malloc() PSTDspace.malloc() # Put structures #Box1_srt = (round(222*um/dx), round( 0*um/dy), round( 0*um/dz)) #Box1_end = (round(272*um/dx), round(96*um/dy), round( 96*um/dz)) #Box = structure.Box(FDTDspace, Box1_srt, Box1_end, 4., 1.) # Set PML and PBC FDTDspace.set_PML({'x':'+-','y':'','z':''}, 10) PSTDspace.set_PML({'x':'+-','y':'','z':''}, 10) # Save eps, mu and PML data. #FDTDspace.save_PML_parameters('./')
Tsteps, np.complex64, np.complex64, method=method, engine=engine) IF = space.Basic3D((Nx, Ny, Nz), (dx, dy, dz), dt, Tsteps, np.complex64, np.complex64, method=method, engine=engine) SF = space.Empty3D((Nx, Ny, Nz), (dx, dy, dz), dt, Tsteps, np.complex64, np.complex64, method=method, engine=engine) TF.malloc() IF.malloc() ########## Set PML and PBC thick = 10 pml = {'x': '+-', 'y': '', 'z': ''} bbc = {'x': False, 'y': False, 'z': False} pbc = {'x': False, 'y': True, 'z': True} TF.apply_PML(pml, thick) TF.apply_BBC(bbc)