Commit c052c6bee9d8f48a0033b171850a795515d5f698

bpml work
  
99# program start
1010
1111new_efield = grid.Plane(shape=(301,301), timestep=1, spacestep=2*3*10**8)
12new_efield.eps[:180,0:] *= 2
12#new_efield.eps[:180,0:] *= 2
1313new_efield.sigmae = grid.PlaneBase(new_efield.shape)
1414new_efield.sigmah = grid.PlaneBase(new_efield.shape)
15###
16new_efield.sigmae.y[0,0:301] = new_efield.sigmae.x[300,0:301] = 1000
1517
18new_efield.sigmae.y[1,1:300] = new_efield.sigmae.x[299,1:300] = 870
19
20new_efield.sigmae.y[2,2:299] = new_efield.sigmae.y[298,2:299] = 660
21
22new_efield.sigmae.y[3,3:298] = new_efield.sigmae.y[297,3:298] = 540
23
24new_efield.sigmae.y[4,4:297] = new_efield.sigmae.y[296,4:297] = 430
25
26new_efield.sigmae.y[5,5:296] = new_efield.sigmae.y[295,5:296] = 350
27
28new_efield.sigmae.y[6,6:295] = new_efield.sigmae.y[294,6:295] = 270
29
30new_efield.sigmae.y[7,7:294] = new_efield.sigmae.y[293,7:294] = 180
31
32new_efield.sigmae.y[8,8:293] = new_efield.sigmae.y[292,8:293] = 120
33
34new_efield.sigmae.y[9,9:292] = new_efield.sigmae.y[291,9:292] = 30
35
36###
37new_efield.sigmae.y[0:301,0] = 5
38new_efield.sigmae.y[0:301,300] = 5
39
40new_efield.sigmae.y[1:300,1] = 4.5
41new_efield.sigmae.y[1:300,299] = 4.5
42
43new_efield.sigmae.y[2:299,2] = 4.0
44new_efield.sigmae.y[2:299,298] = 4.0
45
46new_efield.sigmae.y[3:298,3] = 3.5
47new_efield.sigmae.y[3:298,297] = 3.5
48
49new_efield.sigmae.y[4:297,4] = 3.0
50new_efield.sigmae.y[4:297,296] = 3.0
51
52
53###
54pylab.imshow(numpy.array(new_efield.sigmae.x + new_efield.sigmae.y, dtype="float"))
55pylab.savefig("field-sigma-sum.png")
56pylab.clf()
57###
58
1659new_hfield = grid.Plane(shape=(301,301), timestep=1, spacestep=2*3*10**8)
17new_hfield.eps[:180,0:] *= 2
60# new_hfield.eps[:180,0:] *= 2
1861new_hfield.zx = numpy.zeros(new_hfield.shape)
1962new_hfield.zy = numpy.zeros(new_hfield.shape)
20new_hfield.sigmae = grid.PlaneBase(new_hfield.shape)
21new_hfield.sigmah = grid.PlaneBase(new_hfield.shape)
63# new_hfield.sigmae = grid.PlaneBase(new_hfield.shape)
64new_hfield.sigmae = new_efield.sigmae
65# new_hfield.sigmah = grid.PlaneBase(new_hfield.shape)
66new_hfield.sigmah = new_efield.sigmah
2267
2368
2469for step in range(1,250):
2570 new_efield.y[149:152,149:152] += float(mpmath.sin(step*mpmath.pi/6.125))
2671 new_efield = update_efield( new_efield, new_hfield )
27 new_hfield.zx[150,150] += float(mpmath.sin(step*mpmath.pi/6.125))/2
28 new_hfield.zy[150,150] += float(mpmath.sin(step*mpmath.pi/6.126))/2
72 new_hfield.zx[280,150] += float(mpmath.sin(step*mpmath.pi/6.125))/2
73 new_hfield.zy[280,150] += float(mpmath.sin(step*mpmath.pi/6.126))/2
2974 new_hfield = update_hfield( new_efield, new_hfield )
3075
3176 h = numpy.array(new_hfield.z, dtype="float")
8080 if (i+j)%2 == 1:
8181 h[i,j] = ( h[i+1,j] + h[i-1,j] + h[i,j+1] + h[i,j-1] ) / 4
8282
83 pylab.imshow( h, interpolation="quadric", norm=matplotlib.colors.Normalize(-1,1.8,True) )
83 pylab.imshow( h, interpolation="quadric", norm=matplotlib.colors.Normalize(-0.3,0.3,True) )
8484 pylab.colorbar()
8585
8686 pylab.savefig("result/fdtd_plane-%.3d.png" % step)