Loading [MathJax]/extensions/TeX/boldsymbol.js
Steady-State Simulation of Semiconductor Devices Using Discontinuous Galerkin Methods | IEEE Journals & Magazine | IEEE Xplore

Steady-State Simulation of Semiconductor Devices Using Discontinuous Galerkin Methods


A discontinuous Galerkin (DG) method-based framework for modeling steady-state response of three-dimensional semiconductor devices permits highly flexible discretization ...

Abstract:

Design of modern nanostructured semiconductor devices often calls for simulation tools capable of modeling arbitrarily-shaped multiscale geometries. In this work, to this...Show More

Abstract:

Design of modern nanostructured semiconductor devices often calls for simulation tools capable of modeling arbitrarily-shaped multiscale geometries. In this work, to this end, a discontinuous Galerkin (DG) method-based framework is developed to simulate steady-state response of semiconductor devices. The proposed framework solves a system of Poisson equation (in electric potential) and stationary drift-diffusion equations (in charge densities), which are nonlinearly coupled via the drift current and the charge distribution. This system is “decoupled” and “linearized” using the Gummel method and the resulting equations are discretized using a local DG scheme. The proposed framework is used to simulate geometrically intricate semiconductor devices with realistic models of mobility and recombination rate. Its accuracy is demonstrated by comparing the results to those obtained by the finite volume and finite element methods implemented in a commercial software package.
A discontinuous Galerkin (DG) method-based framework for modeling steady-state response of three-dimensional semiconductor devices permits highly flexible discretization ...
Published in: IEEE Access ( Volume: 8)
Page(s): 16203 - 16215
Date of Publication: 17 January 2020
Electronic ISSN: 2169-3536

Funding Agency:


CCBY - IEEE is not the copyright holder of this material. Please follow the instructions via https://creativecommons.org/licenses/by/4.0/ to obtain full-text articles and stipulations in the API documentation.
SECTION I.

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 1 ~\mu {\mathrm{ m}} ) and with more complex geometries are being designed and implemented for various applications. Examples of these nanostructured devices range from photodiodes and phototransistors to solar cells, light emitting diodes, and photoconductive antennas [10]. Electric field-charge carrier interactions on these devices can still be accurately accounted for using semi-classical models, however, their numerical simulation in TCAD raises challenges due to the presence of multi-scale and intricate geometric features.

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 p , DG requires a larger number of unknowns than FEM. However, the difference decreases as p gets larger, and for many problems, DG benefits from h - and/or p -refinement schemes [36], [38] and easily compensates for the small increase in the computational cost.

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.

