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
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss