This example has been updated. Find the latest version at Travelling Wave Mach-Zehnder Modulator.
Open the tw_modulator.ldev file in CHARGE. Besides containing the CHARGE solver for electrical simulation, the project file also contains the FEEM solver for optical simulation of the pn junction. A second (smaller) simulation region is used for the FEEM solver and a PEC boundary condition is used at the simulation boundaries. To model spatial index variation in response to the distribution of the electrical carrier density, an '(n,k) Material' Grid attribute object is used. These objects can import spatial index or (index perturbation) distribution data and apply them to the underlying material. Details about the different properties of '(n,k) Material' can be found in the discussion of the Import - NK Material.
Note: the electrical simulation must first be run using the CHARGE solver to generate the data required to perturb the waveguide index in the FEEM simulation. Alternately, the CHARGE simulation data is already loaded into the nk import object which can be used to run the simulation directly.
Open the script file tw_modulator_index_perturbation.lsf. The script file loads the charge density data saved in the twmod.mat file and calculates the perturbation to the refractive index of silicon using the Soref-Bennett model . The model is described in this KB page: Charge to index conversion. When run, the script file will calculate the perturbation to the Silicon index at a wavelength of 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.
The eigenmode solver can now be run for any particular voltage by setting the voltage (V) parameter in the nk import object (available in the 'Data' tab) to the desired value. To sweep the range of applied bias voltages, a parameter sweep can be used. Choose the parameter sweep "voltage" in the 'Optimizations and Sweeps' window and click Run. The sweep will run over the bias voltages (using the index of the parameter 'V') from the electrical simulation data, and will update the material index in the waveguide at each step. When complete, the results of the parameter sweep can be visualized directly: select the parameter sweep and from the active results view, visualize "neff". Remove the 'loss' attribute from the Attributes table to see the neff data easily. By changing the component to be plotted to be "None", both the real and imaginary parts can be made visible. The phase shift and loss can be calculated from the sweep data by using the script file tw_modulator_FEEMsweep.lsf.
In the script, the length of the modulator arm is specified to match the geometry of the reference (5 mm). The relative change in refractive index is measured with respect to the 0 V. Based on the effective index data, the phase and loss are plotted as a function of voltage. The phase response agrees with the measured data from the referenced paper , as observed in the plot below. Finally, the results are saved to a data file twmod_neff_V.dat, which can later be used to specify the behavior of an arm of the modulator in the circuit model in INTERCONNECT.