I am using MODE solutions to optimize the dimensions of a waveguide in order to maximize the confinement factor. I know how to calculate the confinement factor via the “power and intensity integration” option of the Eigensolver Analysis. However, I have failed to set the confinement factor as an optimization parameter.

My question is: how can I set the confinement factor calculated by power integration as an optimization parameter?

The simple answer is that it is not possible to directly set the “fraction integrated” as a figure of merit for optimization. The good news is that you can use a script in the model analysis to calculate this value and then pass it to the optimization routine.

I wrote an example script for calculating the fraction integrated for rectangular shape:

#select mode to be integrated
m = 'mode1'; # for single frequency
#Define the rectangular integration shape
x1=-0.3e-6;
x2=0.3e-6;
y1=-0.9e-6;
y2=0.9e-6;
#Calculate the overal power of the mode
x = getdata(m,"x");
y = getdata(m,"y");
Ex = getdata(m,"Ex");
Ey = getdata(m,"Ey");
Hx = getdata(m,"Hx");
Hy = getdata(m,"Hy");
Pz=pinch(Ex*conj(Hy)-Ey*conj(Hx));
P=integrate(Pz,1:2,x,y);
#Create the spatial filter based on the integration shape
filter=matrix(length(x),length(y));
for (i=1:length(x)) {
for (j=1:length(y)) {
if((x(i)>=x1)&(x(i)<=x2)&(y(j)>=y1)&(y(j)<=y2)) {
filter(i,j)=1;
} else {
filter(i,j)=0;
}
}
}
#Filter out the E and H fileds in within the integration shape
Exf=pinch(Ex)*filter;
Eyf=pinch(Ey)*filter;
Hxf=pinch(Hx)*filter;
Hyf=pinch(Hy)*filter;
#Calculate the fraction of power in the integration area
Pzf=pinch(Exf*conj(Hyf)-Eyf*conj(Hxf));
Pf=integrate(Pzf,1:2,x,y);
fraction_integrated=abs(Pf/P);

To use this script for optimization purposes, you simply paste it into the model analysis as shown here:

…and pass “fraction_integrated” to the result window:

Now you can select the calculated result in the optimization settings as a figure of merit: