Bloch Boundary Conditions in Lumerical FDTD and MODE: Principle, Settings and Computational Cost
Bloch boundary conditions in Lumerical FDTD and MODE: how they differ from periodic boundaries, the phase correction for oblique incidence, and the cost of complex-valued fields (twice the memory and twice the time). Also covers when to use BFAST instead and the Source Angle setting that prevents boundary scattering.
Published
What Bloch boundary conditions do: phase correction at oblique incidence
Lumerical FDTDandLumerical MODE, when to use Bloch boundary conditions, and how they differ from periodic boundary conditions.
Bloch boundary conditions are used in a range of situations, but the most common is a simulation in which a plane-wave source illuminates a periodic structure at an angle.
BFAST plane wave is used, Bloch boundary conditions are ignored automatically and the boundary conditions built into BFAST are used instead.
The physical difference between periodic and Bloch boundary conditions
Bloch boundary conditions are easiest to understand alongside periodic boundary conditions, in an application where a periodic structure is illuminated by a plane-wave source, as in the screenshot above. A periodic boundary condition copies the field at one edge of the simulation region to the opposite edge. A Bloch boundary condition is very similar, except that it copies the field from one edge to the opposite edge with a phase correction applied.
Why that phase correction is needed is easiest to see by considering a plane wave propagating at an angle, as in the video below. When propagation is at an angle, the field is no longer perfectly periodic from one period to the next: it is shifted in phase by a certain amount. The Bloch boundary condition corrects for that phase difference.
Verification: suppressing boundary scattering and keeping phase continuous at oblique incidence (with video)
The electric field Ex of a plane wave propagating in free space along Z at 45 degrees
This simulation is set up correctly. A uniform wavefront at 45 degrees is observed as expected. Bloch boundary conditions are used in the X direction.
Identical to the above except that periodic boundary conditions are used in the X direction. This is a common mistake, because kx of the plane wave is not zero. The same mistake occurs when “set based on source angle” is not used. You can recognise it as scattering at the simulation boundary.
Setting the wavevector (k vector) in band structure calculations for photonic crystals and similar
Bloch boundary conditions are also useful whenever the in-plane wavevector setting matters. Band structure calculations, for instance, use Bloch boundary conditions widely.
Computational cost: memory load from complex-valued fields, and changes to monitor data
Can Bloch boundary conditions be used for propagation at normal incidence?
Bloch boundary conditions can be understood as a general form of periodic boundary conditions. A simulation that uses periodic boundary conditions still gives correct results if those boundaries are replaced with Bloch boundary conditions. After such a swap, the Bloch boundary condition applies a phase correction of zero degrees, which is equivalent to simply copying the field at one edge to the opposite edge. As the section on computational cost explains, however, using Bloch boundary conditions requires extra memory and time compared with periodic boundary conditions.
Computational cost
A simulation using Bloch boundary conditions needs twice the memory and twice the time of the same simulation without them. The increase is because a simulation with Bloch boundary conditions uses complex-valued time-domain fields rather than the default real-valued ones.
Effects of using complex-valued time-domain fields
As noted in the “computational cost” section, a simulation using Bloch boundary conditions uses complex-valued time-domain fields. Besides the increase in computational cost, this also affects the data type collected by monitors.
Index monitors: no change
Frequency domain field monitors: no change
Time domain field monitors: the recorded data is complex-valued rather than real-valued. In some situations the complex-valued data is useful. If you do not need the imaginary part, simply take the real part of the monitor data.
Time domain movie monitors: when the ‘Intensity’ option is selected, the movie looks somewhat different. Instead of seeing each oscillation of the field, you see only the envelope. The following example should make this clear.
The blue line represents a sine wave modulated by a Gaussian pulse.
The green line represents the square of the absolute value of that signal, |E|^2 (Ex1 in the code below). This is what you see in the ‘Intensity’ movie of a simulation using real-valued fields.
The red line represents |E|^2 for the complex-valued version of the signal (Ex2 in the code below). This is what you see in the ‘Intensity’ movie of a simulation using complex-valued fields.
As explained above, Bloch boundary conditions apply a phase correction to the field. As explained on the Plane waves – Angled injection page, this has an important consequence for broadband simulations. For broadband simulations at an angle of incidence we recommend BFAST plane wave.
Automatic calculation of the Bloch vector when a plane-wave source is used
When running a simulation that involves Bloch boundary conditions and a plane wave at an angle, use the “set based on source angle” option shown in the figure below. This setting is only available when Bloch boundary conditions are in use. Without it, you must set kx, ky and kz manually. Setting the Bloch vector manually becomes important in band structure simulations.
Note: when a simulation uses several plane-wave sources together with Bloch boundary conditions, all sources must have the same bandwidth and angle. Otherwise a warning is shown and the Bloch vector is set to zero.
We may request cookies to be set on your device. We use cookies to let us know when you visit our websites, how you interact with us, to enrich your user experience, and to customize your relationship with our website.
Click on the different category headings to find out more. You can also change some of your preferences. Note that blocking some types of cookies may impact your experience on our websites and the services we are able to offer.
Essential Website Cookies
These cookies are strictly necessary to provide you with services available through our website and to use some of its features.
Because these cookies are strictly necessary to deliver the website, refusing them will have impact how our site functions. You always can block or delete cookies by changing your browser settings and force blocking all cookies on this website. But this will always prompt you to accept/refuse cookies when revisiting our site.
We fully respect if you want to refuse cookies but to avoid asking you again and again kindly allow us to store a cookie for that. You are free to opt out any time or opt in for other cookies to get a better experience. If you refuse cookies we will remove all set cookies in our domain.
We provide you with a list of stored cookies on your computer in our domain so you can check what we stored. Due to security reasons we are not able to show or modify cookies from other domains. You can check these in your browser security settings.
Google Analytics Cookies
These cookies collect information that is used either in aggregate form to help us understand how our website is being used or how effective our marketing campaigns are, or to help us customize our website and application for you in order to enhance your experience.
If you do not want that we track your visit to our site you can disable tracking in your browser here:
Other external services
We also use different external services like Google Webfonts, Google Maps, and external Video providers. Since these providers may collect personal data like your IP address we allow you to block them here. Please be aware that this might heavily reduce the functionality and appearance of our site. Changes will take effect once you reload the page.
Google Webfont Settings:
Google Map Settings:
Google reCaptcha Settings:
Vimeo and Youtube video embeds:
Other cookies
The following cookies are also needed - You can choose if you want to allow them:
Privacy Policy
You can read about our cookies and privacy settings in detail on our Privacy Policy Page.