SECTION II.

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*} View SourceRight-click on figure for MathML and additional features. where {\mathbf {r}} represents the location vector, {n_{e}}({\mathbf {r}}) and {n_{h}}({\mathbf {r}}) are the electron and hole densities, \varphi ({\mathbf {r}}) is the electric potential, {{\mathbf {J}}_{e}}({\mathbf {r}}) and {{\mathbf {J}}_{h}}({\mathbf {r}}) are the electron and hole current densities, \varepsilon ({\mathbf {r}}) is the dielectric permittivity, q is the electron charge, and R({n_{e}},{n_{h}}) is the net recombination rate. In (15) and other equations in the rest of the text, s \in \{e,h\} , and the upper and lower signs should be selected for s = e and s = h , respectively. The current densities {{\mathbf {J}}_{s}}({\mathbf {r}}) are given by \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*} View SourceRight-click on figure for MathML and additional features. where {\mu _{e}}({\mathbf {E}}) and {\mu _{h}}({\mathbf {E}}) are the (field-dependent) electron and hole mobilities, {V_{T}} = {k_{B}}T/q is the thermal voltage, {k_{B}} is the Boltzmann constant, T is the absolute temperature, and \begin{equation*} {\mathbf {E}}({\mathbf {r}}) = - \nabla \varphi ({\mathbf {r}}) \tag{4}\end{equation*} View SourceRight-click on figure for MathML and additional features. is the (static) electric field intensity. Inserting (3) into (2) yields \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*} View SourceRight-click on figure for MathML and additional features. Here, R({n_{e}},{n_{h}}) describes the recombination/generation of carriers. In this work, we only consider the two most common recombination processes, namely the trap assisted recombination described by the Shockley-Read-Hall (SRH) model [2] as \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*} View SourceRight-click on figure for MathML and additional features. and the three-particle band-to-band transition described by the Auger model [2] as \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*} View SourceRight-click on figure for MathML and additional features. Here, {n_{i}} is the intrinsic carrier concentration, {\tau _{e}} and {\tau _{h}} are the carrier lifetimes, {n_{e1}} and {n_{h1}} are SRH model parameters related to the trap energy level, and C_{e}^{A} and C_{h}^{A} are the Auger coefficients. The net recombination rate R({n_{e}},{n_{h}}) is given by [2] \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*} View SourceRight-click on figure for MathML and additional features. We should note here that, without loss of generality in the formulation of the method we propose in this work, R({n_{e}},{n_{h}}) can include other physical models describing different recombination and generation mechanisms (see [1], chapter 4.2). A positive value means recombination is dominant while a negative value means generation is dominant.

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 {\mu _{e}}({\mathbf {E}}) and {\mu _{h}}({\mathbf {E}}) as \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*} View SourceRight-click on figure for MathML and additional features. where {E_\parallel }({\mathbf {r}}) is amplitude of the electric field intensity parallel to the current flow, \mu _{e}^{0} and \mu _{h}^{0} are the low-field electron and hole mobilities, respectively, and V_{s}^{{ \mathrm {sat} }} , {\beta _{e}} and {\beta _{h}} are fitting parameters obtained from experimental data.

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 {{\mathbf {J}}_{e}}({\mathbf {r}}) and {{\mathbf {J}}_{h}}({\mathbf {r}}) [first term in (3)]. The carrier movements change {n_{e}}({\mathbf {r}}) and {n_{h}}({\mathbf {r}}) , which in turn affect {\mathbf {E}}({\mathbf {r}}) through the Poisson equation [see (1)]. Furthermore, R({n_{e}},{n_{h}}) [in (6)] and {\mu _{e}}({\mathbf {E}}) and {\mu _{h}}({\mathbf {E}}) [in (7)] are nonlinear functions of {n_{e}}({\mathbf {r}}) and {n_{h}}({\mathbf {r}}) , and {\mathbf {E}}({\mathbf {r}}) , respectively. This system can be solved using either a decoupled approach such as the Gummel method or a fully-coupled scheme such as the direct application of the Newton method [2], [22]. The Gummel method’s memory requirement and computational cost per iteration are less than those of the Newton method. In addition, accuracy and stability of the solution obtained by the Gummel method are less sensitive to the initial guess [2], [22]. On the other hand, the Gummel method converges slower, i.e., takes a higher number of iterations to converge to the solution [2], [22]. Since the simulations of the nanostructured devices considered in this work are memory-bounded, we prefer to use the Gummel method.

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*} View SourceRight-click on figure for MathML and additional features. Solving (8) for {n_{e}}({\mathbf {r}}) and {n_{h}}({\mathbf {r}}) , respectively, and inserting the resulting expressions into (1) yield \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*} View SourceRight-click on figure for MathML and additional features. Equation (9) is termed as the nonlinear Poisson (NLP) equation simply because it is nonlinear in \varphi ({\mathbf {r}}) . Using {\varphi _{e}}({\mathbf {r}}) and {\varphi _{h}}({\mathbf {r}}) , one can easily write the Fréchet derivative of the NLP equation and solve the nonlinear problem with a fixed-point iteration technique such as the Newton method [1], [2], [22] (see below). The Gummel method decouples the NLP equation and the DD equations (2); the nonlinearity is “maintained” solely in the NLP equation and the DD equations are treated as linear systems [1], [2], [22] as shown by the description of the Gummel method below. To solve the NLP equation in (9), we write it as a root-finding problem \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*} View SourceRight-click on figure for MathML and additional features. The Fréchet derivative of F(\varphi ({\mathbf {r}}),{\varphi _{e}}({\mathbf {r}}),{\varphi _{h}}({\mathbf {r}})) with respect to \varphi ({\mathbf {r}}) is \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*} View SourceRight-click on figure for MathML and additional features. The root-finding problem (10) is solved iteratively as \begin{equation*} \varphi {^{t+1}({\mathbf {r}})} = \varphi {^{t}({\mathbf {r}})} + {\delta _\varphi ^{t+1}}{({\mathbf {r}})} \tag{12}\end{equation*} View SourceRight-click on figure for MathML and additional features. where subscript “t ” refers to the variables at iteration t . In (12), {\delta _\varphi ^{t+1}}{({\mathbf {r}})} is obtained by solving \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*} View SourceRight-click on figure for MathML and additional features. where \varphi ^{t} {({\mathbf {r}})} is the solution at iteration t (previous iteration), {\varphi _{e} ^{t}}{({\mathbf {r}})} and {\varphi _{h} ^{t}}{({\mathbf {r}})} are computed using using n_{e}^{t}({\mathbf {r}}) and n_{h}^{t}({\mathbf {r}}) in (8). At iteration t=0 , initial guesses \varphi ^{0} {({\mathbf {r}})} , n_{e}^{0}({\mathbf {r}}) and n_{h}^{0}({\mathbf {r}}) are used to start the iterations. In this work, the initial guesses are solved from the equilibrium-state (without bias voltage) [2]. Note that, in practice, one can directly compute \varphi ^{t+1} {({\mathbf {r}})} without using the variable {\delta _\varphi ^{t+1}}{({\mathbf {r}})} . This is done by adding F'(\varphi ^{t},{\varphi _{e} ^{t}},{\varphi _{h} ^{t}};\varphi ^{t}) to both sides of (13), and using (4) and the fact that \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*} View SourceRight-click on figure for MathML and additional features. which result in the coupled system of equations in unknowns {\varphi ^{t+1}}({\mathbf {r}}) and {{\mathbf {E}}^{t+1}}({\mathbf {r}}) \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*} View SourceRight-click on figure for MathML and additional features. Here, \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*} View SourceRight-click on figure for MathML and additional features. and \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*} View SourceRight-click on figure for MathML and additional features. are known coefficients obtained from the previous iteration.

