示例#1
0
	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:
示例#3
0
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)