I was simulating the PC bandstructure example which has been provided by lumerical in which I noticed that if I change my change the “bandwidth” option (under the Effective index tab of the “PROP” simulation region) to “broadband”. The simulation diverges and stops.
I have only tried the files with hexagonal lattice structure.
Moreover, I have one more query, I wanted to change the refractive index of the core to some value of 2.41 (refractive index of diamond), but if I run the simulation and then the script file. I see that I cannot change the axis limits of the plots and as a result I cannot see the bandgap properly.
The divergence seems to be resulted from the material fitting. If you use other values for example max coefficient of 3 and imaginary weigth of 1 it should work. This is being said that since you are using a constant value for (n,k) real and imaginary refractive index, you don’t need to use the broadband bandwidth tab.
I didn’t have any problem setting the axis limits. Can you please clarify what the problem is?
Here is the screenshot how I modified the axis limits in two plots:
@bkhanaliloo Thanks for your reply! I think I could not explain my problem probably. By setting the axis limits I meant to say, if you look into this paper: oe-16-3-1632.pdf (552.9 KB)
You will see from Figure 2. that the photonic band gap occurs in much higher range for n = 2.41 but I cannot get a similar plot from my simulation. The figure (f in terms of (c/a) v/s k only calculates till 0.4.
I hope you got the problem to what I am referring to?
I don’t whether this is a right forum to continue the discussion or not (I will create a separate one, if needed) , but my actual goal is to create a photonic crystal waveguide in which I would propagate only green light (532nm).
Now the band structure that I got from planar3D_hex file is as follows:
The material I am using is diamond (n=2.41) which gives me a photonic bandgap for normalised frequency of 0.38 to 0.42 (c/a).
So do you have any examples where I can look into for fabricating the photonic crystal waveguide in FDTD solutions?
Lumerical provides two examples one planar_square lattice and one planar_hex.
However it seems the script for planar_square only calculate sigma to X without remaining X to M then back to sigma.
Is that means the generated bandstruture is not a complete one and I should follow planar_hex example to modify the code if I wish to have a complete plot?
In addition, I don’t understand how Kx and Ky sweeping range is setup, especially in planar_hex example.
For planar_hex, sigma to M then back to K is used to plot then complete bandiagram. However the sweeping limit is chosen 0.33 for Kx and 0.577 for Ky. Any partticular reasons for choosing these values? I thought the sweeping range may be determined by lattice constants ax, ay or r but I did not find any clear relations.
Also, If I am working back to plane_square and I am also not clear why kx sweeping up to 0.5 is used.(=lattice constant?)
What if lattice becomes rectangular such as ax=1.5ay? How should Kx and Ky sweeping range be adjusted in order to plot the complete band structure?
Yes, that is correct. For planar square, bandstructure is calculated only from gamma-X. If you want to calculate band structure for X-M and M-gamma, you will need to add parameter sweep to sweep over kx and ky, similar to as we have for planar-hex example. The difference is that kx and ky values will vary from 0 to 0.5 for planar square (which I explained it below).
These parameters are chosen based on irreducible Brillouin zone. For a good reference to learn how to sweep over kx and ky for different trajectories (gamma-M-K-gamma) over the Brillouin zone, you can take a look at Photonic Crystals Modeling the flow of light_ by John D. Joannopoulos (I think this book is open source and you should be able to find .pdf version online). In page 237, for hexagonal structures, we have:
Since spacing between lattice points in a triangular lattice is a, and from hexagon structure, these points in reciprocal coordinates can be defined as:
M = 2*pi/a [0, 1/sqrt(3)] = 2*pi/a [0, 0.577]
K = 2*pi/a [1/3, 1/sqrt(3)] = 2*pi/a [0.33, 0.577]
If you open the plannar_hex.lms simulation file, you can see that spacing between circles is a. kx and ky are defined based on the periodicity from the edit tab of Model analysis group (here periodicity is defined to be ax instead of a):
For rectangle structure, you will need to define ax and ay for periodicity along x and y direction, respectively. These two values are random (fro example ax can be defined as ax=1.5ay). Then, you can define k vectors as:
Kx = 2*pi *kx/ax;
Ky = 2*pi *ky/ay;
Where sweep will be performed over kx and ky values from 0 to 0.5. Square lattice is a simplified version where ax=ay.
I hope this answered all of your question, but please feel free to ask if you have further questions.