def set_space( s, Space, Nx_list ): s.Nx_sum_list = list( (sc.array(Nx_list)[:]).cumsum() ) s.Nx_sum_list.insert(0,0) s.gi1 = s.global_pt1[0] s.gi2 = s.global_pt2[0] if s.gi1 == None: s.gi1 = 1 if s.gi2 == None: s.gi2 = s.Nx_sum_list[-1] s.participant_list = s.calc_participant_list() if s.myrank is not server: if s.myrank in s.participant_list: s.participant = True pt1, pt2 = s.calc_points() Output.__init__( s, s.dataform, pt1, pt2, s.spatial_step ) else: s.participant = False if s.myrank is not server: if s.myrank in s.participant_list: Output.set_space( s, Space )
from kufdtd.dim3.cpu.base import * from kufdtd.dim3.cpu.matter import Dielectric from kufdtd.dim3.cpu.cpml import CpmlNonKappa from kufdtd.dim3.output import Output #-------------------------------------------------------------------- Nx, Ny, Nz = 200, 200, 32 dx = 10e-9 tmax = 1000 Ncore = 8 Npml = 15 Cpml = CpmlNonKappa(Npml, ('fb', 'fb', 'fb')) Output_ez = Output('Ez', (0, 0, Nz / 2), (Nx - 1, Ny - 1, Nz / 2)) Output_e = Output('e', (None, 0, Nz / 2), (None, Ny - 2, Nz / 2), (2, 2, 1)) output_list = [Output_ez, Output_e] #-------------------------------------------------------------------- S = Dielectric(Nx, Ny, Nz, dx, Ncore) S.allocate_main() S.allocate_coeff() S.set_coeff() Cpml.set_space(S) Cpml.allocate_psi() Cpml.allocate_coeff() for output in output_list:
from kufdtd.dim3.cpu.cpml import CpmlNonKappa from kufdtd.dim3.output import Output from kufdtd.dim3.tfsf import Tfsf #-------------------------------------------------------------------- Nx, Ny, Nz = 200, 200, 64 dx = 10e-9 tmax = 1000 Ncore = 8 Npml = 15 wavelength = 600e-9 Cpml = CpmlNonKappa(Npml, ('fb', 'fb', 'fb')) Output_ey = Output('Ey', (None, None, Nz / 2), (None, None, Nz / 2)) output_list = [Output_ey] Src = Tfsf((50, 50, 20), (150, 150, 40), ('fb', 'fb', 'fb'), wavelength, ['normal', 'x'], 0) src_list = [Src] #-------------------------------------------------------------------- S = Dielectric(Nx, Ny, Nz, dx, Ncore) S.allocate_main() S.allocate_coeff() S.set_coeff() Cpml.set_space(S) Cpml.allocate_psi()
from kufdtd.dim3.cpu.cpml import CpmlNonKappa from kufdtd.dim3.output import Output # -------------------------------------------------------------------- Nx, Ny, Nz = 200, 200, 32 dx = 10e-9 tmax = 1000 Ncore = 8 Npml = 15 Cpml = CpmlNonKappa(Npml, ("fb", "fb", "fb")) Output_ez = Output("Ez", (0, 0, Nz / 2), (Nx - 1, Ny - 1, Nz / 2)) Output_e = Output("e", (None, 0, Nz / 2), (None, Ny - 2, Nz / 2), (2, 2, 1)) output_list = [Output_ez, Output_e] # -------------------------------------------------------------------- S = Dielectric(Nx, Ny, Nz, dx, Ncore) S.allocate_main() S.allocate_coeff() S.set_coeff() Cpml.set_space(S) Cpml.allocate_psi() Cpml.allocate_coeff() for output in output_list: output.set_space(S)