下記のコードを実行するとダイポールアンテナを解析するFDTDシミュレータが立ち上がります。

  1. # coding: utf-8
  2. import pylaf.recipes.fdtd
  3. from plfdtd.solvers.rlsolver import RectilinearYee
  4. class Dielectric(pylaf.recipes.fdtd.Plugin):
  5. def __call__(self):
  6. yee = self.dataset.get()
  7. # yee.epr[:,:,14] = 2.17
  8. class Metal(pylaf.recipes.fdtd.Plugin):
  9. def __call__(self):
  10. ex, ey, ez = self.dataset.get().e
  11. #
  12. ey[20,28:-27,20] = 0.
  13. class PMC(pylaf.recipes.fdtd.Plugin):
  14. def __call__(self):
  15. hx, hy, hz = self.dataset.get().h
  16. if __name__ == '__main__':
  17. port = [('y',20,40,20)]
  18. shape = (40,80,40)
  19. dt = .01 # [ns]
  20. maxiter = 2400
  21. #
  22. dataset = RectilinearYee(shape=shape,dt=dt) # [ns]
  23. dx, dy, dz = dataset.axes
  24. dx[:] = dx * 6 # mm
  25. dy[:] = dy * 6 # mm
  26. dz[:] = dz * 6 # mm
  27. #
  28. from plfdtd import simulator_for_1p
  29. simulator_for_1p.invoke(dataset,port,shape,dt,maxiter,Dielectric,Metal,PMC)
  30. }}}