FIGURE 1. - Gummel method.
FIGURE 1.

Gummel method.

Unknowns \varphi ^{t+1} {({\mathbf {r}})} and E^{t+1}{({\mathbf {r}})} are obtained by solving (14). Then, {\mu _{e}}({{\mathbf {E}}^{t+1}}) and {\mu _{h}}({{\mathbf {E}}^{t+1}}) are computed using E^{t+1}{({\mathbf {r}})} in (7). Finally, n_{e}^{t+1}({\mathbf {r}}) and n_{h}^{t+1}({\mathbf {r}}) can be obtained by solving \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*} View SourceRight-click on figure for MathML and additional features. where R(n_{e}^{t},n_{h}^{t}) on the right hand side is computed using n_{e}^{t}({\mathbf {r}}) and n_{h}^{t}({\mathbf {r}}) (from previous iteration) in (6). Note that a “lagging” technique may also be applied to R(n_{e}^{t},n_{h}^{t}) to take advantage of the solutions at the current iteration. This technique expresses R({n_{e}},{n_{h}}) as a summation of functions of n_{e}^{t}({\mathbf {r}}) and n_{h}^{t}({\mathbf {r}}) and n_{e}^{t+1}({\mathbf {r}}) and n_{h}^{t+1}({\mathbf {r}}) , and moves the functions of n_{e}^{t+1}({\mathbf {r}}) and n_{h}^{t+1}({\mathbf {r}}) to the left hand side of (15). More details about this technique can be found in [57].

At this stage of the iteration, {\varphi ^{t+1}}({\mathbf {r}}) , n_{e}^{t+1}({\mathbf {r}}) and n_{h}^{t+1}({\mathbf {r}}) are known; one can use these to compute {\varphi _{e} ^{t+1}}{({\mathbf {r}})} and {\varphi _{h} ^{t+1}}{({\mathbf {r}})} and move to the next iteration. Convergence of the iterations can be checked by either the residuals of (10) and (15) or by the difference between the solutions of two successive iterations.

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) (s=e,h) . This can only be done numerically for arbitrarily shaped devices. To this end, we use the LDG method [51], [52] to discretize and numerically solve these equations. We start with the description of the discretization of (14). First, we re-write (14) in the form of the following boundary value problem \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*} View SourceRight-click on figure for MathML and additional features. In (16)–(19), \varphi ({\mathbf {r}}) and {\mathbf {E}}({\mathbf {r}}) are the unknowns to be solved for and \Omega is the solution domain. Note that in LDG, {\mathbf {E}}({\mathbf {r}}) is introduced as an auxiliary variable to reduce the order of the spatial derivative in (16). Here it is also a “natural” unknown to be solved for within the Gummel method. Dirichlet and Neumann boundary conditions are enforced on surfaces \partial {\Omega _{D}} and \partial {\Omega _{N}} , and {f_{D}}({\mathbf {r}}) and {f_{N}}({\mathbf {r}}) are the coefficients associated with these boundary conditions, respectively. In (19), {\hat {\mathbf n}} ({\mathbf r}) denotes the outward normal vector \partial {\Omega _{N}} . For the problems considered in this work, \partial {\Omega _{D}} represents the metal contact surfaces with {f_{D}}({\mathbf {r}}) = {V_{{ \mathrm {contact} }}}({\mathbf {r}}) , where {V_{{ \mathrm {contact} }}}({\mathbf {r}}) is the potential impressed on the contacts. The homogeneous Neumann boundary condition, i.e., {f_{N}}({\mathbf {r}}) = 0 , is used to truncate the simulation domain [58].

To facilitate the numerical solution of the boundary value problem described by (16)–(19) (within the Gummel method), \Omega is discretized into k non-overlapping tetrahedrons. The (volumetric) support of each of these elements is represented by {\Omega _{k}} , k = 1, \ldots,K . Furthermore, let \partial {\Omega _{k}} denote the surface of {\Omega _{k}} and {\hat {\mathbf n}}({\mathbf {r}}) denote the outward unit vector normal to \partial {\Omega _{k}} . Testing equations (16) and (17) with the Lagrange polynomials {\ell _{i}}({\mathbf {r}}) , i = 1, \ldots,{N_{p}} on element k [36] and applying the divergence theorem to the resulting equation yield the following weak form \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*} View SourceRight-click on figure for MathML and additional features. Here, {N_{p}}=(p+1)(p+2)(p+3)/6 is the number of interpolating nodes, p is the order of the Lagrange polynomials and subscript \nu \in \{ x,y,z\} is used for identifying the components of the vectors in the Cartesian coordinate system. We note here {\varphi _{k}}({\mathbf {r}}) and {{\mathbf {E}}_{k}}({\mathbf {r}}) denote the local solutions on element k and the global solutions on \Omega are the sum of these local solutions.

