Dear All, I am a first year PhD student just getting into using FDTD for biosensing. My current project involves analysing how the radiative decay rate of a dipole changes with position on a thin metal film patterned with a square nanohole array. I'm trying to implement something similar to the example here<https://support.lumerical.com/hc/en-us/articles/360042161033-Fluorescence-enhancement>.
I have a 3D planar surface with bloch periodic boundaries, on all except the top and bottom Z plane (I have also tried with just a unit cell and PML boundaries on all sides). My structure lies in the lower half of the simulation box, with a 45nm thick gold/silver film and a dielectric box with index=1.58 below the metal. I have moved the dipole around the box in the x and z directions, with polarisations of Ex and Ez. I am unable to measure any power being radiated into the space above the dipole. I have flux monitors surrounding the dipole in a box, which measure the power emanating from the dipole in a homogeneous (air) and inhomogeneous (with metal structure) environment. I then normalise the results by dividing the sum of the power over all frequencies (Pinhomo/Phomo). This should give the purcell factor, and I appear to have good agreement with what I hypothesize. There is a large enhancement close to the surface, and especially close to the edges of the structure. This part seems to be fine. dipole_box = sim.add_flux(fcen, df, nfreq, mp.FluxRegion(center=mp.Vector3(cx+0.5*box,cy,cz), size=mp.Vector3(0,box,box),direction=mp.X,weight=+1), ... mp.FluxRegion(center=mp.Vector3(cx,cy-0.5*box,cz), size=mp.Vector3(box,0,box),direction=mp.Y,weight=-1)) I also have flux monitors on the edges of the air surrounding the upper half of the system (below the PML boundary) in the form of a 5 sided box, where the missing plane is that located on the metal surface. This should result in an increase in power in the inhomogeneous environment, but there is hardly any power before or after. This can be seen in the graphs attached. simulation_box = sim.add_flux(fcen, df, nfreq, mp.FluxRegion(center=mp.Vector3(0,0,0.5*sz-dpml), size=mp.Vector3(sx,sy,0),weight=+1), mp.FluxRegion(center=mp.Vector3(0,0.5*sy,0.25*sz), size=mp.Vector3(sx,0,0.5*sz-dpml),weight=+1), mp.FluxRegion(center=mp.Vector3(0,-0.5*sy,0.25*sz), size=mp.Vector3(sx,0,0.5*sz-dpml),weight=-1), mp.FluxRegion(center=mp.Vector3(0.5*sx,0,0.25*sz), size=mp.Vector3(0,sy,0.5*sz-dpml),weight=+1), mp.FluxRegion(center=mp.Vector3(-0.5*sx,0,0.25*sz), size=mp.Vector3(0,sy,0.5*sz-dpml),weight=-1)) Placing a monitor on the surface of the metal also gives expected results, with more power entering the metal when the dipole is closer to the surface. However, this sometimes results in more power passing through this monitor than is actually radiated by the dipole (which is the only source in the system). I have tried monitors of different size and shape, located at different distances from the dipole source, and nothing seems to work. At this point I've run out of tests to do and theories to try. Hopefully, I have attached sufficient additional information to make my error clear to more experienced users. This can be found on my github page for this issue: https://github.com/shakespearemorton/nanohole_array In the future I would like to use the near2far transform so that I can look at the directionality of photon emission as well, but this problem needs to be overcome first. Any help/assistance that can be provided would be appreciated. Thank you, William M PhD Candidate Department of Materials Imperial College London P.S. this is my first email to the group so if there is some formatting or more/less detail that I should be giving please do let me know so that I can make better inquiries in the future.
_______________________________________________ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss