# PLaSK User Manual

#### Page Contents

- ActiveCond2D

# ActiveCond2D

<electrical solver="ActiveCond2D">

  Corresponding Python class: `electrical.shockley.ActiveCond2D`.

  Two-dimensional phenomenological solver in Cartesian geometry based on custom active region conductivity and using finite-element method. To use this solver, you must create a Python function taking the junction voltage, current density and temperature as arguments and returning junction conductivity. The returned value must be either a dwo-dimensional tensor or a single value, in which case the conductivity is assumed to be zero in lateral direction. Next, you must assign this function to the cond (or cond0, cond1 etc. for multiple active regions) of the solver.

  Example:

      >>> solver.cond = lambda U, jy, T: 5.0

  Attributes:

    - name (`required`) – Solver name.

  Contents:
    <geometry>

      Geometry for use by this solver.

      Attributes:

        - ref (`required`) – Name of a Cylindrical geometry defined in the `<geometry>` section.

    <mesh>

      Rectangular2D mesh used by this solver.

      Attributes:

        - ref (`required`) – Name of a Rectangular2D mesh defined in the `<grids>` section. (mesh)

        - empty-elements – Should empty regions (e.g. air) be included into electrical computations? (`default`, `include`, or `exclude`, default is `default`)

    <voltage>

      Voltage boundary conditions. See subsection Boundary conditions.

    <loop>

      Configuration of the self-consistent loop.

      Attributes:

        - maxerr – Maximum allowed current density error. (float (%), default 0.05 %)

        - start-cond – Initial vertical conductivity of all active regions. (float (S/m), default 5.0 S/m)

        - start-cond-inplane – Initial in-plane conductivity of all active regions. (float (S/m), default 0.0 S/m)

        - convergence – Convergence method. If `stable`, convergence is slowed down to ensure stability. (`fast` or `stable`, default is `fast`)

    <matrix>

      Matrix solver configuration.

      Attributes:

        - algorithm – Algorithm used for solving set of linear positive-definite equations. (`cholesky`, `gauss`, or `iterative`, default is `cholesky`)

      <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`, or `continue`, default is `warning`)

          - 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`, or `bcgs`, default is `cg`)

          - preconditioner – Preconditioner used for iterative matrix solver. (`rich`, `jac`, `ljac`, `ljacx`, `sor`, `ssor`, `ic`, `mic`, `lsp`, `neu`, `lsor`, `lssor`, `llsp`, `lneu`, `bic`, `bicx`, `mbic`, or `mbicx`, default is `ic`)

          - 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:
        `rich` | Richardson’s method
        `jac` | Jacobi method
        `ljac` | Line Jacobi method
        `ljacx` | Line Jacobi method (approx. inverse)
        `sor` | Successive Overrelaxation
        `ssor` | Symmetric SOR (can be used only with SOR accelerator)
        `ic` | Incomplete Cholesky (default)
        `mic` | Modified Incomplete Cholesky
        `lsp` | Least Squares Polynomial
        `neu` | Neumann Polynomial
        `lsor` | Line SOR
        `lssor` | Line SSOR
        `llsp` | Line Least Squares Polynomial
        `lneu` | Line Neumann Polynomial
        `bic` | Block Incomplete Cholesky (ver. 1)
        `bicx` | Block Incomplete Cholesky (ver. 2)
        `mbic` | Modified Block Incomplete Cholesky (ver. 1)
        `mbicx` | Modified Block Incomplete Cholesky (ver. 2)

        Accelerator choices:
        `cg` | Conjugate Gradient acceleration (default)
        `si` | Chebyshev acceleration or Semi-Iteration
        `sor` | Successive Overrelaxation (can use only SOR preconditioner)
        `srcg` | Symmetric Successive Overrelaxation Conjugate Gradient Algorithm (can use only SSOR preconditioner)
        `srsi` | Symmetric Successive Overrelaxation Semi-Iteration Algorithm (can use only SSOR preconditioner)
        `basic` | Basic Iterative Method
        `me` | Minimal Error Algorithm
        `cgnr` | Conjugate Gradient applied to the Normal Equations
        `lsqr` | Least Squares Algorithm
        `odir` | ORTHODIR, a truncated/restarted method useful for nonsymmetric systems of equations
        `omin` | ORTHOMIN, a common truncated/restarted method used for nonsymmetric systems
        `ores` | ORTHORES, another truncated/restarted method for nonsymmetric systems
        `iom` | Incomplete Orthogonalization Method
        `gmres` | Generalized Minimal Residual Method
        `usymlq` | Unsymmetric LQ
        `usymqr` | Unsymmetric QR
        `landir` | Lanczos/ORTHODIR
        `lanmin` | Lanczos/ORTHOMIN or Biconjugate Gradient Method
        `lanres` | Lanczos/ORTHORES or “two-sided” Lanczos Method
        `cgcr` | Constrained Generalized Conjugate Residual Method
        `bcgs` | Biconjugate Gradient Squared Method

    <contacts>

      Properties of the contact layers.

      Attributes:

        - pcond – p-contact conductivity. (float (S/m), default 5.0 S/m)

        - ncond – n-contact conductivity. (float (S/m), default 50.0 S/m)