{\varphi ^{*}} and {(\varepsilon {\mathbf {E}})^{*}} are numerical fluxes “connecting” element k to its neighboring elements. Here, the variables are defined on the interface between elements and the dependency on {\mathbf {r}} is dropped for simplicity of notation/presentation. In LDG, the alternate flux, which is defined as [51] \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*} View SourceRight-click on figure for MathML and additional features. is used in the interior of \Omega . Here, averaging operators are defined as \left \{{ a }\right \} = 0.5({a^ {+} } + {a^ {-} }) and \left \{{ {\mathbf {a}} }\right \} = 0.5({{\mathbf {a}}^ {+} } + {{\mathbf {a}}^ {-} }) and “jumps” are defined as \left [{ \!\,\!\left [{ a }\right] }\!\,\!\right] = {a^ {-} } - {a^ {+} } and \left [{ \!\,\!\left [{ {\mathbf {a}} }\right] }\!\,\!\right] = {{\mathbf {a}}^ {-} } - {{\mathbf {a}}^ {+} } , where superscripts “–” and “+” refer to variables defined in element k and in its neighboring element, respectively. The vector \hat {\boldsymbol { \beta }} determines the upwinding direction of \varphi and (\varepsilon {\mathbf {E}}) . In LDG, it is essential to choose opposite directions for \varphi and (\varepsilon {\mathbf {E}}) , while the precise direction of each variable is not important [36], [38], [51]. In this work, we choose \hat {\boldsymbol { \beta } } = {\hat {\mathbf n}} on each element surface. On boundaries of \Omega , the numerical fluxes are choosen as {\varphi ^{*}} = {f_{D}} and {\left ({{\varepsilon {\mathbf {E}}} }\right)^{*}} = {(\varepsilon {\mathbf {E}})^ {-} } on \partial {\Omega _{D}} and {\varphi ^{*}} = {\varphi ^{-}} and {\left ({{\varepsilon {\mathbf {E}}} }\right)^{*}} = {f_{N}} on \partial {\Omega _{N}} , respectively [52].

We expand {\varphi _{k}}({\mathbf {r}}) and {E_{k}^{\nu }}({\mathbf {r}}) with the same set of Lagrange polynomials {\ell _{i}}({\mathbf {r}}) \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*} View SourceRight-click on figure for MathML and additional features. where {{\mathbf {r}}_{i}} , i = 1, \ldots, N_{p} , denote the location of interpolating nodes, and \varphi _{k}^{i} and E_{k}^{\nu,i} , \nu \in \{ x,y,z\} , k = 1, \ldots, K , are the unknown coefficients to be solved for.

Substituting (23) and (23) into (20) and (21) for k = 1, \ldots, K , we obtain a global matrix system \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*} View SourceRight-click on figure for MathML and additional features. Here, the global unknown vectors \bar \Phi = {[{\bar \Phi _{1}}, \ldots, {\bar \Phi _{K}}]^{T}} and \bar E = {[{\bar E_{1}^{x}},{\bar E_{1}^{y}}, {\bar E_{1}^{z}},\ldots,{\bar E_{K}^{x}}, {\bar E_{K}^{y}}, {\bar E_{K}^{z}}]^{T}} are assembled from elemental vectors {\bar \Phi _{k}} = [\varphi _{k}^{1}, \ldots, \varphi _{k}^{N_{p}}] and {\bar E_{k}^{\nu }} = [E_{k}^{\nu,1},\ldots,E_{k}^{\nu,N_{p}}] , \nu \in \left \{{ {x,y,z} }\right \} . The dimension of (24) can be further reduced by substituting {\bar E} = {\bar M^{-1}}({\bar B}^{\mathbf E} - \bar {G} \bar \Phi) (from the second row) into the first row, which results in \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*} View SourceRight-click on figure for MathML and additional features. where ({{\bar {M}}^{g}} - {\bar {D}} \bar \varepsilon {\bar M^{-1}}{\bar {G}}) is the Schur complement of the matrix in (24). In (24) and (25), {\bar M^{g}} and {\bar M} are mass matrices. {{\bar {M}}^{g}} is a K \times K block diagonal matrix, where each {N_{p}} \times {N_{p}} block is defined as \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*} View SourceRight-click on figure for MathML and additional features. {\bar M} is also a K \times K block diagonal matrix, where each block is a 3 \times 3 block diagonal matrix with {N_{p}} \times {N_{p}} identical blocks defined as \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*} View SourceRight-click on figure for MathML and additional features. \bar \varepsilon is a diagonal matrix with entries (\bar \varepsilon _{1}, \ldots, \bar \varepsilon _{K}) , where \bar \varepsilon _{k} = (\bar \varepsilon _{k}^{x}, \bar \varepsilon _{k}^{y}, \bar \varepsilon _{k}^{z}) , {\bar \varepsilon _{k}^{\nu }}(i) = {\varepsilon _{k}}({{\mathbf {r}}_{i}}) , {k=1, \ldots, K} , \nu \in \left \{{ {x,y,z} }\right \} . We note that \varepsilon ({\mathbf {r}}) is assumed isotropic and constant in each element.

