DriftDiffusion2D¶
-
<electrical solver="DriftDiffusion2D">¶ Corresponding Python class:
electrical.ddm2d.DriftDiffusion2D.Finite element drift-diffusion electrical solver for 2D Cartesian geometry using finite-element method.
Attributes: - name (required) – Solver name.
- Contents:
-
<geometry>¶ Geometry for use by this solver.
Attributes: - ref (required) – Name of a Cartesian2D geometry defined in the
<geometry>section.
- ref (required) – Name of a Cartesian2D geometry defined in the
-
<mesh>¶ Rectangular2D mesh used by this solver.
Attributes: - ref (required) – Name of a Rectangular2D mesh defined in the
<grids>section.
- ref (required) – Name of a Rectangular2D mesh defined in the
-
<voltage>¶ Voltage boundary conditions. See subsection Boundary conditions.
-
<loop>¶ Configuration of the self-consistent loop.
Attributes: - stat – Statistics assumed in drift-diffusion equations. (
Maxwell-BoltzmannorFermi-Dirac, default isMaxwell-Boltzmann) - conttype – Type of contacts. (
ohmicorSchottky, default isohmic) - SchottkyP – Schottky barrier for p-type contact. (float, default 0.0)
- SchottkyN – Schottky barrier for n-type contact. (float, default 0.0)
- Rsrh – Consider Shockley-Read-Hall recombination. (bool, default is
no) - Rrad – Consider radiative recombination. (bool, default is
no) - Raug – Consider Auger recombination. (bool, default is
no) - Pol – Polarization effects. (bool, default is
no) - FullIon – Complete ionization of dopants. (bool, default is
yes) - maxerrVi – Limit for the initial potential estimate updates. (float (V), default 1e-06 V)
- maxerrV0 – Limit for the built-in potential updates. (float (V), default 1e-06 V)
- maxerrV – Limit for the potential updates. (float (V), default 1e-06 V)
- maxerrFn – Limit for the electrons quasi-Fermi level updates. (float (eV), default 0.0001 eV)
- maxerrFp – Limit for the holes quasi-Fermi level updates. (float (eV), default 0.0001 eV)
- loopsVi – Loops limit for the initial potential estimate. (int, default 10000)
- loopsV0 – Loops limit for the built-in potential. (int, default 200)
- loopsV – Loops limit for the potential. (int, default 3)
- loopsFn – Loops limit for the electrons quasi-Fermi level. (int, default 3)
- loopsFp – Loops limit for the holes quasi-Fermi level. (int, default 3)
- stat – Statistics assumed in drift-diffusion equations. (
-
<matrix>¶ Matrix solver configuration.
Attributes: - algorithm – Algorithm used for solving set of linear positive-definite equations. (
cholesky,gauss, oriterative, default ischolesky)
-
<iterative>¶ Parameters for iterative matrix solver. PLaSK uses NSPCG package for performing iterations. Please refer to its documentation for explanation of most of the settings.
Attributes: - maxit – Maximum number of iterations. (int, default 1000)
- maxerr – Maximum iteration error. (float, default 1e-6)
- noconv – Desired behavior if the iterative solver does not converge. (
error,warning, orcontinue, default iswarning) - accelerator – Accelerator used for iterative matrix solver. (
cg,si,sor,srcg,srsi,basic,me,cgnr,lsqr,odir,omin,ores,iom,gmres,usymlq,usymqr,landir,lanmin,lanres,cgcr, orbcgs, default iscg) - preconditioner – Preconditioner used for iterative matrix solver. (
rich,jac,ljac,ljacx,sor,ssor,ic,mic,lsp,neu,lsor,lssor,llsp,lneu,bic,bicx,mbic, ormbicx, default isic) - nfact – This number initializes the frequency of partial factorizations. It specifies the number of linear system evaluations between factorizations. The default value is 1, which means that a factorization is performed at every iteration. (int, default 10)
- ndeg – Degree of the polynomial to be used for the polynomial preconditioners. (int, default 1)
- lvfill – Level of fill-in for incomplete Cholesky preconditioners. Increasing this value will result in more accurate factorizations at the expense of increased memory usage and factorization time. (int, default 0)
- ltrunc – Truncation bandwidth to be used when approximating the inverses of matrices with dense banded matrices. An increase in this value means a more accurate factorization at the expense of increased storage. (int, default 0)
- omega – Relaxation parameter. (float, default 1.0)
- nsave – The number of old vectors to be saved for the truncated acceleration methods. (int, default 5)
- nrestart – The number of iterations between restarts for the restarted acceleration methods. (int, default 100000)
Preconditioner choices:¶ richRichardson’s method jacJacobi method ljacLine Jacobi method ljacxLine Jacobi method (approx. inverse) sorSuccessive Overrelaxation ssorSymmetric SOR (can be used only with SOR accelerator) icIncomplete Cholesky (default) micModified Incomplete Cholesky lspLeast Squares Polynomial neuNeumann Polynomial lsorLine SOR lssorLine SSOR llspLine Least Squares Polynomial lneuLine Neumann Polynomial bicBlock Incomplete Cholesky (ver. 1) bicxBlock Incomplete Cholesky (ver. 2) mbicModified Block Incomplete Cholesky (ver. 1) mbicxModified Block Incomplete Cholesky (ver. 2) Accelerator choices:¶ cgConjugate Gradient acceleration (default) siChebyshev acceleration or Semi-Iteration sorSuccessive Overrelaxation (can use only SOR preconditioner) srcgSymmetric Successive Overrelaxation Conjugate Gradient Algorithm (can use only SSOR preconditioner) srsiSymmetric Successive Overrelaxation Semi-Iteration Algorithm (can use only SSOR preconditioner) basicBasic Iterative Method meMinimal Error Algorithm cgnrConjugate Gradient applied to the Normal Equations lsqrLeast Squares Algorithm odirORTHODIR, a truncated/restarted method useful for nonsymmetric systems of equations ominORTHOMIN, a common truncated/restarted method used for nonsymmetric systems oresORTHORES, another truncated/restarted method for nonsymmetric systems iomIncomplete Orthogonalization Method gmresGeneralized Minimal Residual Method usymlqUnsymmetric LQ usymqrUnsymmetric QR landirLanczos/ORTHODIR lanminLanczos/ORTHOMIN or Biconjugate Gradient Method lanresLanczos/ORTHORES or “two-sided” Lanczos Method cgcrConstrained Generalized Conjugate Residual Method bcgsBiconjugate Gradient Squared Method
- algorithm – Algorithm used for solving set of linear positive-definite equations. (
-
<config>¶ Some important gain parameters.
Attributes: - strained – Boolean attribute indicating if the solver should consider strain in the active region. If set to yes then there must a layer with the role “substrate” in the geometry. The strain is computed by comparing the atomic lattice constants of the substrate and the quantum wells. (bool, default is
no) - T0 – Reference temperature. This is the temperature used for initial computation of the energy levels. (float (K), default 300 K)
- strained – Boolean attribute indicating if the solver should consider strain in the active region. If set to yes then there must a layer with the role “substrate” in the geometry. The strain is computed by comparing the atomic lattice constants of the substrate and the quantum wells. (bool, default is
-