Evanescent coupling in glass waveguides

hi all,

iam trying to simulate evanescent coupling between two glass waveguides which are based on an ion diffusion process and have a spatially varying refractive index profile (similar to here)
in contrast to the example in the application gallery the waveguides in glass are pretty wide and have a mode field diamater of about 10µm due to the low change in refractive index.
the estimated coupling length for a pitch between those waveguides (center to center) of 18µm is about ~3mm.

the problem now is that the 2 waveguide objects are overlaid when i place them that close and it seems that in the FDE simulation only the superficial waveguide is considered.
as a workaround i could merge the two profiles of the waveguides numerically into 1 profile and use this in my simulation but i’d like to avoid this.

any idea/hint is much appreciated!

glass_wg_coupler.lms (499.4 KB)

Hey @oliver.kirsch,

In FDE the default is to search for modes in the material with max index. This is typically the case when looking for guided modes. What do you mean by 'superficial mode. Sometimes you have to change the target n if you are looking for a mode that is not obvious.I believe that you are looking for the symmetric and anti-symmetric modes of this structure?

Thanks for sharing you files. What I think is going on is that the ‘right’ import object is taking mesh precedence over the ‘left’ import object. Can you combine the dataset and then import as one objects?


Hi trobertson,

thanks a lot for your quick reply!

I already did this and it works fine. My question is: is it possible that lumerical numerically combines these when i run the simulations? That would save a lot of work.
For instance i’d like to run a sweep where i change gap between the two waveguides in order to get a function of the coupling length depending on the gap. That is not feasible or easy to do when i have to combine the dataset myself.
I also have the feeling that when using build-in structures in lumerical with a varying refractional index (by applying a formula in the material properties), this problem does not appear. i can overlay structures and they are not taking over mesh precedence as you named it. am i right ?

Hey @oliver.kirsch,

I do not believe there is a way of taking the union of your index attributes. One object will always take precedence over the other so when they intersect in space the index will not be the sum of both. This is different than doping objects in DEVICE where values are added.

Since you have the data written as a text file I do not believe that it would be very difficult to write a script that adds the profiles together, varying the gap between the diffusion regions, and then saves as a new text file. Import this file as n(,k) object, and write a script to run the sweep. Something like.

for ( NN = 1:length_coupling_sweep){


# add an import object

# choose the desired options
filename = "usr_importnk_" + num2str(NN) + ".txt";
file_units = "microns";
x0 = 0;
y0 = 0;
z0 = 0;
reverse_index_order = 0; # choose 1 to reverse order of indices as read from file

# import the data from file


E = getresult("FDE::data::mode1",'E');
H = getresult("FDE::data::mode1",'H');
neff = getresult("FDE::data::mode1",'neff');
#Whatever results you want

save_file = "couple_results" +  num2str(NN) + ".mat";



hey @trobertson,

thanks a lot. That script might come in handy indeed!

For some scenarios i’d like to simulate this approach still might be too inconvenient, for instance a directional coupler / beamsplitter. In the region of the s-bends i’d have to do a lot of combination of the datasets along the axis of propagation depending on the spatial resolution i want.

It’s a bummer to hear that the index of intersected structures in general will not be the sum of both … as i’ve found a workaround. Instead of importing the datasets I’ll fit those index profiles with a voigt-fit or polynomial fit and use the resulting coefficients in a formula in the material index properties.
Still the structures are intersecting and i need the resulting index attributes to be added.

Hey Oliver,

If this is something you would like to see in our products maybe consider submitting it to Idea Exchange for voting.