Matrices {\bar {G}} and {\bar {D}} represent the gradient and divergence operators, respectively. For LDG, one can show that {\bar D} = - {\bar G^{T}} [52]. The gradient matrix {\bar G} is a K \times K block sparse matrix, where each block is of size 3{N_{p}} \times {N_{p}} and has contribution from the volume integral term and the surface integral term in (21). The volume integral term only contributes to diagonal blocks as {\bar G}_{kk}^{{ \mathrm {vol} }} = {\left [{ {\bar S_{k}^{x}\;{\bar S}_{k}^{y}\;{\bar S}_{k}^{z}} }\right]^{T}} , where \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*} View SourceRight-click on figure for MathML and additional features. The surface integral term contributes to both the diagonal blocks {\bar G_{kk}} and off-diagonal blocks {\bar G_{kk'}} , where k' corresponds to the index of the elements connected to element k . Let \partial {\Omega _{kk'}} be the interface connecting elements k and k' , and let {\theta _{k}}(j) select the interface nodes from element k , \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*} View SourceRight-click on figure for MathML and additional features. Then, the contributions from the surface integral term to the diagonal block and the off-diagonal blocks are {\bar G}_{kk}^{{ \mathrm {surf} }} = {\left [{ {\bar L_{k}^{x}\;{\bar L}_{k}^{y}\;{\bar L}_{k}^{z}} }\right]^{T}}\; and {\bar G}_{kk'}^{{ \mathrm {surf} }} = {\left [{ {\bar L_{k'}^{x}\;{\bar L}_{k'}^{y}\;{\bar L}_{k'}^{z}} }\right]^{T}}\; , where \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*} View SourceRight-click on figure for MathML and additional features. and \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*} View SourceRight-click on figure for MathML and additional features. respectively, \nu \in \left \{{ {x,y,z} }\right \} . The right hand side terms in (24) and (25) are contributed from the force term and boundary conditions and are expressed as \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*} View SourceRight-click on figure for MathML and additional features.

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 (s = e ) and that of the hole DD equation (s = h ) only differs by the sign in front of the drift term and the values of physical parameters. To simplify the notation/presentation, we drop the subscript denoting the species (electron and hole). The electron DD equation in (15) is expressed as the following boundary value problem \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*} View SourceRight-click on figure for MathML and additional features. Here n({\mathbf {r}}) and {\mathbf {q}}({\mathbf {r}}) are the unknowns to be solved for and \Omega is the solution domain. The auxiliary variable {\mathbf {q}}({\mathbf {r}}) is introduced to reduce the order of the spatial derivative. d({\mathbf {r}}) = V_{T} \mu ({\mathbf {E}}) and {\mathbf {v}}({\mathbf {r}}) = \mu ({\mathbf {E}}){\mathbf {E}}({\mathbf {r}}) become known coefficients during the solution of (15) within the Gummel method. Dirichlet and Robin boundary conditions are enforced on surfaces \partial {\Omega _{D}} and \partial {\Omega _{R}} , and {f_{D}}({\mathbf {r}}) and {f_{R}}({\mathbf {r}}) are the coefficients associated with these boundary conditions, respectively. {\hat {\mathbf n}}({\mathbf {r}}) denotes the outward normal vector of the surface. For the problems considered in this work, \partial {\Omega _{D}} represents electrode/semiconductor interfaces and, based on local charge neutrality [58], {f_{D}}({\mathbf {r}}) = (C + \sqrt {C^{2} + 4{n_{i}}^{2}})/2 and {f_{D}}({\mathbf {r}}) = n_{i}^{2}/n_{e}^{s} for electron and hole DD equations, respectively. The homogeneous Robin boundary condition, i.e., {f_{R}}({\mathbf {r}}) = 0 , is used on semiconductor/insulator interfaces, indicating no carrier spills out those interfaces [58].

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 k . Applying the divergence theorem yield the following weak form:\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*} View SourceRight-click on figure for MathML and additional features. where n^{*} , (d{\mathbf {q}})^{*} , and ({\mathbf {v}} n)^{*} are numerical fluxes “connecting” element k to its neighboring elements. Here, for the simplicity of notation, we have dropped the explicit dependency on \mathbf {r} on element surfaces. For the diffusion term, the LDG alternate flux is used for the primary variable {n^{*}} and the auxiliary variable {(d{\mathbf {q}})^{*}} [51] \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*} View SourceRight-click on figure for MathML and additional features. Here, averages and “jumps”, and the vector coefficient \hat {\boldsymbol { \beta } } are same as those defined before. For the drift term, the local Lax-Friedrichs flux is used to mimic the path of information propagation [36] \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*} View SourceRight-click on figure for MathML and additional features. On boundaries, the numerical fluxes are choosen as {n^{*}} = {f_{D}} , {\left ({{d{\mathbf {q}}} }\right)^{*}} = {(d{\mathbf {q}})^ {-} } and {({\mathbf {v}}n)^{*}} = {\mathbf {v^{-}}}{f_{D}} on \partial {\Omega _{D}} and {n^{*}} = {n^ {-} } and {(d{\mathbf {q}})^{*}} + {\left ({{ \mathbf {v} n } }\right)^{*}} = {f_{R}} on \partial {\Omega _{R}} , respectively. We note {\left ({{d{\mathbf {q}}} }\right)^{*}} and {({\mathbf {v}}n)^{*}} are not assigned independently on \partial {\Omega _{R}} .

