In this example, we will study the optical bistability effect in a plasmonic racetrack resonator using a nonlinear Kerr Chi3 material model.
We will use a 2D FDTD simulation for this example (this can be simulated with either MODE 2.5D FDTD Propagator or FDTD). The model is based on the design from reference , which is a metal-dielectric-metal plasmonic gap waveguide that is coupled to a plasmonic racetrack cavity filled with a nonlinear Kerr medium. First, a simulation without any nonlinear material is ran in order to find the location of the resonance peaks for this device. To run the linear simulation starting from forward.fsp, make sure to disable "source_custom", enable "source_broadband" and set the material of the ring from "Kerr" to "Linear". Once the simulation is done, the transmission can be plotted directly from the output monitor "T" as shown in Fig. 1.
We will use the resonance peak at ~ 1550nm as the reference for the subsequent nonlinear simulation.
To introduce nonlinear effects into the simulation, we will add a chi3 nonlinear polarization via the Chi3/Chi2 model from the Material Database (see Fig. 2). For the chi3 nonlinear coefficient we use a value 10 times larger than the one in reference  so that the field intensity required to observe the bistability effect is smaller.
The key to simulating the bistability effect is to specify a custom CW source "source_custom" with a carrier frequency that is detuned from the resonant frequency. In addition, we want to define the source such that the intensity increases or decreases with time, so that we can observe the difference in the behavior of the nonlinear racetrack resonator between the two cases. This can be set up easily with the following script commands:
Imin = 0.01; Imax = 0.5;
nt = 15500; # ramp time in fs
I = linspace(Imin,Imax,nt); # intensity
lc = 1580e-9; # center wavelength
index = 1.52; # waveguide index
t = linspace(0,nt*1e-15,nt);
phase = - (c/lc)*2*pi*t; # phase as a function of time
amp = sqrt(sqrt(mu0/eps0)*I*10^10/(0.5*index)); # amplitude as a function of time
setsourcesignal("source_custom",t,amp,phase,c/lc,0); # set the source signal
The script set_source.lsf will automatically set this custom source signal for the files forward.fsp and reverse.fsp. In forward.fsp, the source intensity is increased from "Imin" to "Imax" over the time period "nt"; in reverse.fsp, the source intensity is decreased from "Imax" to "Imin" over the same time period. Fig. 3 shows the source amplitude as a function of time for the two cases.
See Custom time signal for more information.
To study the bistability behavior, we plot (Eout/Esource)2 as a function of the source intensity. This can be obtained from the time monitors that are placed at the input and output ports of the resonator (see Fig. 4).
The script bistability_results.lsf will load the results from the two .fsp files and remove the high frequency components in order to get a clean output signal. The results for different values of the center wavelength are shown in Fig. 5.
Fig.5 Bistable loops for increasing center wavelength: (a) 1578nm (b) 1580nm, and (c) 1582nm.
One can see that there are significant differences in the transmission response from increasing or decreasing the intensity of the source. The bistability effect is apparent, and the transmission can either follow the upper branch of the bistability loop (corresponding to increasing source intensity), or the lower branch (corresponding to decreasing source intensity). Note that for increasing detuning the bistable loop increases in size and shifts to higher intensity values as discussed in reference .