Optimal doping profile optimization
M = 50;
g1 = 0.42;
g2 = 0.69;
Nmax = 5*10^18;
Nmin = 5*10^16;
Nref = 10^17;
Dn0 = 20.72;
ni0 = 1.4*(10^10);
WB = 10^(-5);
C = WB^2/((M^2)*(Nref^g1)*Dn0);
pwi = g2 -1;
pwj = 1+g1-g2;
cvx_begin gp
variables v(M) y(M) w(M)
tau_B = C*w(1);
minimize( tau_B )
subject to
v >= Nmin;
v <= Nmax;
for i = 1:M-1
if( mod(i,100) == 0 ), fprintf(1,'progress counter: %d\n',i), end;
y(i+1) + v(i)^pwj <= y(i);
w(i+1) + y(i)*v(i)^pwi <= w(i);
end
y(M) == v(M)^pwj;
w(M) == y(M)*v(M)^pwi;
cvx_end
figure, clf
nbw = 0:1/M:1-1/M;
semilogy(nbw,v,'LineWidth',2);
axis([0 1 1e16 1e19]);
xlabel('base');
ylabel('doping');
text(0,Nmin,'Nmin ', 'HorizontalAlignment','right');
text(0,Nmax,'Nmax ', 'HorizontalAlignment','right');
disp('Optimal doping profile is plotted.')
Successive approximation method to be employed.
For improved efficiency, sedumi is solving the dual problem.
sedumi will be called several times to refine the solution.
Original size: 688 variables, 246 equality constraints
196 exponentials add 1568 variables, 980 equality constraints
-----------------------------------------------------------------
Errors
Act Centering Conic Status
-----------------------------------
196 4.474e+00 2.046e+00 Solved
191 2.558e+00 7.146e-01 Solved
194 2.891e-01 7.024e-03 Solved
192 2.744e-02 5.935e-05 Solved
196 1.881e-01S 2.959e-03S Solved
194 1.160e-03 0.000e+00 Solved
-----------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +1.5787e-12
Optimal doping profile is plotted.