Expanding {n_{k}}({\mathbf {r}}) and {q_{k}^{\nu }}({\mathbf {r}}) with Lagrange polynomials {\ell _{i}}({\mathbf {r}}) \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*} View SourceRight-click on figure for MathML and additional features. where {\mathbf {r}}_{i} , i=1, \ldots, N_{p} , denote the location of interpolating nodes, n_{k}^{i} and q_{k}^{\nu,i} , \nu \in \{ x,y,z\} , k = 1, \ldots, K are the unknown coefficients to be solved for. Substituting (32) and (33) into (30) and (31), we obtain a global matrix system \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*} View SourceRight-click on figure for MathML and additional features. Here, the global unknown vectors {\bar N} = {[{\bar N_{1}},\ldots,{\bar N_{K}}]^{T}} and {\bar Q} = {[{{\bar {Q}}_{1}^{x}},{{\bar {Q}}_{1}^{y}},{{\bar {Q}}_{1}^{z}},\ldots,{{\bar {Q}}_{K}^{x}},{{\bar {Q}}_{K}^{y}},{{\bar {Q}}_{K}^{z}}]^{T}} are assembled from elemental vectors {\bar N_{k}} = [n_{k}^{1},\ldots,n_{k}^{N_{p}}] and {{\bar {Q}}_{k}^{\nu }} = [q_{k}^{\nu,1},\ldots,q_{k}^{\nu,N_{p}}], \nu \in \{x,y,z\} . Substituting {\bar Q} = {\bar M^{ - 1}}({\bar B^{\mathbf q}} + {\bar G \bar N}) into (34) yields \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*} View SourceRight-click on figure for MathML and additional features. where ({\bar {C}} + {\bar {D}}\bar d{\bar M^{ - 1}}{\bar G}) is the Schur complement of the matrix in (34).

In (34) and (35), the mass matrix {\bar M} , the gradient matrix {\bar G} and the divergence matrix {\bar {D}} are same as those defined before. \bar d is a diagonal matrix with entries (\bar d_{1}, \ldots, \bar d_{K}) , where \bar d _{k} = (\bar d _{k}^{x}, \bar d _{k}^{y}, \bar d _{k}^{z}) , {\bar d _{k}^{\nu }}(i) = {d _{k}}({{\mathbf {r}}_{i}}) , {k=1, \ldots, K} , \nu \in \left \{{ {x,y,z} }\right \} .

The block sparse matrix {\bar {C}} has contribution from the third term (the volume integral) and the fourth term (the surface integral) in (30). Each block is of size {N_{p}} \times {N_{p}} . The volume integral term only contributes to diagonal blocks as {\bar {C}}_{kk}^{{ \mathrm {vol} }} = \sum \nolimits _\nu {{\bar {C}}_{k} ^\nu } , where \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*} View SourceRight-click on figure for MathML and additional features. The surface integral term contributes to both the diagonal and off-diagonal blocks as \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*} View SourceRight-click on figure for MathML and additional features. and \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*} View SourceRight-click on figure for MathML and additional features. respectively, where \nu \in \{ x,y,z\} , and k' , \partial {\Omega _{kk'}} , and {\theta _{k}}(j) are defined the same as before.

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*} View SourceRight-click on figure for MathML and additional features.

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.

  1. The mass matrix \bar M is a block diagonal matrix with 3K blocks that are denoted by \bar {M}_{kk} and of dimensions N_{p} \times N_{p} . Therefore, during the construction of the matrix systems (25) and (35), \bar {M}^{-1} is directly assembled from \bar {M}_{kk}^{-1} . We note that the computation of \bar {M}_{kk}^{-1} requires only one matrix inversion since \bar {M}_{kk} is computed using a reference element [36]. The sparse block matrices \bar {G} and \bar {C} have approximately 15K and 5K (non-zero) blocks of dimensions N_{p} \times N_{p} , 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 with O(K N_{p}^{2}) . Nevertheless, the most computationally expensive step of the steady-state DG scheme is solution of these matrix systems.

  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 (t=0 ) 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.

  3. 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].

  4. 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 0.01 ~\mu \text{m} , which in return requires the time-step size to be around 5−6ps. This results in a total number of time steps around 105. Similar numbers have been reported in [42].

