Conjugate-gradient solver

The thermal solver uses the biconjugate gradient stabilized technique in the conjugate-gradient (CG) solver to solve for temperatures using the conductance matrix until convergence.

The equations are placed into the matrix format:

where:

  • [GG] is the conductance matrix.
  • {Ti,t+dt,n+1} is the temperature vector estimate at conjugate iteration n+1 and time t+dt without damping.
  • {B} is the right-hand side vector.

Derivation of the conductance matrix

The energy balance equation for a transient run to be solved iteratively at iteration n+1 and time t+dt for element i can be cast in the form:

where:

  • GCij is the sum of the non-radiative conductances between i and j.
  • n is the current iteration value.
  • Ci,t is the capacitance of the element.
  • Ti,t+dt,n+1 is the temperature of element i at time t+dt and iteration n+1. The objective is to solve for Ti,t+dt,n+1.
  • Ti,t is the temperature of element i at time t.
  • GRij is the radiative conductance parameter for a radiative coupling between elements i and j, equal to its (Boltzmann’s Constant)(area)(emissivity)(gray body view factor) product value.
  • α is the explicit-implicit weighting factor, between 0 and 1. For Crank-Nicolson α = 0.5, for forward and exponential forward differencing α = 0 and for backward differencing α = 1. For steady state analysis α = 1.
  • dt is the integration time step. For steady state analysis dt = infinity.
  • TABS is the absolute value of absolute zero.

Since the equation is non-linear, the Newton-Raphson method is used. A first-order Taylor series expansion for the last two terms about Ti, t+dt,n is performed:

Substituting into the energy balance equation yields:

Recasting this equation into the matrix form:

yields:

when i is not equal to j:

when i = j:

where:

  • GGij is the matrix term of the i'th row and j'th column.
  • Bi is the right hand side.

For sink temperatures:

The matrix is solved with the biconjugate-stabilized version of the conjugate gradient technique. The matrix convergence parameters can be set.

Convergence is achieved if the value of the norm of the expression below is less than the convergence parameter, T2, which by default is equal to 1.E-8.

To accelerate convergence, an approximate inverse matrix is used as a preconditioner. The preconditioning matrix is created using the Incomplete Lower-Upper factorization method. LFIL is the maximum number of terms in each row of the preconditioning matrix, and its initial value defaults to 10.

The preconditioning matrix is created once every 10 iterations for steady-state runs, and once every 10 integration time steps for transient runs. In addition, before every solution the diagonal terms of the GG matrix are checked to see if they have changed since the last time the preconditioning matrix was updated. If they have changed by more than 100%, the preconditioning matrix is automatically updated.

If the conjugate gradient solver does not converge after 100 iterations, one of two actions is taken. If the pattern of convergence is good, then the maximum number of allowable iterations is increased to 200, 300, etc. If the pattern of convergence is not good, then the LFIL value of the preconditioning matrix is automatically increased in increments of 10 to a maximum value of 200, and the preconditioning matrix is re-created until convergence is achieved.

If the forward differencing or exponential forward differencing methods are specified, then only a single iteration per time step is used as the default. This assumes that the conductance matrix remains constant during the integration time step.