Hi there, I have a question about modelling rate equations. Basically the modelling is solving differential equations hence I'm trying to use ODE45.The equations are as follows:
It should also be noted that the two values of and are as follows
I have written the above equations in a program as follows.
——Main program———–
clear alltspan = [0 2d-9]; % time interval, up to 2 ns
y0 = [0,0,0,0]; [t,y] = ode45('rate_eq_program_1',tspan,y0);size(t);t=t*1d9;y_max = max(y);y1 = y_max(1);y2 = y_max(2);y3 = y_max(3);y4 = y_max(4);d = plot(t, y(:,1)/y1,'-.', t, y(:,2)/y2,'--', t, y(:,3)/y3,'-*', t, y(:,4)/y4,'-.'); % divided to normalize
xlabel('time [ns]','FontSize',14); % size of x label
ylabel('Arbitrary units','FontSize',14); % size of y label
set(gca,'FontSize',14); % size of tick marks on both axis
legend('carrier density','nanocavity carrier density','forward field','backward field') % legend inside the plot
pauseclose all
——-function——–
function y = rate_eq_program_1(t,y)%
param_rate_eq_fano % input of needed parameters
% current1 = 4d-2; % bias current (step function) [A]; 400mA
sigmaa=(2.*epsilon0.*ref_index.*ref_indexg)./(hbar.*w_s).*((1+(abs(r_R)).^2).*(1-r_R))./(conf.*V_g.*g_n.*(y(1)-N_0)); ydot(1) = current1./(e.*V_a)-y(1)./tau1-(V_g.*g_n.*(y(1)-N_0).*sigmaa.*(abs(y(3))).^2)./V_m; ydot(2) = -y(2)./tau1-(conf_NC.*V_g.*g_n.*(y(2)-N_0).*rho.*(abs(y(4))).^2)./V_NC;ydot(3) = 1/2.*(1-1i.*henry).*conf.*V_g.*g_n.*(y(1)-N_ss).*y(3)+gamma_L.*((y(4)./r_R-y(3)));ydot(4) = (-1i.*delta_w-gamma_T).*y(4)-p.*gamma_c.*y(3)+1/2.*(1-1i.*henry).*conf_NC.*V_g.*g_n.*(y(2)-N_0).*y(4);ydot = ydot'; % must return column vector
——-param_rate_eq_laser——–
c = 3d10; % velocity of light [cm/s]
e = 1.6021892d-19; % elementary charge [C]
h_Planck = 6.626176d-34; % Planck constant [J s]
hbar = h_Planck/(2.0*pi); % Dirac constant [J s]
% Geometrical dimensions
L = 5d-4; w = 9d-5; d = 80d-8; %V = L*w*d;
V_a = 5.26d-7; conf = 0.5; conf_NC =0.3; V_m = V_a/conf; V_NC=2.4d-7; ref_index = 3.5; ref_indexg=3.5; V_g = c/ref_index; tau1 = 5d-10; g_n = 5d-16; N_0=1d18; N_ss=3d18; henry_i=100000; henry=1; gamma_L=8.5*10^12; gamma_c=383*10^9; gamma_T=387*10^9; w_r=193*10^12; w_s=196*10^12; w_c=250*10^12; p=-1; epsilon0=8.85*10^-14; rho=(2*epsilon0*ref_index*c)./gamma_c*hbar*w_r; r_L=1; delta_w=(w_c-w_s);
And I get the following answer at the output.
0 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 0
Even if the given parameters have errors for any reason, this should not cause zero output.
Thanks in advance for helping!!
Best Answer