SECTION III.

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 {10^{17}}{{ \mathrm {cm} }^{-3}} and {10^{18}}{{ \mathrm {cm} }^{-3}} , respectively. The source and drain are ideal Ohmic contacts attached to n-type regions. The gate contact is separated from the semiconductor regions by a silicon-oxide insulator layer. The dimensions of the device and the different material regions are shown in Fig. 3. Material parameters at 300 K are taken from [59].

FIGURE 2. - Schematic diagram of the MOSFET device.
FIGURE 2.

Schematic diagram of the MOSFET device.

FIGURE 3. - (a) The drain current 
$I_{d}$
 versus gate voltage 
$V_{g}$
 for drain voltage 
$V_{d}=0.1$
 V. (b) The drain current 
$I_{d}$
 versus drain voltage 
$V_{d}$
 for gate voltage 
$V_{g}=3$
 V.
FIGURE 3.

(a) The drain current I_{d} versus gate voltage V_{g} for drain voltage V_{d}=0.1 V. (b) The drain current I_{d} versus drain voltage V_{d} for gate voltage V_{g}=3 V.

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 {n_{e}} = (C + \sqrt {C^{2} + 4{n_{i}}^{2}})/2 and {n_{h}} = {n_{i}}^{2}/{n_{e}} , respectively. Homogeneous Robin boundary condition, which enforces zero net current flow, is imposed on semiconductor-insulator interfaces. Poisson equation is solved in all regions. Dirichlet boundary conditions that enforce impressed external potentials are imposed on metal contacts (the contact barrier is ignored for simplicity). Homogeneous Neumann boundary condition is used on other exterior boundaries.

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 I(V) curves computed using the proposed DG solver to those computed by the COMSOL semiconductor module. Note that this module includes two solvers: SG-FVM and GLS-FEM. For all three solvers, we refine the mesh until the corresponding I(V) curve converges with a relative deviation of 10−2 (from the reference solution). This relative deviation is defined as \sum \nolimits _{V} {|I(V) - {I_{{ \mathrm {ref} }}}(V)|} /\sum \nolimits _{V} {|{I_{{ \mathrm {ref} }}}(V)|} , where the reference {I_{{ \mathrm {ref} }}}(V) curve is obtained from the solution computed by the SG-FVM solver on a mesh with element size h=0.5 nm. Fig. 3 shows that all I(V) curves obtained by the three methods converge to I_{{ \mathrm {ref} }}(V) curve as the mesh they use is made finer. Fig. 3(a) plots the drain current I_{d} versus gate voltage V_{g} under a constant drain voltage {V_{d}} = 0.1 V. It shows that I_{d} increases dramatically as V_{g} becomes larger than a turn-on voltage {V_{\mathrm {th}}} of approximately 1.5V. This indicates that a tunneling channel is formed between the source and the drain as expected. Fig. 3(b) plots I_{d} versus V_{d} for V_{g}=3 V. It shows that I_{d} increases continuously with V_{g} and gradually saturates with a smaller slope of the I(V) curve.

Comparing the I(V) curves obtained by the three solvers using meshes with different element sizes, one can clearly see that the GLS-FEM solver requires considerably finer meshes than the SG-FVM and the DG solvers. The relative deviations corresponding to different solvers and element sizes are listed in Table I. To reach a relative deviation of 10−2, the SG-FVM solver uses a mesh with h=1 nm, the DG solver uses a mesh with h=3 nm, while the GLS-FEM solver requires h to be as small as 0.3 nm. The computation time of the DG solver is about 8 hours for each curve shown in Fig. 3 on a workstation with Intel(R) Xeon(R) E5-2680 CPU. We should note here that, since our solver is developed within MATLAB, and the sparse linear solvers are not parallelized (as of 2018 version), it is not straightforward (and also not very meaningful) to compare this computation time to those of the commercial software.

