Mercurial > forge
view extra/secs1d/doc/function/secs1d_nlpoisson_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} [V, n, p, res, niter] = secs1d_nlpoisson_newton (x, sinodes, Vin, nin, pin, Fnin, Fpin, D, l2, er, toll, maxit) input: x spatial grid sinodes index of the nodes of the grid which are in the semiconductor subdomain (remaining nodes are assumed to be in the oxide subdomain) Vin initial guess for the electrostatic potential nin initial guess for electron concentration pin initial guess for hole concentration Fnin initial guess for electron Fermi potential Fpin initial guess for hole Fermi potential D doping profile l2 scaled Debye length squared er relative electric permittivity toll tolerance for convergence test maxit maximum number of Newton iterations output: V electrostatic potential n electron concentration p hole concentration res residual norm at each step niter number of Newton iterations \end{verbatim} \subsection{Demo 1 for function secs1d\_nlpoisson\_newton} \begin{verbatim} secs1d_physical_constants secs1d_silicon_material_properties tbulk= 1.5e-6; tox = 90e-9; L = tbulk + tox; cox = esio2/tox; Nx = 50; Nel = Nx - 1; x = linspace (0, L, Nx)'; sinodes = find (x <= tbulk); xsi = x(sinodes); Nsi = length (sinodes); Nox = Nx - Nsi; NelSi = Nsi - 1; NelSiO2 = Nox - 1; Na = 1e22; D = - Na * ones (size (xsi)); p = Na * ones (size (xsi)); n = (ni^2) ./ p; Fn = Fp = zeros (size (xsi)); Vg = -10; Nv = 80; for ii = 1:Nv Vg = Vg + 0.2; vvect(ii) = Vg; V = - Phims + Vg * ones (size (x)); V(sinodes) = Fn + Vth * log (n/ni); % Scaling xs = L; ns = norm (D, inf); Din = D / ns; Vs = Vth; xin = x / xs; nin = n / ns; pin = p / ns; Vin = V / Vs; Fnin = (Fn - Vs * log (ni / ns)) / Vs; Fpin = (Fp + Vs * log (ni / ns)) / Vs; er = esio2r * ones(Nel, 1); l2(1:NelSi) = esi; l2 = (Vs*e0)/(q*ns*xs^2); % Solution of Nonlinear Poisson equation % Algorithm parameters toll = 1e-10; maxit = 1000; [V, nout, pout, res, niter] = secs1d_nlpoisson_newton (xin, sinodes, Vin, nin, pin, Fnin, Fpin, Din, l2, er, toll, maxit); % Descaling n = nout*ns; p = pout*ns; V = V*Vs; qtot(ii) = q * trapz (xsi, p + D - n); end vvectm = (vvect(2:end)+vvect(1:end-1))/2; C = - diff (qtot) ./ diff (vvect); plot(vvectm, C) xlabel('Vg [V]') ylabel('C [Farad]') title('C-V curve') \end{verbatim} \begin{figure}\centering \includegraphics[width=.7\linewidth]{function/images/secs1d_nlpoisson_newton_85.png} \caption{Figure produced by demo number 1 for function secs1d\_nlpoisson\_newton} \label{fig:secs1d_nlpoisson_newton_figure_1} \end{figure} \clearpage