######################################## # ferroelectric_neff_vs_voltage.lsf # This script extracts neff over bias voltage. # # Copyright 2016, Lumerical Solutions Inc. ########################################## clear; closeall; lambda = 1550e-9; # operating wavelength voltage = linspace(1,5,9); # initialize vector of bias voltages neff = matrix(length(voltage)); # matrix to store the effective index results searchNeffNear = 2.6; switchtolayout; setanalysis("wavelength",lambda); setanalysis("n", searchNeffNear); setnamed("BTO","import_E_field",true); # loop through bias points for(I = 1:length(voltage)){ ?"Calculating effective index for bias voltage "+num2str(I)+" of "+num2str(length(voltage))+"..."; # set bias points switchtolayout; setnamed("BTO","bias_point",I); # run FDE simulation run; numModes = findmodes; # collect effective indices modeEffIndices = matrix(numModes,1); # find and store the desired mode for(J = 1:numModes){ modeEffIndices(J) = getresult("FDE::data::mode"+num2str(J),"neff"); } J = find(modeEffIndices,searchNeffNear); neff(I) = modeEffIndices(J); } # plot effective index vs voltage plot(voltage,real(neff),"bias voltage (V)","neff"); setplot("show legend",false);