Static3D

<thermal solver="Static3D">

Corresponding Python class: thermal.static.Static3D.

Three-dimensional static thermal solver based on finite-element method.

Attributes:
  • name (required) – Solver name.

Contents:
<geometry>

Geometry for use by this solver.

Attributes:
  • ref (required) – Name of a Cartesian3D geometry defined in the <geometry> section.

<mesh>

Rectangular3D mesh used by this solver.

Attributes:
  • ref (required) – Name of a Rectangular3D 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)

<temperature>

Temperature boundary conditions. See subsection Boundary conditions.

<heatflux>

Heat Flux boundary conditions. See subsection Boundary conditions.

<convection>

Convective boundary conditions. See subsection Boundary conditions.

This boundary condition does not have value attribute. Use coeff for convection coefficient and ambient for ambient temperature instead.

<radiation>

Radiative boundary conditions. See subsection Boundary conditions.

This boundary condition does not have value attribute. Use emissivity for surface emissivity and ambient for ambient temperature instead.

<loop>

Configuration of the self-consistent loop.

Attributes:
  • inittemp – Initial temperature used for the first computation. (float (K), default 300 K)

  • maxerr – Maximum allowed error in a self-consistent loop. (float (K), default 0.05 K)

<matrix>

Matrix solver configuration.

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

<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