We consider a rectangular silver surface plasmonic waveguide with dimensions 1000nm x 100nm described in [1]. We want to measure the effective index of the ssb0 mode at 633nm. We will also calculate the effective index of this mode as a function of waveguide thickness, from 50nm to 200nm. A non-uniform mesh is used to more accurately resolve the fields near the metal interface.
Discussion and Results
We are trying to recreate the results in the Berini paper [1], so it is important to use the same material properties. We will create a new silver material, rather than using the standard silver definitions included with MODE. the permittivity of Ag given in the reference paper is -19+0.53j.
The screenshot below shows the plasmon waveguide and the mode solver region.
Notice the shaded green and blue regions. The blue shaded section is a result of the fact that the x min boundary condition of the simulation region has been set to symmetric. In other words, we have put a magnetic wall (perfect magnetic conductor) at x = 0. Similarly, the green shaded region indicates that the y min boundary condition is anti-symmetric. This indicates that we have put an electric wall (perfect electric conductor) at y = 0. See Symmetric and anti-symmetric BCs for more information about choosing symmetric and anti-symmetric boundary conditions.
Table 1 of the reference shows that the fields from the ssb0 posses this symmetry. The boundary conditions will need to be changed if you are interested in finding modes which have fields with different symmetry. You can find all of the modes that the waveguide supports if you set all of the boundary conditions to metal. Note that the time to find modes and memory required to find modes will increase if all the boundary conditions are metal. This is because the mode solver can use shortcuts to find the fields in the shaded region if your simulation posseses symmetry/anti-symmetry about one axis.
The orange lines in the screenshot above show the mesh used in the mode calculation. Notice that the mesh is finer at the edges of the structure. This is because we expect the fields to be concentrated near the edges of the waveguide. Increasing the mesh here, will increase the rate of convergence of the effective index, loss and field profiles as you reduce the size of the mesh.
Finally, notice that we use metal boundary conditions instead of PML boundary conditions. The reasons for this are described in the Starting with metal boundary conditions page.
Find and plot mode SSb0
To find the SSb0 mode, we overrode the default "search near n" settings in the analysis window. This is because plasmon modes often exhibit a higher effective index than would be predicted by the maximum effective index estimate. In this case, we set the mode solver to search near an effective index of 2.5, which is slightly above the guess for the maximum effective index. We knew the effective index from the reference. If you set this number to 5 then you will find the same modes, but it will take the mode solver a bit longer to find the modes.
The following figures show the field components of the SSb0 mode. The phase of the mode automatically determined from MODE differs from the Berini figures by 180 degrees. This phase difference can be correct in the plasmon_plot.lsf script.
It is important to notice that most of the field energy is confined to the corners of the waveguide. The following figures show the electric field intensity over the entire waveguide area (left figure), then zoomed in near the waveguide corner (right figure).
Effective index as a function of waveguide thickness
The plots below show the results of a sweep calculating the ssb0 mode effective index as a function of waveguide thickness, from 50nm-200nm. The effective index increased from about 2.18 to 2.63. These results are in very good agreement with Figure 2A and 2B from the reference paper [1].
Modeling Instructions
This page contains 3 independent sections, "Simulation setup", "Find and plot mode SSb0", and "Effective index as a function of waveguide thickness". The first section describes how to set up the simulation file. You can skip this step, by downloading the associated plasmon.lms file from the top-level Plasmonic Waveguide page and proceeding to the second section. Section 2 describes how to find the SSb0 mode and plot the field profiles. Section 3 describes how to set up a sweep to obtain the effective index as a function of waveguide thickness.
Simulation setup
- Start a new simulation. Since we are using a 2D Z-normal Eigenmode solver you can open the simulation up in 2D drawing mode by selecting the menu options below. This hides the z dimension since we are not using it.
Add new material to material database
- Press on the MATERIAL database button to open the material database
- Click on the Add button and select (n,k) material. This adds a new material named "New Material 1" to the database. Edit this material according to the following table.
property |
value |
---|---|
Name |
Ag Berini :: 633nm |
Refractive Index |
0.0607893 |
Imaginary Refractive Index |
4.35932 |
Set up structure and MODE Solver region
- Press on the arrow on the STRUCTURES button and select a RECTANGLE from the pull-down menu. Set the properties according to the following table.
tab |
property |
value |
---|---|---|
name |
waveguide |
|
Geometry |
x (μm) |
0 |
x span (μm) |
1 |
|
y (μm) |
0 |
|
y span (μm) |
0.1 |
|
z (μm) |
0 |
|
z span (μm) |
1 |
|
Material |
material |
Ag Berini :: 633nm |
- Press on the arrow on the SIMULATION button and select a EIGENMODE SOLVER region. Set the properties according to the following table.
tab |
property |
value |
---|---|---|
General |
solver type |
2D Z normal |
background index |
2 |
|
Geometry |
x (μm) |
0 |
x span (μm) |
2 |
|
y (μm) |
0 |
|
y span (μm) |
0.6 |
|
z (μm) |
0 |
|
Mesh Settings |
mesh cells x |
200 |
mesh cells y |
60 |
|
Boundary Conditions |
x min bc |
Symmetric |
x max bc |
Metal |
|
y min bc |
Anti-Symmetric |
|
y max bc |
Metal |
- Press on the arrow on the SIMULATION button and select a MESH region Set the properties according to the following table.
tab |
property |
value |
---|---|---|
General |
set mesh multiplier |
yes |
x mesh multiplier |
100 |
|
y mesh multiplier |
100 |
|
Geometry |
x (μm) |
0.5 |
x span (μm) |
1e-7 |
|
y (μm) |
0.05 |
|
y span (μm) |
1e-7 |
|
z (μm) |
0 |
Find and plot mode SSb0
- Open the analysis window by pressing on the RUN button
- First press the MESH STRUCTURE button to mesh the structure, and obtain a spatial plot of the refractive index
- In the MODAL ANALYSIS section set the properties according to the following table. Then press CALCULATE MODES. The effective index of plasmon modes is often higher than the maximum real part of the effective index. For this reason we want to search for a n which is higher than the default "use effective index" setting.
property |
value |
---|---|
wavelength (μm) |
0.633 |
number of trial modes |
5 |
search |
near n |
use max index |
uncheck |
n |
2.5 |
- There are 3 different methods which can be used to create the plots of the ssb0 mode
Analysis Window |
You can plot the components of the profile using the mode plot options of the analysis window. See the mode plot options page in the reference guide for more details. |
Script File |
Open the script file editor, as shown on the MODE GUI page of the Introduction section. Next, press on the OPEN button and browse to the plasmon_plot.lsf script file included in the installation directory for MODE or on the first page of this example. Then press on the RUN SCRIPT button . The script will generate the plots on the previous page. |
Visualizer |
In the analysis window, the mode data appears in a list with mode numbers. Find the mode of interest and select it in the Object tree as shown below. Choose to Visualize the electromagnetic fields. You can then select which components of the E field data you want to plot in the Visualizer. The screenshot below shows how to plot the real part of the z component of the Electric fields. |
Effective index as a function of waveguide thickness
Step 1: Make mode1 data available to parameter sweep
We are interested in obtaining the effective index and loss data from the ssb0 mode. Note that when we found modes in the previous step, the ssb0 was always the first mode in the mode list. In analysis mode we can see the mode1 data in the MODE data group (left image below). If you switch to layout (right image below), the mode1 data is no longer available. The first step is to make sure the mode1 data is available for the sweep.
- Edit the MODE data group by right clicking on the object with your mouse. Select the Edit object option from the list.
- In the Analysis-Variables tab click the bottom ADD button twice. This will add two results which the data group can give to the parameter sweep. Rename these two results "neff" and "loss" as shown in the bottom left window.
- Switch to the Analysis-Script tab shown in the right part of the image below. Then add the following two lines of script commands which will add data to the "neff" and "loss" results once a simulation has run. Press OK to save your changes.
neff=getdata("mode1","neff");
loss=getdata("mode1","loss");
Step 2: Create a sweep
- Open the Optimization and Sweeps window using the VIEW menu at the top of the graphical user interface, or by right clicking on the top title bar of the MODE GUI.
- Press on the CREATE NEW PARAMETER SWEEP button to add a new sweep to the simulation. Right click on the parameter sweep and choose to Edit the parameter sweep. Set the properties according to the following screenshot. Notice that the only results you can chose are the results which are seen in the screenshot of the Analysis-Variables tab above.
Step 3: Run the sweep and plot the data
- Press on the RUN SWEEP button in the Optimizations and Sweeps Window to run the sweep.
- Plot the sweep data. The following code can be used to reproduce the above figures.
thickness = getsweepdata("thickness","waveguide_span");
neff = getsweepdata("thickness","neff");
loss = getsweepdata("thickness","loss");
# plot results
plot(thickness*1e6,neff,"Waveguide thickness (um)","effective index");
plot(thickness*1e6,loss*633e-9/(2*pi*20*log10(exp(1))),"Waveguide thickness (um)","loss (k)");
Related references
1. P. Berini, "Plasmon-polariton waves guided by thin lossy metal films of finite width: Bound modes of symmetric structures", Phys. Rev. B, 61, 10484-10503 (2000).