view extra/secs1d/doc/function/secs1d_dd_newton.tex @ 9872:e567b7ac3d1f octave-forge

new version of secs1d
author cdf
date Sun, 25 Mar 2012 22:44:30 +0000
parents
children
line wrap: on
line source

\begin{verbatim}


 [n, p, V, Fn, Fp, Jn, Jp, it, res] = secs1d_dd_newton (x, D, Vin, nin, 
                                                        pin, l2, er, un, 
                                                        up, theta, tn, tp, 
                                                        Cn, Cp, toll, maxit)

 Solve the scaled stationary bipolar DD equation system using Newton's method

     input: 
       x                spatial grid
       D                doping profile
       pin              initial guess for hole concentration
       nin              initial guess for electron concentration
       Vin              initial guess for electrostatic potential
       l2               scaled Debye length squared
       er               relative electric permittivity
       un               electron mobility model coefficients
       up               electron mobility model coefficients
       theta            intrinsic carrier density
       tn, tp, Cn, Cp   generation recombination model parameters
       toll             tolerance for Gummel iterarion convergence test
       maxit            maximum number of Gummel iterarions

     output: 
       n     electron concentration
       p     hole concentration
       V     electrostatic potential
       Fn    electron Fermi potential
       Fp    hole Fermi potential
       Jn    electron current density
       Jp    hole current density
       it    number of Gummel iterations performed
       res   total potential increment at each step


\end{verbatim}




\subsection{Demo 1 for function secs1d\_dd\_newton}
\begin{verbatim}

 % physical constants and parameters
 secs1d_physical_constants;
 secs1d_silicon_material_properties;
 
 % geometry
 L  = 1e-6; % [m] 
 x  = linspace (0, L, 10)';
 sinodes = [1:length(x)];
 
 % dielectric constant (silicon)
 er = esir * ones (numel (x) - 1, 1);
 
 % doping profile [m^{-3}]
 Na = 1e20 * ones(size(x));
 Nd = 1e24 * ones(size(x));
 D  = Nd-Na;  
 
 % externally applied voltages
 V_p = 10;
 V_n = 0;
  
 % initial guess for phin, phip, n, p, V
 Fp = V_p * (x <= L/2);
 Fn = Fp;
 
 p = abs(D)/2.*(1+sqrt(1+4*(ni./abs(D)).^2)).*(D<0)+...
     ni^2./(abs(D)/2.*(1+sqrt(1+4*(ni./abs(D)).^2))).*(D>0);
 
 n = abs(D)/2.*(1+sqrt(1+4*(ni./abs(D)).^2)).*(D>0)+...
     ni^2./(abs(D)/2.*(1+sqrt(1+4*(ni./abs(D)).^2))).*(D<0);
 
 V  = Fn + Vth*log(n/ni);

 % scaling factors
 xbar = L;                         % [m]
 nbar = norm(D, 'inf');            % [m^{-3}]
 Vbar = Vth;                       % [V]
 mubar = max(u0n, u0p);            % [m^2 V^{-1} s^{-1}]
 tbar = xbar^2/(mubar*Vbar);       % [s]
 Rbar = nbar/tbar;                 % [m^{-3} s^{-1}]
 Ebar = Vbar/xbar;                 % [V m^{-1}]
 Jbar = q*mubar*nbar*Ebar;         % [A m^{-2}]
 CAubar = Rbar/nbar^3;             % [m^6 s^{-1}]
 abar = xbar^(-1);                 % [m^{-1}]
 
 % scaling procedure
 l2 = e0*Vbar/(q*nbar*xbar^2);     
 theta = ni/nbar;                  
 
 xin = x/xbar;
 Din = D/nbar;
 Nain = Na/nbar;
 Ndin = Nd/nbar;
 pin = p/nbar;
 nin = n/nbar;
 Vin = V/Vbar;
 Fnin = Vin - log(nin);
 Fpin = Vin + log(pin);
 
 tnin = tn/tbar;
 tpin = tp/tbar;
 
 % mobility model accounting scattering from ionized impurities
 u0nin = u0n/mubar;
 uminnin = uminn/mubar;
 vsatnin = vsatn/(mubar*Ebar);
 
 u0pin = u0p/mubar;
 uminpin = uminp/mubar;
 vsatpin = vsatp/(mubar*Ebar);
 
 Nrefnin = Nrefn/nbar;
 Nrefpin = Nrefp/nbar;
 
 Cnin     = Cn/CAubar;
 Cpin     = Cp/CAubar;
 
 anin     = an/abar;
 apin     = ap/abar;
 Ecritnin = Ecritn/Ebar;
 Ecritpin = Ecritp/Ebar;
 
 % tolerances for convergence checks
 ptoll = 1e-12;
 pmaxit = 1000;
 
 % solve the problem using the Newton fully coupled iterative algorithm
 [nout, pout, Vout, Fnout, Fpout, Jnout, Jpout, it, res] = secs1d_dd_newton (xin, Din, 
                                                                Vin, nin, pin, l2, er, 
                                                                u0nin, u0pin, theta, tnin, 
                                                                tpin, Cnin, Cpin, ptoll, pmaxit);
 % Descaling procedure
 n    = nout*nbar;
 p    = pout*nbar;
 V    = Vout*Vbar;
 Fn   = V - Vth*log(n/ni);
 Fp   = V + Vth*log(p/ni);
 dV   = diff(V);
 dx   = diff(x);
 E    = -dV./dx;
 
 % compute current densities 
 [Bp, Bm] = bimu_bernoulli (dV/Vth);
 Jn       =  q*u0n*Vth .* (n(2:end) .* Bp - n(1:end-1) .* Bm) ./ dx; 
 Jp       = -q*u0p*Vth .* (p(2:end) .* Bm - p(1:end-1) .* Bp) ./ dx;
 Jtot     =  Jn+Jp;
 
 % band structure
 Efn  = -Fn;
 Efp  = -Fp;
 Ec   = Vth*log(Nc./n)+Efn;
 Ev   = -Vth*log(Nv./p)+Efp;

 plot (x, Efn, x, Efp, x, Ec, x, Ev)
 legend ('Efn', 'Efp', 'Ec', 'Ev')
 axis tight
\end{verbatim}

\begin{figure}\centering
\includegraphics[width=.7\linewidth]{function/images/secs1d_dd_newton_819.png}
\caption{Figure produced by demo number 1 for function secs1d\_dd\_newton}
\label{fig:secs1d_dd_newton_figure_1}
\end{figure}
\clearpage