# DESCRIPTION # { # Modulation bandwidth is calculated from a small signal model implemented in script, with DC parameters derived from the # full numerical simulation. To increase the accuracy of bandwidth calculation the capture/escape rate model is implemented # based on 1992, Nagarajan, High speed quantum-well lasers and carrier transport effects. # # NOTES: # # 1. Spontaneous emission contribution to the small signal photon density is neglected in the small signal model as it does not affect the # modulation bandwidth significantly. This agrees with the reference (1992, Nagarajan). # 2. The device model used in this example is our FP getting started example. # # } clear; small_signal_bandwidth; #load custom script function that implements small signal model. load("TWLMexampleLaserFP300umCF353THzR3R3nel100_small_signal"); switchtolayout; #Enable diagnostic output to inform the small signal model of DC operating point results setnamed('TWLM_1','run diagnostic',true); setnamed('TWLM_1','longitudinal profiles downsample factor',1000); setnamed('TWLM_1','record carrier density profile',true); setnamed('TWLM_1','record photon density profile',true); setnamed('TWLM_1','record recombination rates profile',true); #Enable carrier capture/escape rate model and set some reasonable values (not necessarily accurate for the device in question) setnamed('TWLM_1','enable SCH',true); setnamed('TWLM_1','well carrier capture rate',1.42857e+10); setnamed('TWLM_1','well carrier escape rate',7.14286e+09); setnamed('TWLM_1','total well thickness',1e-7); setnamed('TWLM_1','total barrier thickness',1e-7); run; steadyStateTime = getnamed("::Root Element","time window"); ss_BW = ss_bandwidth(steadyStateTime,20e9,1000); ?'3dB bandwidth from small signal simulation is ' + num2str(ss_BW.bandwidth*1e-9) + ' GHz'; three_dB=log10(ones(length(ss_BW.rf_response))*0.001); plot(ss_BW.freq*1e-9,ss_BW.rf_response,three_dB,"Frequency (GHz)", " Normalized response (dB)","","linewidth=2"); legend('small signal RF response','3dB cut-off');