In this example, we will characterize the optical response of a thermally tuned waveguide. The entire simulation is done in Lumerical’s multi-physics Finite Element IDE. The heat transport (HEAT) solver is first used to simulate the temperature profile for the waveguide with different input powers. This result is then imported into the Finite-Element Eigenmode (FEEM) solver to characterize the optical response, including changes to the effective index, phase and loss as a function of the input power.
Lumerical products R2018b or newer
Simulation set up
The project file thermal_tuning_waveguide_FEEM.ldev contains a silicon waveguide on a silicon substrate. A wire is placed 2um above the waveguide and acts as the heat source used to thermally tuned the waveguide and achieve the desired phase shift. The bottom of the simulation region is fixed at 300K, and the top of the simulation region is bounded by air. A uniform heat source object is used as the heater wire. A sweep is set up in order to sweep the input power from 20 to 30mW. A temperature monitor has be placed around the waveguide region, which will automatically store the temperature map into output file for each input power. This output file will be used in the subsequent optical simulation using FEEM.
NOTE: Since a parameter sweep is performed to obtain spatial temperature data around the waveguide, the simulation mesh is locked to ensure the data is collected from the same mesh locations for all sweep points. Otherwise, since the mesh grid is re-calculated between each sweep, the temperature will be recorded on a different mesh at each sweep point and the parameter sweep object will not be able to collect the temperature data.
Open the script file thermal_tuning_index_perturbation.lsf. The script file loads the temperature profile saved in the T.mat file and calculates the perturbation to the refractive index of silicon using a linear perturbation model. The model assumes a constant dneff/dT of 0.00018 /K for an optical wavelength of 1550 nm at 300 K. When run, the script file will calculate the perturbation to the Silicon index at 1550 nm, save the data in a dataset, and load the data into the (n,k) material attribute under the FEEM solver in the project file.
For optical simulation a smaller simulation region is used with the FEEM solver. The simulation boundaries are set to PEC and a mesh constraint is used to refine the mesh at the surface of the silicon waveguide to better resolve the sharp changes in the electric field. A parameter sweep has been set up to sweep the voltage of the loaded index perturbation data to calculate the optical modes under different bias voltages. A script file thermal_tuning_waveguide_FEEMsweep.lsf can be used to read the sweep results and calculate the phase shift for different applied bias.
Run the heat transport simulation by running the 'sweep' object. Once the simulation is complete, right-click on the sweep object and visualize the T_full data to see the temperature map for any input power. The temperature map for P_in = 25mW is shown below. Here, we can see that the region around the waveguide has been heated by about 20K.
To save the temperature data for optical simulation, run the following lines of script after the heat transport simulation is complete:
This will save the data in a MATLAB file which can be used in optical simulation.
For optical simulation, the script thermal_tuning_waveguide_FEEMsweep.lsf will run the FEEM simulation first by disabling the (n,k) Material grid attribute to calculate the optical mode and the effective index at room temperature. It will then run the sweep and record the effective index as a function of applied thermal power from the sweep result. From the effective index from the initial simulation and the sweep, we can calculate the phase change (for L=200um) as a function of input power. As seen in the image below, we expect to get a pi phase shift at 28mW for this waveguide.
NOTE: Similar to the parameter sweep in CHARGE, we have to lock the mesh in the FEEM solver as well to ensure that all simulations in the parameter sweep are run using the same mesh grid.