I would like to start this type of modeling and I found that some researchers use FDFD or FDTD for the same type of work. Are there benefits of one method over the other?
Both are great methods. Being a time-domain method, FDTD is better suited for simulating nonlinear devices and transient phenomena. FDTD is also better for simulating extremely large devices. Being a frequency-domain method, FDFD is better able to incorporate material dispersion. It will be faster for small structures and structures that are highly resonant where FDTD can get bogged down. Unless you develop a fast iterative solver for FDFD, it is mostly restricted to 2D simulations, whereas FDTD can easily handle large 3D devices.
Both methods are based on essentially identical math where fields and devices are represented as points on arrays. Behind each point is a set of finite-difference equations. In FDTD, you setup a big loop that calculates each finite-difference equation one at a time to update the values of the fields at every point on the grid. This repeats over and over and you can watch waves move around your array as you do this. In FDFD, almost the same set of finite-difference equations is put into matrix form and solved using standard linear algebra techniques. In a sense, FDFD takes a snapshot of the fields at a specific frequency, whereas in FDTD you have to watch the fields evolve and scatter through your grid before obtaining a solution.
I teach both of these methods. Below is the course website for FDTD which contains notes, lecture videos, and other resources. If you want to get a quick feel for what FDTD is like, work through the MATLAB sessions for 1D FDTD where I type a rather fully functional FDTD program one line at a time and explain everything as I go. It may help to watch Lectures 1-7 first.
http://emlab.utep.edu/ee5390fdtd.htm
I teach FDFD in a different course and the website is below. See Lectures 9-14.
Both are great methods. Being a time-domain method, FDTD is better suited for simulating nonlinear devices and transient phenomena. FDTD is also better for simulating extremely large devices. Being a frequency-domain method, FDFD is better able to incorporate material dispersion. It will be faster for small structures and structures that are highly resonant where FDTD can get bogged down. Unless you develop a fast iterative solver for FDFD, it is mostly restricted to 2D simulations, whereas FDTD can easily handle large 3D devices.
Both methods are based on essentially identical math where fields and devices are represented as points on arrays. Behind each point is a set of finite-difference equations. In FDTD, you setup a big loop that calculates each finite-difference equation one at a time to update the values of the fields at every point on the grid. This repeats over and over and you can watch waves move around your array as you do this. In FDFD, almost the same set of finite-difference equations is put into matrix form and solved using standard linear algebra techniques. In a sense, FDFD takes a snapshot of the fields at a specific frequency, whereas in FDTD you have to watch the fields evolve and scatter through your grid before obtaining a solution.
I teach both of these methods. Below is the course website for FDTD which contains notes, lecture videos, and other resources. If you want to get a quick feel for what FDTD is like, work through the MATLAB sessions for 1D FDTD where I type a rather fully functional FDTD program one line at a time and explain everything as I go. It may help to watch Lectures 1-7 first.
http://emlab.utep.edu/ee5390fdtd.htm
I teach FDFD in a different course and the website is below. See Lectures 9-14.
Thank you for your very thorough answer. In the work I saw using FDFD the authors simulated their 3D structure as a 2D structure by taking a cross sectional slice. What I'm concerned about is how good an approximation this is. I don't know if you have thoughts on this? On the other hand I have read that FDTD is 'computationally expensive' and much more difficult to implement. If I can get similar results with a less rigorous method I would opt for the FDFD. I will definitely check out your lecture notes above. Thanks!
Reducing a 3D problem to 2D problem as you described is usually called the effective index method. This can be done very accurately, depending on what you are doing. Even if it is only 70% accurate, the simulations will be MUCH faster and you can get your design close to correct before moving to 3D to finish the design. In my experience, if done correctly, the effective index method is 98% accurate. I am making that number up, but I recall the differences are extremely small, smaller than the accuracy of the method anyway.
I do not agree that FDTD is more computational expensive or more difficult to implement. For very small problems, it is not the fastest. However, for larger problems it is the fastest. In my experience, FDTD does take a bit more work to implement, but there are more learning materials available and it is more intuitive to learn. FDFD is easier to implement, but involves a little more complicated math and maybe a steeper learning curve. If you are starting from scratch, it is probably even between FDTD and FDFD.
I am not sure what you are simulating, but if you can reduce it to 2D, I might suggest trying FDFD first. I would not worry too much about this decision as either method will work great for you I think.
One of the limitations of the FDTD is the rectangular mesh (at the edge of the particle) and large memory when you used the bigger sized geometries and want the higher accuracy. In comsol (finite element method , you can use the free triangular mesh so you can get higher accuracy). But FDTD (Lumerical) is simple to use and more user-friendly.
Finite difference is very suitable for all kinds of wave motion simulations as long as the heterogeneity of the media is not strong. But if the impedance of the media varies very sharply, the dispersion will be prominent in the wave fields. The calculation will even become unstable.