TABLE 1 Relative Deviation in I(V) Curves
Table 1- 
Relative Deviation in 
$I(V)$
 Curves

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 z=0 for V_{g}=3 V and V_{d}=0.5 V. Figs. 4(a) and (b) illustrate the “field-effect” introduced by the gate voltage, i.e., a sharp conducting channel forms near the top interface facing the gate (y=0.2 ~\mu {\mathrm{ m}} ). This sharp boundary layer of carriers is the reason why a very fine mesh is required to obtain accurate results from this simulation. In Fig. 4(b), the carrier density decays more slowly [compared to the result in Fig. 4(a)] away from the gate interface and suddenly drops to the Dirichlet boundary condition values at the bottom interface (y=0 ). This demonstrates the unphysical smearing of the boundary (carrier) layers observed in GLS-FEM solutions. Figs. 4(c) and (d) show the x-component of the electric field intensity computed by the DG and the GLS-FEM solvers, respectively. One can clearly see that the solution computed by the GLS-FEM solver is smoother (compared to the DG solution) at the sharp corners of the gate. The unphysical effects, as demonstrated in Figs. 4 (b) and (d), result from the GLS testing, which lacks of control on local conservation law [30].

FIGURE 4. - Electron density distribution computed on the plane 
$z=0$
 by (a) the DG solver (b) the GLS-FEM solver for gate voltage 
$V_{g}=3$
 V and drain voltage 
$V_{d}=0.5$
 V. 
$x$
-component of the electric field intensity computed on the plane 
$z=0$
 by (c) the DG solver (d) the GLS-FEM solver for gate voltage 
$V_{g}=3$
 V and drain voltage 
$V_{d}=0.5$
 V.
FIGURE 4.

Electron density distribution computed on the plane z=0 by (a) the DG solver (b) the GLS-FEM solver for gate voltage V_{g}=3 V and drain voltage V_{d}=0.5 V. x -component of the electric field intensity computed on the plane z=0 by (c) the DG solver (d) the GLS-FEM solver for gate voltage V_{g}=3 V and drain voltage V_{d}=0.5 V.

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 (h=1 nm), which results in 1 499 646 unknowns. The DG solver refines the tetrahedral mesh near the boundaries where the solution changes fast, which is not possible to do using the prism mesh generated by sweeping triangles (Fig. 5). This mesh flexibility compensates for the larger number of unknowns required by the DG solver, which results from defining local expansions only connected by numerical flux.

FIGURE 5. - (a): Tetrahedral mesh used by DG and GLS-FEM. (b): Prism mesh used by SG-FVM in COMSOL [30].
FIGURE 5.

(a): Tetrahedral mesh used by DG and GLS-FEM. (b): Prism mesh used by SG-FVM in COMSOL [30].

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.

FIGURE 6. - Schematic diagram of the plasmonic PCA.
FIGURE 6.

Schematic diagram of the plasmonic PCA.

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 {10^{16}} {\mathrm{ cm}}^{-3} . The substrate layer is semi-insulating GaAs. We should note here that it is crucial to employ the appropriate field-dependent mobility models to accurately simulate this device [61]. The Caughey-Thomas model is used here. Other material parameters same as those used in [61]. The bias voltage is set to 10 V.

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 (x,y = 0.5 ~\mu {\mathrm{ m}}, z = 0) and (x, y = 0,z = 0) versus x . The results agree well. The relative difference, which is defined as {{{{\left \|{ {n_{e}^{{ \mathrm {DG} }} - n_{e}^{{ \mathrm {FVM} }}} }\right \|}_{2}}} \mathord {\left /{ {\vphantom {{{{\left \|{ {n_{e}^{{ \mathrm {DG} }} - n_{e}^{{ \mathrm {FVM} }}} }\right \|}_{2}}} {{{\left \|{ {n_{e}^{{ \mathrm {FVM} }}} }\right \|}_{2}}}}} }\right. } {{{\left \|{ {n_{e}^{{ \mathrm {FVM} }}} }\right \|}_{2}}}} , between the solutions obtained by the DG and the SG-FVM solvers is 0.78%. Here, {\left \|{ {}. }\right \|_{2}} denotes L2 norm and n_{e}^{{ \mathrm {DG} }} and n_{e}^{{ \mathrm {FVM} }} are the electron densities obtained by the two solvers. Note that n_{e}^{{ \mathrm {DG} }} is interpolated to the nodes where n_{e}^{{ \mathrm {FVM} }} is computed. The computation time of the DG solver is about 15 hours on a workstation with Intel(R) Xeon(R) E5-2680 CPU.

FIGURE 7. - (a) Electron density distribution computed by the DG solver on the plane 
$z=0$
 in the device region of the plasmonic PCA. (b) Electron density computed by the DG and the SG-FVM solvers along lines 
$(x,y = 0.5~\mu {\mathrm{ m}}, z = 0)$
 and 
$(x, y = 0,z = 0)$
 versus 
$x$
.
FIGURE 7.

(a) Electron density distribution computed by the DG solver on the plane z=0 in the device region of the plasmonic PCA. (b) Electron density computed by the DG and the SG-FVM solvers along lines (x,y = 0.5~\mu {\mathrm{ m}}, z = 0) and (x, y = 0,z = 0) versus x .

SECTION IV.

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.

References

References is not available for this document.