The Lumerical Sub-wavelength Model (LSWM) can be used to model structures with planar layers and/or periodic patterning as scattering surfaces in Speos. Typical examples of these structures are coatings and diffraction gratings with feature sizes comparable or smaller than the wavelength of light. The data describing the surface scattering is saved in a JSON file format and loaded in Speos as a surface property.
This article explains how to apply the LSWM to a surface in Speos, starting with an existing JSON data file. For general information about the LSWM, including the data generation from simulation in Lumerical solvers see Lumerical Sub-wavelength Model: Introduction and Data Generation. For information on how to use the LSWM in Zemax OpticStudio see How to load grating data from Lumerical into OpticStudio.
Importing Surface Properties to Speos
Loading the Lumerical Sub-Wavelength Model and JSON file
Open Lumerical_sub-wavelength_model_test.scdocx in Speos.
Edit Surface layer #1 in the SurfaceStatePLUGIN material
and make sure it has the following settings:
- In Surface properties, Type should be Plugin.
- The File should be the lumerical-sub-wavelength*.sop file that is included in the zip data file (Speos Input files folder).
- The Parameters should be any desired JSON file.
Orienting the Surface Properties in Speos
By default, the LSWM is z-normal to the surface it was applied to and is oriented according to the global assembly reference. It is possible to apply a local reference, for example to rotate a grating around the normal of the surface, with UV mapping.
To locally orientate the LSWM on 3D model’s surface, first apply a plain white texture image then define the UV map projection direction (normal axis) and top direction.
- In Texture image, Type should be From File.
- File should be a plain white image (included in Speos Input files folder)
Now the transformation can then be applied.
For example, edit UV map.1 in UV mapping.1
Select the origin, projection direction (z axis) and top direction (x axis) from UVmap_AxisSystem
and apply a 45-degree rotation around the z axis:
Reversing the normal of the grating
By default, the LSWM will detect the direction of the local z axis from the bulk optical materials above and below the surface. For example, if the JSON file indicates values of the refractive indices below and above the surface of n_lower = 1.5 and n_upper = 1, then the normal direction will be detected when those values best match the properties in Speos. However, if the normal cannot be detected this way (for example if n_upper = n_lower or if the optional flag detect_ray_direction_from_surface_normal is set to true in the JSON file), then the normal will be detected from the normal of the geometry. In some cases, this may need to be reversed, and it can be accomplished with the following checkbox. This will rotate the local reference frame 180 degrees around the x axis. This is particularly useful for creating surface scattering properties inside a bulk medium such as air.
Speos Example
Load the triangular_lattice_reflector.json file which was created during the idealized surface example (included in Speos Input files folder) and run the Direct_Normal_Source simulation.
You will see the following reflected and transmitted diffraction patterns when viewing the Irradiance.R and Irradiance.T sensors because this example reflects 50% of the incident light from a triangular lattice and transmits the rest to the 0th order.
Now use the grating1D_x.json file and rerun the Direct_Normal_Source simulation.
You will see the following reflected and transmitted diffraction patterns with the expected -1, 0 and +1 orders. Normally, this would be in the x-z plane in reflection, but this local reference frame has been rotated 45 degrees thanks to the UV mapping.
Now switch off the texture to disable the UV mapping and the 45 deg rotation.
Right-click the Direct_Normal_Source simulation and select Options, then uncheck Texture.
Run once again the Direct_Normal_Source simulation. We see that the local reference frame of the 1D grating has been aligned by default on the x axis.
Now load the FDTD_1D_diffraction_grating_export.json file. We know from our FDTD and RCWA work, that we will have strong coupling to the -1 order at 525nm.
Change the Normal_Source spectrum to monochromatic at 525nm (instead of blackbody at 6500 degrees)
and run the Interactive_Normal_Source simulation. Zooming in, we see that the rays are coupled into the waveguiding layer by the grating, as expected
The FDTD results used above were run for normal incidence only. This means that the diffraction order efficiencies will not account for any changes to the angle of incidence. However, it does contain results for all wavelengths from 400nm to 700nm.
If you have run the longer and complete analysis with RCWA, we can switch to [[RCWA_1D_diffraction_grating_export.json]] and consider even the non-normal source results.
Run the Interactive_Tilted_Source simulation (note that the tilted source spectrum should also be set to monochromatic at 525nm).
Finally, if we switch back to a blackbody spectrum for the Tilted_Source
We see the effects of different wavelengths on the diffraction angles and efficiencies.