Bloch periodic and symmetric boundary conditions for angled injection

Dear Aya,
In here I come across a couple of different situations with regards to my simulation.

  1. If we wanted to use the angled source, for example, 45 degrees of incident angle of the Plane wave source on thin films but not any kind of Periodic structures have been used in the 3D simulation, then we have to use the Bloch boundary conditions(BCs) as per the intrinsic behaviour of the source conditions.

  2. Also, it has been demonstrated that we can use the symmetry and asymmetry BCs in X,Y directions depend on the polarization of the electric field. I wanted to use these BCs in order to reduce the time and memory of the simulation and also exemplified in the convergence testing example that we can use it.

since we cannot use the Bloch and symmetry BCs together, I compared the both BCs for angled source and the R,T has been calculated whose results are definitely different from each other. So, how can we confirm that we can use the particular BCs in this case and what is the best to follow?

1 Like

Hi @surabhi,
Sorry I just saw your question now.
As you said, it is expected that the results of both simulations (using these BCs) will be different. But using the symmetric and anti-symmetric boundary conditions is not correct due to the angled source excitation. The electric field is not symmetric about the X or Y axes in this case. So unfortunately you cannot save time and memory this way.

Block BCs is the correct choice for periodic structures that are illuminated with a plane wave source propagating at an angle. If your structure is not periodic, Bloch BC are still required when using a plane wave source injected at an angle because PML BC cause high reflection and are not designed to absorb at an angle other than zero.

To confirm your results are reliable, I suggest you consider the simple case of reflection from a dielectric interface and calculate the T, R using Frensel equations. Theory and simulation should agree.

Hope this helps!


1 Like

Thanks for your reply, @aya_zaki!

I just wanted to add a comment about Bloch/periodic boundaries for plane wave sources. The reason for using such boundary conditions is to avoid edge effects that occur when the plane wave source has a finite size, as explained here:

When using PML boundaries with a plane wave source , you are effectively simulating a plane wave with finite extension so you will see diffraction effects.


Thank you all :slight_smile:

I wanted to calculate the convergence as a function of mesh accuracy for the planar structures (thin films but not any periodic structures) using the plane wave source. For that, I would like to seek a suggestion for a better option from the following cases. since the above link provided by @fgomez suggests that the scattering by the Plane wave source is quite less and said to consider TFSF source in cases if needed, I need a confirmation for my need in the ambiguity.

TFSF sources are used when treating a scattering problem like you want to calculate the scattered field from an object and its scattering cross section. But for a thin film, I think, this would not be the case.
So, what exactly are you trying to get from the simulation?

1 Like

I would like to calculate the convergence as a function of mesh accuracy using a plane wave source in case of thin films on glass substrate where the thin film thickness is in 20nm and the glass substrate is about 2um

1 Like

Hi @surabhi,

If you are interested in thin films without any scattering object, then I would say you should use Bloch periodic boundaries (for injection at an angle). Effectively this will simulate a structure that extends to infinity in the in-plane directions.

One important point for angled-injection with Bloch-periodic boundary conditions is the dependence of the injection angle on wavelength as explained here. This means that only the center frequency is injected at the desired angle. One alternative for truly broadband injection at an angle is to use BFAST.

Finally, I wanted to mention that for multi-layer structures you can use stackrt to calculate the transmission and reflection analytically and compare them with the results from FDTD, as explained in this example.


Hello @fgomez ,

After going through the entire processes my study follows as … simulation set up is a CoFeB thin film about 40 nm on thick (say 5~10 um ) SiO2 with a plane wave source angled at 45 degrees.
2. I investigated the R,T as a function of the incident angle of the source and thereby noticed that it will change but my interested wavelength is (say) 600nm.
3. Since I am using the angled source, I used the Bloch BCs in the direction of the E-Field plane of oscillation (Blue arrows of the source) and others are chosen as PML and this is continued all the while even though the polarization is changed.
4. Also, the incident angle of the source changes with respect to the wavelength of the broadband source, so I investigated the series of simulations which keep the angle fixed throughout the spectrum of the source and succeeded.
5. Besides that, I investigated with BFAST source and found the result is fitting my expectations. But the point where struck is I need the R,T as a function of mesh accuracy ( which I can get by running different simulations) for the respective structure. This R,T changes if I change the thickness of the SiO2 and FDTD area. So I want to know the perfect thickness to be inserted and meshing the very thin CoFeB using the mesh override and thick SiO2 in a normal manner needs a confirmation that it is acceptable. In other words, the convergence as a function of mesh accuracy as shown in here. testing the convergence
6. I calculated that using the method similar to the above example but found the max error of the R,T is getting away but not getting closer. I feel that if it is like that means convergence is not good by virtue of numerical dispersion. Is that right? or do I need to understand something in a different manner?

I see the script used in the convergence testing uses the stackrt code and it compares the analytical and simulation results. but what is the error means physically there and the maximum difference between the R, T Vs accuracy slider?

there is another example using TFSF source for the periodic structure which can check convergence as a function of mesh accuracy as shown in TFSF_convergence. But this is not suitable for me as you and @aya_zaki said previously. so no need to consider this example for convergence checking.

I apologize you if you feel that you already answered this in a different manner. But the complexity of my investigation led me to make this discussion.
Hope I explained well about my problem and in a simple sentence, how the convergence as a function of mesh accuracy is confirmed for meshing a particular thickness of the thin film deposited on a thick substrate with the above conditions? How to understand the max difference Vs slider value as shown in here


How to understand the max difference Vs slider value as shown in here

This is how this figure is plotted, the mesh accuracy “slider” is varied. The theoretical and simulated values of the R and T are plotted vs wavelength. The difference between those values is plotted too vs wavelength. The difference (error) is not the same for the whole spectrum. But the max error is the value to be considered from each simulation. Thus, it is plotted vs the mesh accuracy.

1 Like

Hi @surabhi,
I tried to customize the convergence example for your application. Attached are the file and script.
usr_fabry_perot_Si_angled.lsf (2.7 KB)
usr_fabry_perot_Si_angled.fsp (245.4 KB)

I got this curve for mesh convergence. It seems that the error systematically decreases as the accuracy increases.
Note that I changed the theoretical expression to account for the THETA (angle of incidence). And I changed the polarization too.

RTtheory = stackrt(n,d,f, theta);

Still you need to change the material to SiO2 and add the thin layer CoFeB (What is its refractive index?). I suggest that you add an over-grid mesh on the 40 nm layer of step size 5 nm, for example. Then, you can run the same script sweeping the mesh accuracy.

1 Like

Thank you so much for your great time and efforts. I noticed the modifications done. The (n,k) are (2.56735,3.5103) for that wavelength. I will investigate the remaining as well and will be back soon.

For a week or so, I will not be able to communicate back since I am leaving on vacation for my home country. So, please never mind for the delay. Thanks a lot.:heart_eyes:

1 Like