Introduction
Simulation tools capable of numerically characterizing semiconductor devices play a vital role in device/system design frameworks used by the electronics industry as well as various related research fields [1]–[8]. Indeed, in the last several decades, numerous commercial and open source technology computer aided design (TCAD) tools, which implement various transport models ranging from semi-classical to quantum mechanical models, have been developed for this purpose [9]. Despite the recent trend of device miniaturization that requires simulators to account for quantum transport effects, many devices with larger dimensions (at the scale of
Among the semi-classical approaches developed for modeling charge carrier transport, the drift-diffusion (DD) model is among the most popular ones because of its simplicity while being capable of explaining many essential characteristics of semiconductor devices [1]–[3]. One well-known challenge in using the DD model is the exponential variation of carrier densities, which renders standard numerical schemes used for discretizing the model unstable unless an extremely fine mesh is used. This challenge traces back to the convection-dominated convection-diffusion equations, whose solutions show sharp boundary layers. Various stabilization techniques have been proposed and incorporated with different discretization schemes [11]–[21]. The Scharfetter-Gummel (SG) method [11] has been one of the workhorses in semiconductor device modeling; it uses exponential functions to approximate the carrier densities so that the fine mesh requirement can be alleviated. The SG method has been first proposed for finite difference discretization, and then generalized to finite volume method (FVM) [12]–[17] and finite element method (FEM) [18]–[21].
As mentioned above, many modern devices involve geometrically intricate structures. Therefore, FVM and FEM, which allow for unstructured meshes, have drawn more attention in recent years. However, the SG generalizations making use of FVM and FEM pose requirements on the regularity of the mesh [14], [16], [20]–[22]. For example, FVM requires boundary conforming Delaunay triangulations for two dimensional (2D) simulations and admissible partitions for three dimensional (3D) ones [14], [16], [22]. These requirements cannot be easily satisfied in mesh generation for devices with complex geometries [21], [22]. In addition, FEM stabilization techniques, such as the streamline upwind Petrov-Galerkin (SUPG) method [23], [24] and the Galerkin least-square (GLS) method [25], [26], have been used in simulation of semiconductor devices. However, SUPG suffers from “artificial” numerical diffusion [27]–[29]; and GLS leads to unphysical smearing of the boundary layers and does not preserve current conservation [27], [30].
Although significant effort has been put into the numerical solution of the convection-dominated convection-diffusion problem in the last three decades, especially in the applied mathematics community, a fully-satisfactory numerical scheme for general industrial problems is yet to be formulated and implemented, for example see [27], [28], [31]–[33] for surveys.
The discontinuous Galerkin (DG) method has attracted significant attention in several fields of computational science [34]–[38]. DG can be thought of as a hybrid method that combines the advantages of FVM and FEM. It uses local high-order expansions to represent/approximate the unknowns to be solved for. Each one of these expansions is defined on a single mesh element and is “connected” to other expansions defined on the neighboring elements via numerical flux. This approach equips DG with several advantages: The order of the local expansions can be changed individually, the mesh can be non-conformal (in addition to being unstructured), and the numerical flux can be designed to control the stability and accuracy characteristics of the DG scheme. More specifically, for semiconductor device simulations, the instability caused by the boundary layers can be alleviated without introducing much numerical diffusion. We should note here that for a given order of expansion
These properties render DG an attractive option for multi-scale simulations [29], [34]–[39], and indeed, its time-domain version has been used to solve different types of time-dependent transport equations (e.g., the hydrodynamic and energy-transport model [40], [41], the DD model [42]–[44], and the Boltzmann transport equation [45]) and applied to the transient simulations of semiconductors. However, in device TCAD, the non-equilibrium steady-state responses, such as the dc I-V characteristics, are usually the most concerned properties [1], [2], [46]. One can obtain the steady-state response by running the transient simulation for a long duration of time while waiting for the device to reach the steady state. However, this approach becomes computationally expensive especially for explicit time-domain solvers, whose time-step size is restricted to be small by stability requirements, since they have to be executed for large number of time steps [1], [42], [44], [46]. Therefore, numerical schemes, which operate on steady-state version of the time-dependent equations and directly produce the steady-state response, are often preferred for analysis of semiconductor devices [22], [30], [46]–[50].
The steady-state DD model calls for solution of a nonlinear system consisting of three coupled second-order partial differential equations (PDEs). The first of these equations is the Poisson equation in scalar potential and the other two are the convection-diffusion type DD equations in electron and hole densities. These three equations are nonlinearly coupled via the drift current and the charge distribution. The charge-density dependent recombination rate, together with the field-dependent mobility and diffusion coefficients, makes the nonlinearity even stronger. In this context, numerical methods developed for the steady-state DD system operate differently from those developed for the time-dependent DD system. Steady-state solvers account for the nonlinearity using a fixed-point iteration method [2], [22], while existing time-domain solvers use “explicit” updates between nonlinearly coupled system during time marching [42]–[44].
In this work, for the first time, a DG-based numerical framework is formulated and implemented to solve the coupled nonlinear system of the steady-state DD and Poisson equations. More specifically, we use the local DG (LDG) scheme [51] in cooperation with the Gummel method [47] to simulate the non-equilibrium steady-state response of semiconductor devices. To construct the (discretized) DG operator for the convection-diffusion type DD equations (linearized within the Gummel method), the LDG alternate numerical flux is used for the diffusion term [52] and the local Lax-Friedrichs flux is used for the convection term. Similarly, the discretized DG operator for the nonlinear Poisson equation (linearized within the Gummel method) is constructed using the alternate numerical flux. The resulting DG-based framework is used to simulate geometrically intricate semiconductor devices with realistic models of the mobility and the recombination rate [2]. Its accuracy is demonstrated by comparing the results to those obtained by the FVM and FEM solvers implemented within the commercial software package COMSOL [30]. We should note here that other DG schemes, such as discontinuous Petrov Galerkin [53], hybridizable DG [54], exponential fitted DG [55], and DG with Lagrange multipliers [56] could be adopted for the DG-based framework proposed in this work.
The rest of the paper is organized as follows. Section II starts with the mathematical model where the coupled nonlinear system of Poisson and DD equations is introduced, then it describes the Gummel method and provides the details of the DG-based discretization. Section III demonstrates the accuracy and the applicability of the proposed framework via simulations of two realistic device examples. Finally, Section IV provides a summary and discusses possible future research directions.
Formulation
A. Mathematical Model
The DD model describes the (semi-classical) transport of electrons and holes in an electric field under the drift-diffusion approximation [1], [2]. It couples the Poisson equation that describes the behavior of the (static) electric potential and the two continuity equations that describe the behavior of electrons and holes. This (coupled) system of equations reads \begin{align*} - \nabla \cdot (\varepsilon ({\mathbf {r}})\nabla \varphi ({\mathbf {r}}))=&q(C + {n_{h}}({\mathbf {r}}) - {n_{e}}({\mathbf {r}})) \tag{1}\\ \nabla \cdot {{\mathbf {J}}_{s}}({\mathbf {r}})=&\pm qR({n_{e}},{n_{h}}), \quad s \in \{e,h\} \tag{2}\end{align*}
\begin{equation*} {{\mathbf {J}}_{s}}({\mathbf {r}}) = q{\mu _{s}}({\mathbf {E}}){\mathbf {E}}({\mathbf {r}}){n_{s}}({\mathbf {r}}) \pm q { V_{T} {\mu _{s}}({\mathbf {E}}) } \nabla {n_{s}}({\mathbf {r}}) \tag{3}\end{equation*}
\begin{equation*} {\mathbf {E}}({\mathbf {r}}) = - \nabla \varphi ({\mathbf {r}}) \tag{4}\end{equation*}
\begin{align*}&\hspace {-0.5pc}\pm \nabla \cdot ({\mu _{s}}({\mathbf {E}}){\mathbf {E}}({\mathbf {r}}){n_{s}}({\mathbf {r}})) + \nabla \cdot ({ V_{T} {\mu _{s}} ({\mathbf {E}}) } \nabla {n_{s}}({\mathbf {r}})) \\&\qquad \qquad\qquad\qquad\qquad {{\displaystyle {= R({n_{e}},{n_{h}}).} }} \tag{5}\end{align*}
\begin{equation*} {R_{{ \mathrm {SRH} }}}({n_{e}},{n_{h}}) =\frac {n_{e}({\mathbf {r}}){n_{h}}({\mathbf {r}}) - {n_{i}}^{2} } {\tau _{e}({n_{h1}} + {n_{h}}({\mathbf {r}})) + {\tau _{h}}({n_{e1}} + {n_{e}}({\mathbf {r}})) }\end{equation*}
\begin{equation*} {R_{{ \mathrm {Auger} }}}({n_{e}},\!{n_{h}}) \! = \! ({n_{e}}({\mathbf {r}}){n_{h}}({\mathbf {r}}) - {n_{i}}^{2})(C_{e}^{A}{n_{e}}({\mathbf {r}}) + C_{h}^{A}{n_{h}}({\mathbf {r}})).\end{equation*}
\begin{equation*} R({n_{e}}, {n_{h}}) = {R_{{ \mathrm {SRH} }}}({n_{e}},{n_{h}}) + {R_{{ \mathrm {Auger} }}}({n_{e}},{n_{h}}). \tag{6}\end{equation*}
The mobility models have a significant impact on the accuracy of semiconductor device simulations. Various field- and temperature-dependent models have been developed for different semiconductor materials and different device operating conditions [1], [2], [30], [49], [50]. Often, high-field mobility models, which account for the carrier velocity saturation effect, are more accurate [2], [30], [49], [50]. In this work, we use the Caughey-Thomas model [2], which expresses \begin{equation*} {\mu _{s}}({\mathbf {E}}) = \mu _{s}^{0}{\left [{ {1 + {{\left ({{\frac {{\mu _{s}^{0}{E_\parallel }({\mathbf {r}})}}{{V_{s}^{{ \mathrm {sat} }}}}} }\right)}^{\beta _{s}}}} }\right]^{\beta _{s}^{ - 1}}} \tag{7}\end{equation*}
B. Gummel Method
The DD model described by (1)–(2) and (3)–(4) represents a nonlinear and coupled system of equations. The electric field moves the carriers through the drift term in the expressions of
The Gummel iterations operate as described next and shown in Fig. 1. To facilitate the algorithm, we first introduce the quasi-Fermi potentials [1], [2], [22] \begin{equation*} {\varphi _{s}}({\mathbf {r}}) = \varphi ({\mathbf {r}}) \mp {V_{T}}\ln ({n_{s}}({\mathbf {r}})/{n_{i}}), \quad s \in \left \{{ {e,h} }\right \}. \tag{8}\end{equation*}
\begin{align*}&\hspace {-.5pc}- \nabla \cdot (\varepsilon ({\mathbf {r}})\nabla \varphi ({\mathbf {r}})) = q(C + {n_{i}}{e^{({\varphi _{h}}({\mathbf {r}}) - \varphi ({\mathbf {r}}))/{V_{T}}}} \\&\qquad \qquad\qquad\qquad\qquad\qquad\quad {{\displaystyle { - {n_{i}}{e^{(\varphi ({\mathbf {r}}) - {\varphi _{e}}({\mathbf {r}}))/{V_{T}}}}).} }} \tag{9}\end{align*}
\begin{align*}&\hspace {-1.2pc} F(\varphi ({\mathbf {r}}), {\varphi _{e}}({\mathbf {r}}),{\varphi _{h}}({\mathbf {r}})) \\=&\nabla \cdot (\varepsilon ({\mathbf {r}})\nabla \varphi ({\mathbf {r}})) \\&+\, q(C + {n_{i}}{e^{({\varphi _{h}}({\mathbf {r}}) - \varphi ({\mathbf {r}}))/{V_{T}}}} \! - \! {n_{i}}{e^{(\varphi ({\mathbf {r}}) - {\varphi _{e}}({\mathbf {r}}))/{V_{T}}}}) = 0. \tag{10}\end{align*}
\begin{align*}&\hspace {-1.2pc} F'(\varphi ({\mathbf {r}}), {\varphi _{e}}({\mathbf {r}}), {\varphi _{h}}({\mathbf {r}});{\delta _\varphi }({\mathbf {r}})) \\=&\nabla \cdot (\varepsilon ({\mathbf {r}})\nabla {\delta _\varphi }({\mathbf {r}})) \\&- \, {\textstyle {\frac{{q{n_{i}}} }{ {{V_{T}}}}}}({e^{({\varphi _{h}}({\mathbf {r}}) - \varphi ({\mathbf {r}}))/{V_{T}}}} + {e^{(\varphi ({\mathbf {r}}) - {\varphi _{e}}({\mathbf {r}}))/{V_{T}}}}){\delta _\varphi }({\mathbf {r}}).\tag{11}\end{align*}
\begin{equation*} \varphi {^{t+1}({\mathbf {r}})} = \varphi {^{t}({\mathbf {r}})} + {\delta _\varphi ^{t+1}}{({\mathbf {r}})} \tag{12}\end{equation*}
\begin{equation*} { F'(\varphi ^{t},{\varphi _{e} ^{t}},{\varphi _{h} ^{t}}; {\delta _\varphi ^{t+1}}) = - F(\varphi ^{t},{\varphi _{e} ^{t}},{\varphi _{h} ^{t}})}\tag{13}\end{equation*}
\begin{equation*} { F'(\varphi ^{t},{\varphi _{e} ^{t}},{\varphi _{h} ^{t}};\varphi ^{t} + {\delta _\varphi ^{t+1}}) = F'(\varphi ^{t},{\varphi _{e} ^{t}},{\varphi _{h} ^{t}};\varphi ^{t+1})}\end{equation*}
\begin{align*} \nabla \cdot (\varepsilon ({\mathbf {r}}){{\mathbf {E}}^{t+1}}({\mathbf {r}})) + g({\mathbf {r}})\varphi ^{t+1} {({\mathbf {r}})}=&f({\mathbf {r}}) \tag{14a}\\ {{\mathbf {E}}^{t+1}}({\mathbf {r}})=&- \nabla {\varphi ^{t+1}}({\mathbf {r}}).\tag{14b}\end{align*}
\begin{equation*} g({\mathbf {r}}) = {\textstyle {\frac{{q{n_{i}}} }{ {{V_{T}}}}}}({e^{({\varphi _{h} ^{t}}{{({\mathbf {r}})}} - \varphi ^{t} {{({\mathbf {r}})}})/{V_{T}}}} + {e^{(\varphi ^{t} {{({\mathbf {r}})}} - {\varphi _{e} ^{t}}{{({\mathbf {r}})}})/{V_{T}}}})\end{equation*}
\begin{align*}&\hspace {-.5pc} f(\mathbf{r})=\frac{q n_{i}}{V_{T}}\left(e^{\left(\varphi_{h}^{\ell}(\mathbf{r})-\varphi^{\prime}(\mathbf{r})\right) / V_{T}}+e^{\left(\varphi^{\prime}(\mathbf{r})-\varphi_{e}^{\prime}(\mathbf{r})\right) / V_{T}}\right) \varphi^{k}(\mathbf{r})\\&\qquad\qquad +q n_{i}\left(C / n_{i}+e^{\left(\varphi_{i}^{\prime}(\mathbf{r})-\varphi^{\prime}(\mathbf{r})\right) / V_{T}}-e^{\left(\varphi^{\prime}(\mathbf{r})-\varphi_{\ell}^{\prime}(\mathbf{r})\right) / V_{T}}\right)\end{align*}
Unknowns \begin{align*}&\hspace {-0.5pc} \pm \nabla \cdot ({\mu _{s} {({\mathbf {E}}^{t+1})} } {\mathbf {E}}{^{t+1}({\mathbf {r}})}{n_{s}^{t+1}}{({\mathbf {r}})}) \\&\qquad \quad\quad {{\displaystyle {+ \, \nabla \cdot ({ V_{T} {\mu _{s}}{({\mathbf {E}}^{t+1})} } \nabla {n_{s}^{t+1}}{({\mathbf {r}})}) = R(n_{e}^{t},n_{h}^{t})} }} \tag{15}\end{align*}
At this stage of the iteration,
C. DG Discretizationa
As explained in the previous section, at every iteration of the Gummel method, one needs to solve three linear systems of equations, namely (14) and (15) \begin{align*} \nabla \cdot [\varepsilon ({\mathbf {r}}){\mathbf {E}}({\mathbf {r}})] + g({\mathbf {r}})\varphi ({\mathbf {r}})=&f({\mathbf {r}}),\quad {\mathbf {r}} \in \Omega \tag{16}\\ {\mathbf {E}}({\mathbf {r}})=&- \nabla \varphi ({\mathbf {r}}),\quad {\mathbf {r}} \in \Omega \tag{17}\\ \varphi ({\mathbf {r}})=&{f_{D}}({\mathbf {r}}),\quad {\mathbf {r}} \in \;\partial {\Omega _{D}}\tag{18}\\ {\hat {\mathbf n}}({\mathbf {r}}) \cdot \varepsilon ({\mathbf {r}}){\mathbf {E}}({\mathbf {r}})=&{f_{N}}({\mathbf {r}}),\quad {\mathbf {r}} \in \;\partial {\Omega _{N}}.\tag{19}\end{align*}
To facilitate the numerical solution of the boundary value problem described by (16)–(19) (within the Gummel method), \begin{align*}&\hspace {-1.2pc} \int _{\Omega _{k}} {g({\mathbf {r}}){\varphi _{k}}({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dV} - \int _{\Omega _{k}} {\varepsilon ({\mathbf {r}}){{\mathbf {E}}_{k}}({\mathbf {r}}) \cdot \nabla {\ell _{i}}({\mathbf {r}})dV} \\&+ \, \oint _{\partial {\Omega _{k}}} \!\!\! { {\hat {\mathbf n}}({\mathbf {r}}) \cdot {{[\varepsilon ({\mathbf {r}}){{\mathbf {E}}_{k}}({\mathbf {r}})] }^{*}}{\ell _{i}}({\mathbf {r}})dS} = \! \int _{\Omega _{k}} \!\!\! {f({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dV} \qquad \tag{20}\\&\hspace {-1.2pc}\int _{\Omega _{k}} {{E_{k}^{\nu }}({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dV} - \int _{\Omega _{k}} {\varphi _{k}({\mathbf {r}})\frac {\partial }{\partial \nu }{\ell _{i}}({\mathbf {r}})dV} \\&+ \, \oint _{\partial {\Omega _{k}}} {\hat n_\nu ({\mathbf {r}}) {\varphi _{k}}{{({\mathbf {r}})}^{*}}{\ell _{i}}({\mathbf {r}})dS} = 0. \tag{21}\end{align*}
\begin{align*} {\varphi ^{*}}=&\left \{{ \varphi }\right \} + 0.5\hat {\boldsymbol { \beta }} \cdot \hat {\mathbf { n} } \left [{ \!\,\!\left [{ \varphi }\right] }\!\,\!\right]\\ {\left ({{\varepsilon {\mathbf {E}}} }\right)^{*}}=&\left \{{ {\varepsilon {\mathbf {E}}} }\right \} - 0.5\hat {\boldsymbol { \beta }} (\hat {\mathbf { n} } \cdot \left [{ \!\,\!\left [{ \varepsilon {\mathbf {E}} }\right] }\!\,\!\right])\end{align*}
We expand \begin{align*} {\varphi _{k}}({\mathbf {r}}) \simeq \sum \limits _{i = 1}^{N_{p}} {\varphi ({{\mathbf {r}}_{i}}){\ell _{i}}({\mathbf {r}})}=&\sum \limits _{i = 1}^{N_{p}} {\varphi _{k}^{i}{\ell _{i}}({\mathbf {r}})}\tag{22}\\ {E_{k}^{\nu }}({\mathbf {r}}) \simeq \mathop \sum \limits _{i = 1}^{N_{p}} {E_{\nu }}({{\mathbf {r}}_{i}}){\ell _{i}}({\mathbf {r}})=&\mathop \sum \limits _{i = 1}^{N_{p}} E_{k}^{\nu,i}{\ell _{i}}({\mathbf {r}}) \tag{23}\end{align*}
Substituting (23) and (23) into (20) and (21) for \begin{equation*} \left [{ {\begin{array}{cccccccccccccccccccc} {\bar M^{g}}&\quad {\bar D \bar \varepsilon }\\ {\bar G}&\quad {\bar M} \end{array}} }\right] \left [{ \begin{array}{l} {\bar \Phi } \\ {\bar E} \end{array} }\right] = \left [{ \begin{array}{l} {\bar B^{ \varphi } }\\ {\bar B^{\mathbf E}} \end{array} }\right]. \tag{24}\end{equation*}
\begin{equation*} ({{\bar {M}}^{g}} - {\bar {D}} \bar \varepsilon {\bar M^{-1}}{\bar {G}}) {\bar \Phi } = {\bar B^{\varphi } } - {\bar {D}} \bar \varepsilon {\bar M^{-1}}{ {\bar {B}}^{\mathbf E} } \tag{25}\end{equation*}
\begin{equation*} {\bar {M}}_{kk}^{g}(i,j) = \int _{\Omega _{k}} {g({\mathbf {r}}){\ell _{i}}({\mathbf {r}}){\ell _{j}}({\mathbf {r}})} dV.\end{equation*}
\begin{equation*} {\bar M_{kk}^{(m)}}(i,j) = \int _{\Omega _{k}} {\ell _{i}({\mathbf {r}}){\ell _{j}}({\mathbf {r}})} dV,\quad m=1,2,3.\end{equation*}
Matrices \begin{equation*} {\bar S}_{k} ^\nu (i,j) = - \int _{\Omega _{k}} { \frac {d{\ell _{i}}({\mathbf {r}})}{d\nu } {\ell _{j}}({\mathbf {r}}) } dV,\quad \nu \in \left \{{ {x,y,z} }\right \}. \end{equation*}
\begin{equation*} {\theta _{k}}(j) = \begin{cases} 1,& {{\mathbf {r}}_{j}} \in {\Omega _{k}},~ {{\mathbf {r}}_{j}} \in \partial {\Omega _{kk'}}\\ 0,&{ \mathrm {otherwise} }. \end{cases}\end{equation*}
\begin{equation*} {\bar L}_{k} ^\nu (i,j) = \frac {{1 \! + \! {{ \mathrm {sign} }}(\hat {\boldsymbol { \beta }} \! \cdot \! \hat {\mathbf {n}})}}{2}{\theta _{k}}(j)\oint _{\partial {\Omega _{kk'}}} \!\,\!\! {\hat n_\nu ({\mathbf r}) {\ell _{i}}({\mathbf {r}}){\ell _{j}}({\mathbf {r}})dS}\end{equation*}
\begin{equation*} {\bar L}_{k'} ^{\nu }(i,j) = \frac {{1 \! - \! {{ \mathrm {sign} }}(\hat {\boldsymbol { \beta }} \! \cdot \! \hat {\mathbf {n}})}}{2}{\theta _{k'}}(j)\oint _{\partial {\Omega _{kk'}}} \!\,\!\! {\hat n_\nu ({\mathbf r}) {\ell _{i}}({\mathbf {r}}){\ell _{j}}({\mathbf {r}})dS}\end{equation*}
\begin{align*} {\bar B}_{k}^{\varphi } (i)\,\,=&\int _{\Omega _{k}} {f({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dV} + \oint _{\partial {\Omega _{k}} \cap \partial {\Omega _{N}}} {f_{N}({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dS}\\ {\bar B}_{k}^{\mathbf E,\nu }(i)=&\oint _{\partial {\Omega _{k}} \cap \partial {\Omega _{D}}} {{\hat n_\nu ({\mathbf r})}{f_{D}}({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dS}, \quad \nu \in \left \{{ {x,y,z} }\right \}.\end{align*}
The DD equations in (15) (within the Gummel method) are also discretized using the LDG scheme as described next. Note that, here, we only discuss the discretization of the electron DD equation (\begin{align*} \nabla \cdot [d({\mathbf {r}}){\mathbf {q}}({\mathbf {r}})]{\mathrm{ + }}\nabla \cdot [{\mathbf {v}}({\mathbf {r}})n({\mathbf {r}})]=&R({\mathbf {r}}),\quad {\mathbf {r}} \in \Omega \tag{26}\\ {\mathbf {q}}({\mathbf {r}})=&\nabla n({\mathbf {r}}),\quad {\mathbf {r}} \in \Omega \tag{27}\\ n({\mathbf {r}})=&{f_{D}}({\mathbf {r}}),\quad {\mathbf {r}} \in \;\partial {\Omega _{D}}\tag{28}\\ {\hat {\mathbf n}} ({\mathbf {r}}) \cdot [d({\mathbf {r}}){\mathbf {q}}({\mathbf {r}}) + {\mathbf {v}}({\mathbf {r}})n({\mathbf {r}})]=&{f_{R}}({\mathbf {r}}),\quad {\mathbf {r}} \in \;\partial {\Omega _{R}}.\tag{29}\end{align*}
Following the same procedure used in the discretization of (14), we discretize the domain into non-overlapping tetrahedrons and test equations (26) and (27) using Lagrange polynomials on element \begin{align*}&\hspace {-2pc} \!-\!\int _{\Omega _{k}} \!\,\!\! {d({\mathbf {r}}){{\mathbf {q}}_{k}}({\mathbf {r}}) \! \cdot \! \nabla {\ell _{i}}({\mathbf {r}})dV} \!+\! \oint _{\partial {\Omega _{k}}} \!\,\!\!\,\!{ {\hat {\mathbf n}}({\mathbf r}) \cdot {{[d({\mathbf {r}}){{\mathbf {q}}_{k}}({\mathbf {r}})] }^{*}}{\ell _{i}}({\mathbf {r}})dS} \\&\hspace {-2pc} \!-\!\int _{\Omega _{k}} \!\,\!\!\,\!{{\mathbf {v}}({\mathbf {r}}){n_{k}}({\mathbf {r}}) \cdot \nabla {\ell _{i}}({\mathbf {r}})dV} \!+\! \oint _{\partial {\Omega _{k}}}\!\,\!\!\,\! { {\hat {\mathbf n}}({\mathbf r}) \cdot {{[{\mathbf {v}}({\mathbf {r}}){n_{k}}({\mathbf {r}})] }^{*}}{\ell _{i}}({\mathbf {r}})dS} \\=&\int _{\Omega _{k}} { { R({\mathbf {r}}) } {\ell _{i}}({\mathbf {r}})dV} \tag{30}\\&\hspace {-2pc}\int _{\Omega _{k}} {{q_{k}^{\nu }}({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dV} + \int _{\Omega _{k}} {n_{k}({\mathbf {r}})\frac {\partial }{\partial \nu }{\ell _{i}}({\mathbf {r}})dV} \\&-\, \oint _{\partial {\Omega _{k}}} {{\hat n_\nu {(\mathbf {r})} }{n_{k}^{*}}{ ({\mathbf {r}}) }{\ell _{i}}({\mathbf {r}})dS} = 0 \tag{31}\end{align*}
\begin{align*} {n^{*}}=&\left \{{ n }\right \} + 0.5\hat {\boldsymbol { \beta }} \cdot \hat {\mathbf { n} } \left [{ \!\,\!\left [{ n }\right] }\!\,\!\right]\\ {\left ({{d{\mathbf {q}}} }\right)^{*}}=&\left \{{ {d{\mathbf {q}}} }\right \} - 0.5\hat {\boldsymbol { \beta }} (\hat {\mathbf { n} } \cdot \left [{ \!\,\!\left [{ d{\mathbf {q}} }\right] }\!\,\!\right]).\end{align*}
\begin{equation*} {\left ({{{\mathbf {v}}n} }\right)^{*}} = \left \{{ {{\mathbf {v}}n} }\right \} + \alpha {\hat {\mathbf n}} ({n^{-} } - {n^{+} }),\; \alpha = \frac { \max (\lvert \hat {\mathbf { n} } \cdot {{\mathbf {v}}^ {-} } \rvert, \lvert \hat {\mathbf { n} } \cdot {{\mathbf {v}}^ {+} } \rvert) }{2}.\end{equation*}
Expanding \begin{align*} {n_{k}}({\mathbf {r}})\simeq&\sum \limits _{i = 1}^{N_{p}} {n({{\mathbf {r}}_{i}}){\ell _{i}}({\mathbf {r}})} = \sum \limits _{i = 1}^{N_{p}} {n_{k}^{i}{\ell _{i}}({\mathbf {r}})} \tag{32}\\ {q_{k}^{\nu }}({\mathbf {r}})\simeq&\mathop \sum \limits _{i = 1}^{N_{p}} {q_{v}}({{\mathbf {r}}_{i}}){\ell _{i}}({\mathbf {r}}) = \mathop \sum \limits _{i = 1}^{N_{p}} q_{k}^{\nu,i}{\ell _{i}}({\mathbf {r}}) \tag{33}\end{align*}
\begin{equation*} \left [{ {\begin{array}{cccccccccccccccccccc} {\bar {C}}&\quad {{\bar {D}}\bar d}\\ { - {\bar G}}&\quad {\bar M} \end{array}} }\right]\left [{ \begin{array}{l} {\bar N}\\ {\bar Q} \end{array} }\right] = \left [{ \begin{array}{l} {\bar B^{n}}\\ {\bar B^{\mathbf q}} \end{array} }\right]. \tag{34}\end{equation*}
\begin{equation*} ({\bar {C}} + {\bar {D}}\bar d{\bar M^{ - 1}}{\bar G}){\bar N} = {\bar B^{n}} - {\bar {D}}\bar d{\bar M^{ - 1}}{\bar B^{\mathbf q}} \tag{35}\end{equation*}
In (34) and (35), the mass matrix
The block sparse matrix \begin{equation*} {\bar {C}}_{k} ^\nu (i,j) = - \int _{\Omega _{k}} {v_\nu ({\mathbf {r}}) \frac {d{\ell _{i}}({\mathbf {r}})}{d\nu } {\ell _{j}}({\mathbf {r}})} dV,\quad \nu \in \{ x,y,z\}.\end{equation*}
\begin{equation*} {\bar {C}}_{kk}^{{ \mathrm {surf} }}(i,j) \!=\!{\theta _{k}}(j) \!\oint _{\partial {\Omega _{kk'}}}\! { \left({\frac {1}{2}\sum \nolimits _\nu {\hat n_\nu ({\mathbf r}) v_{\nu }({\mathbf r})} \! + \!\alpha ({\mathbf r})}\right) {\ell _{i}}({\mathbf {r}}){\ell _{j}}({\mathbf {r}})dS}\end{equation*}
\begin{equation*} {\bar {C}}_{kk'}^{{ \mathrm {surf} }}(i,j)\!=\! {\theta _{k'}}(j) \oint _{\partial {\Omega _{kk'}}} \!{ \left({\frac {1}{2}\sum \nolimits _\nu \! {\hat n_\nu ({\mathbf r}) v_{\nu }({\mathbf r})} \!- \!\alpha ({\mathbf r})}\right) {\ell _{i}}({\mathbf {r}}){\ell _{j}}({\mathbf {r}})dS}\end{equation*}
The right hand side terms in (34) are contributed from the force term and boundary conditions and are expressed as \begin{align*} {\bar B}_{k}^{n}(i)=&\int _{\Omega _{k}} {R({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dV}+ \oint _{\partial {\Omega _{k}} \cap \partial {\Omega _{R}}} {f_{R}({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dS} \\&+\,\oint _{\partial {\Omega _{k}} \cap \partial {\Omega _{D}}} {{\hat {\mathbf n}} {(\mathbf {r})} \cdot {\mathbf {v}}({\mathbf {r}}){f_{D}}({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dS}\\ {\bar B}_{k}^{\mathbf q,\nu }(i)=&\oint _{\partial {\Omega _{k}} \cap \partial {\Omega _{D}}} {{\hat n_\nu ({\mathbf r})}{f_{D}}({\mathbf {r}}){\ell _{i}}({\mathbf {r}})dS}, \quad \nu \in \{ x,y,z\}.\end{align*}
D. Comments
Several comments regarding the implementation and computational cost of the steady-state DG scheme and its comparison to the existing time-domain DG schemes are in order.
The mass matrix
is a block diagonal matrix with\bar M blocks that are denoted by3K and of dimensions\bar {M}_{kk} . Therefore, during the construction of the matrix systems (25) and (35),N_{p} \times N_{p} is directly assembled from\bar {M}^{-1} . We note that the computation of\bar {M}_{kk}^{-1} requires only one matrix inversion since\bar {M}_{kk}^{-1} is computed using a reference element [36]. The sparse block matrices\bar {M}_{kk} and\bar {G} have approximately\bar {C} and15K (non-zero) blocks of dimensions5K , respectively. Therefore, the memory required to store these matrices and the computational cost of sparse matrix multiplications required to construct the matrix systems (25) and (35) scale withN_{p} \times N_{p} . Nevertheless, the most computationally expensive step of the steady-state DG scheme is solution of these matrix systems.O(K N_{p}^{2}) The sparse linear systems (25) and (35) are solved in MATLAB. For small systems, one can use a direct solver. For large systems, when the number of unknowns is larger than 1 000 000 (when using double precision on a computer with 128GB RAM), it is preferable to use sparse iterative solvers to reduce the memory requirement. During our numerical experiments, we have found that the generalized minimum residual (GMRES) (the MATLAB built-in function “gmres”) outperforms other iterative solvers in execution time. Incomplete lower-upper (ILU) factorization is used to obtain a preconditioner for the iterative solver. The drop tolerance of the ILU is critical to keep the balance between the memory requirement and the convergence speed of the preconditioned iterative solution. A smaller drop tolerance usually results in a better preconditioner, however, it also increases the amount of fill-in, which increases the memory requirement.
We note here that one can reuse the preconditioner throughout the Gummel iterations. Because the matrix coefficients change gradually between successive iterations, we can store the preconditioner obtained in the first iteration (
) and reuse it as the preconditioner in the following few iterations. In practice, the preconditioner only needs to be updated when the convergence of the sparse iterative solver becomes slower than it is in the previous Gummel iteration. For the devices considered in this work, the number of Gummel iterations is typically less than 50 and we find the preconditioners of the initial matrices work well throughout these iterations.t=0 Semiconductor devices might have multiple steady states under certain biasing conditions [48]. A good approach to overcome this issue, is to gradually increase the bias voltage from the equilibrium-state and compute the steady-state solution at every bias voltage value. The steady-state solution at one voltage value is used as the initial guess while computing the solution at the next voltage value. Using this approach, we have simulated the same physical problem with different voltage steps. For the simulations with smaller voltage steps, the number of Gummel iterations at each voltage value has become smaller. This is expected since the initial guess becomes closer to the actual solution. With this approach, one can expect that the numerical solution is the steady-state closest to the equilibrium-state. If one needs to solve for other states (assuming multiple of them exist), other techniques might be required [49].
One can use a time-domain DG scheme for steady-state analysis of semiconductor devices [40]–[44]. However, this approach is rarely used for steady-state simulations of practical devices (see Section 3.1.7 of [46]) simply because the number of time steps, which depends on the time-step size required to maintain the numerical stability and the time duration required for the physical system to reach the steady state, is often very large.
Existing time-domain DG schemes use “explicit” updates between the (explicit and/or implicit) solutions of matrix systems arising from the DG-based discretization at every time step during the execution of the time-evolution (which is done using a time integration scheme) [40]–[44]. This approach does not call for a nonlinear solver, but the time-step size is subject to stability conditions required by the spatial discretization of the DD equations and the explicit updates of the nonlinear coupling between solutions of the matrix equations (Section 6.4 of [1]).
We should also note here that, in theory, a fully implicit time-domain DG method that uses a nonlinear scheme (such as Newton method) to solve the globally and (nonlinearly) coupled system of equations could be used. Even though the time-step size restriction would be relaxed for such a method, its application to steady-state analysis would be computationally very expensive, simply because it would call for solution of a global nonlinear system at every time step [1], [22]. To the best of our knowledge, such a time-domain DG method has yet to be reported (even for transient analysis of semiconductor devices).
In our tests we have done for a one dimensional (1D) system with physical parameters same as those in the metal-oxide semiconductor field-effect transistor (MOSFET) example in Section III-A, and using the equilibrium-state solution as the initial solution at the start of time marching, we have observed that the physical time required to reach the steady state (with a tolerance of 10−6) is around 0.5 ps. For an explicit solver, the above physical parameters require the mesh size to be around
Numerical Examples
In this section, we demonstrate the accuracy and the applicability of the proposed DG-based framework by numerical experiments as detailed in the next two sections. We have simulated two practical devices and compared the results to those obtained by the COMSOL semiconductor module [30].
A. Metal-Oxide Field Effect Transistor
First, we simulate a MOSFET that is illustrated in Fig. 2. The background is uniformly-doped p-type silicon and source and drain regions are uniformly-doped n-type silicon. The doping concentrations in p- and n-type regions are
(a) The drain current
Special care needs to be taken to enforce the boundary conditions [58]. The DD equations are only solved in the semiconductor regions. Dirichlet boundary conditions are imposed on semiconductor-contact interfaces, where the electron and hole densities are determined from the local charge neutrality as
The semiconductor regions are discretized using a total of 122 350 elements and the order of basis functions in (32) and (33) is 2. This makes the dimension of the system in (35) 1 223 500. The regions where the Poisson equation is solved are discretized using a total of 170 902 elements and the order of basis functions in (23) and (23) is 2, making the dimension of the system in (25) 1 709 020. The systems (25) and (35) are solved iteratively with a residual tolerance of 10−11. The drop tolerance of the ILU preconditioner is 10−5. The convergence tolerance of the Gummel method is 10−7.
Fig. 3 compares
Comparing the
Figs. 4(a) and (b) and Figs. 4(c) and (d), respectively, compare the electron density and electric field intensity distributions computed by the DG and GLS-FEM solvers on the plane
Electron density distribution computed on the plane
The SG-FVM solver requires the mesh to be admissible, which is often difficult to satisfy for 3D devices [21], [22], [27]. Implementation of SG-FVM in COMSOL uses a prism mesh generated by sweeping triangles defined on surfaces (for 3D devices) [30]. However, this leads to a considerable increase in the number of elements compared to the number of tetrahedral elements used by the DG and the SG-FEM solvers. In this example, the number of elements used by the SG-FVM is 545 342 (
B. Plasmonic-Enhanced Photoconductive Antenna
For the second example, we consider a plasmonic-enhanced photoconductive antenna (PCA). The operation of a PCA relies on photoelectric effect: it “absorbs” optical wave energy and generate terahertz (THz) short-pulse currents. Plasmonic nanostructures dramatically enhances the optical-THz frequency conversion efficiency of the PCAs. The steady-state response of the PCAs, especially the static electric field and the mobility distribution in the device region, strongly influences their performance. Here, we use the proposed DG solver to simulate the device region of a PCA shown in Fig. 6, and compare the results to those obtained by the SG-FVM solver in COMSOL semiconductor module.
Fig. 6 illustrates the device structure that is optimized to enhance the plasmonic fields near the operating optical frequency [60]. The semiconductor layer is LT-GaAs that is uniformly doped with a concentration of
The DD equations are solved in the semiconductor layer with Dirichlet boundary conditions on the semiconductor-contact interfaces and homogeneous Robin boundary condition on the semiconductor-insulator interfaces. Poisson equation is solved in the whole domain, which includes an extended air background. Dirichlet boundary conditions that enforce impressed external potentials are imposed on metal contacts. Floating potential condition is enforced on metals of the nanograting [62]. Homogeneous Neumann boundary condition is used on exterior boundaries.
The semiconductor region is discretized using a total of 173 711 elements and the order of basis functions in (32) and (33) is 2. This makes the dimension of the system in (35) 1 737 110. The regions where the Poisson equation is solved are discretized using a total of 228 921 elements and the order of basis functions in (23) and (23) is 2, making the dimension of the system in (25) 2 289 210. The systems (25) and (35) are solved iteratively with a residual tolerance of 10−11. The drop tolerance of the ILU preconditioner is 10−5. The convergence tolerance of the Gummel method is 10−7.
Fig. 7(a) shows the electron density distribution computed by the proposed DG solver. Fig. 7(b) plots the electron density computed by the DG and the SG-FVM solvers along lines
(a) Electron density distribution computed by the DG solver on the plane
Conclusion
In this paper, we report on a DG-based numerical framework for simulating steady-state response of geometrically intricate semiconductor devices with realistic models of mobility and recombination rate. The Gummel method is used to “decouple” and “linearize” the system of the Poisson equation (in electric potential) and the DD equations (in electron and hole charge densities). The resulting linear equations are discretized using the LDG scheme. The accuracy of this framework is validated by comparing simulation results to those obtained by the state-of-the-art FEM and FVM solvers implemented within the COMSOL semiconductor module. Just like FEM, the proposed DG solver is high-order accurate but it does not require the stabilization techniques (such as GLS and SUPG), which are used by FEM. The main drawback of the proposed method is that it requires a larger number of unknowns than FEM for the same geometry mesh. But the difference in the number of unknowns gets smaller with the increasing order of basis function expansion. Additionally, DG can account for non-conformal meshes and benefit from local h-/p- refinement strategies. Indeed, we are currently working on a more “flexible” version of the current DG scheme, which can account for multi-scale geometric features more efficiently by making use of these advantages.
ACKNOWLEDGMENT
The authors would like to thank the King Abdullah University of Science and Technology (KAUST) Supercomputing Laboratory (KSL) for providing the required computational resources.