Thank you for your continuing help! According to your line of thought, I checked the simulation detail as follow:

1. I calculate the pulse energy by integrating the poynting vector from 2D time monitor, which I set at 0.1 and 25 micrometers away from the TE mode source as input and output. Here’s the script I use to calculate the pulse energy:

p_in = getdata("0.1μm 2D Y-normal time monitor","power");

t_in = getdata("0.1μm 2D Y-normal time monitor","t");

power_in = integrate(p_in,2,t_in);

2. When I change the point for field profile from 10-20, the frequency range doesn’t change: for the mode source, the 200fs pulse centered at 1550nm has FWHM from 1540 to 1560nm. And for the monitor, I set the frequency range from 1400 to 1700nm in “set global monitor settings” in the DFT monitor(I didn’t find that in time monitor).

3. The source amplitude is set to 3e9, and the index change is about 0.291.(I calculated by the following formula in ”FDTD Analysis of Two-Photon Absorption and Free-Carrier Absorption in Si High-Index-Contrast Waveguides”)

This index change is pretty larger than 0.01, but according to the theory model of “kerrnonlinear”, all I need is to entry only one permittivity value(which is the square of index, 3.48), and this model seems to have nothing to do with wavelength?

4. I also tried to set lower source amplitude or lower Chi3, unsurprisingly the loss is gradully disappearing, but the broadened spectrum is also returning to its original source spectrum, making this simualtion seems to be a linear one.

Thank you for your patient guidance, here are my entire script(plugin parameters are listed before), could you please take a glance in case I made some stupid mistake? I ‘m really eager to know why this happened.

clear;

switchtolayout;

deleteall;

material_sio2 = "SiO2 (Glass) - Palik";

material_nonlinear = "kerrnonlinear";

cwnorm;

amplitude=3e9;

pulselength=200e-15;

waveguidelength=25e-6;

buffer1=10e-6;

substratethickness=6e-6;

buffer2=3e-6;

width=450e-9;

height=220e-9;

addrect;

set("name","SiO2substrate");

set("x",0);

set("y",buffer1+(waveguidelength/2));

set("z",0-(height/2)-(substratethickness/2));

set("x span",20e-6);

set("y span",waveguidelength+2*buffer1);

set("z span",substratethickness+30e-6);

set("material",material_sio2);

addrect;

set("name","waveguide");

set("x",0);

set("y",buffer1+(waveguidelength/2));

set("z",0);

set("x span",width);

set("y span",waveguidelength+2*buffer1);

set("z span",height);

set("material",material_nonlinear);

addfdtd;

set("x",0);

set("x span",width+buffer2);

set("y",buffer1+(waveguidelength/2));

set("y span",waveguidelength+9e-6);

set("z",0);

set("z span",height+buffer2);

set("simulation time",50e-12);

addmode;

set("name","fundamental TE mode source");

set("mode selection","fundamental TE mode");

set("injection axis","y-axis");

set("direction","Forward");

set("amplitude",amplitude);

set("frequency dependent profile",1);

set("number of field profile samples",10);

set("x",0);

set("y",buffer1);

set("z",0);

set("x span",width+buffer2);

set("z span",height+buffer2);

set("set time domain",1);

set("pulse type","standard");

set("frequency",193.414e12);#1550nm

set("pulselength",pulselength);

set("offset",pulselength*2);

addpower;

set("name","XOY power monitor");

set("monitor type","2D Z-normal");

set("x",0);

set("x span",width+buffer2);

set("y",buffer1+(waveguidelength/2));

set("y span",waveguidelength+9e-6);

set("z",0);

setglobalmonitor("use wavelength spacing",1);

setglobalmonitor("use source limits",0);

setglobalmonitor("minimum wavelength",1.4e-6);

setglobalmonitor("maximum wavelength",1.7e-6);

setglobalmonitor("frequency points",100);

addmovie;

set("name","XOY pulse movie monitor");

set("monitor type","2D Z-normal");

set("x",0);

set("x span",width+buffer2);

set("y",buffer1+(waveguidelength/2));

set("y span",waveguidelength+9e-6);

set("z",0);

addtime;

set("name","25μm point time monitor");

set("monitor type","Point");

set("x",0);

set("y",buffer1+waveguidelength);

set("z",0);

set("output power",1);

addtime;

set("name","0.1μm point time monitor");

set("monitor type","Point");

set("x",0);

set("y",buffer1+0.1e-6);

set("z",0);

set("output power",1);

addtime;

set("name","25μm 2D Y-normal time monitor");

set("monitor type","2D Y-normal");

set("x",0);

set("x span",width+buffer2);

set("y",buffer1+waveguidelength);

set("z",0);

set("z span",height+buffer2);

set("output power",1);

addtime;

set("name","0.1μm 2D Y-normal time monitor");

set("monitor type","2D Y-normal");

set("x",0);set("x span",width+buffer2);

set("y",buffer1+0.1e-6);

set("z",0);set("z span",height+buffer2);

set("output power",1);

run;

p_out = getdata("25μm 2D Y-normal time monitor","power");

t_out = getdata("25μm 2D Y-normal time monitor","t");

p_in = getdata("0.1μm 2D Y-normal time monitor","power");

t_in = getdata("0.1μm 2D Y-normal time monitor","t");

power_out = integrate(p_out,2,t_out);

power_in = integrate(p_in,2,t_in);