Far field extraction with Bloch Boundary Conditions


I would like to extract the far-field analysis of an FDTD simulation with Bloch boundary conditions and a tilted source.

For that, I have set-up a 2D test simulation in free-space with a plane source (tilted by 10°) and a monitor (Bloch_and_far_field.fsp). After the computation, I plot the far field vs wavelength with the following code lines:

image(w,theta,Ey_ff,"Wavelength (nm)","angle (deg)","|E|^2 far field");

The result is the following:

It is strange because I was expecting to have a straight line at 10° everywhere.

Could someone help me to figure out where is the problem?

Thank you,

sweep using BFAST

Hi @giorgio

Can you please attach your simulation file? As you said, in optimal case the broadband light should be injected at a fix angle.



Hello @bkhanaliloo,

I have just placed my simulation file in the previous post, you should now be able to download it.

The light source was set with the theta angle = 10° and the Bloch boundary conditions were “set based on source angle”.

Thank you,


Dear @giorgio

For broadband injections at an angle, we recommend using Broadband Fixed Angle Source Technique (BFAST) to overcome the wavelength dependent injection angle. These two links will take you through details of the problem that you mentioned and how to fix it using BFAST source. Here is my simulation results:

Please let me know if you have further questions.


You’d better use grating rather than farfeld2d:slight_smile:


I have another question regarding the same: If it is a periodic boundary condition why is there a width of the |E|^2 wrt angle at any wavelength?

Farfield electric field vs Angle plots for periodic systems

Dear @prasad

Sorry for delayed reply. It took me a while to understand your question (hopefully I did :slight_smile: ), and I think this link explains how the farfield projection for periodic structures works:


Please note that you can improve the farfield results by adding number of periods, but I expect there will be a limit on how much you can push it (farfield uses some filtering and numerical errors exist all the time). I tried two different # of periods and here are the results:

As it is explained in the bottom of the above link, if you want to find the results for infinite number of periods, you need to use grating projections.

I think this answers you questions in this post as well: