The main matrix consists of fluxes that will (if the control functions are correctly assigned to the variables) satisfy the criterion of diagonal dominance which is necessary to make the linear equation system solvable with an iterative solver (see Section 4.4).
The transformations and additional terms imposed by the boundary conditions may heavily disrupt this feature both in structural and numerical aspects. Some of the boundary or interface conditions can make the full system matrix so ill-conditioned thereby simply preventing iterative linear solvers to converge.
This problem can be simply passed to the solver module which is likely to employ a direct solver to solve such heavily ill-conditioned problems. Alternatively, an elimination concept as designed and presented in [65] can be pursued which applies a Gaussian elimination to some parts of the linear equation system only. It is important to note that this solving capability is part of the assembly module. It is possible to disable this feature and pass the complete linear equation system to the solver module (after sorting and scaling, if enabled).
The elimination concept is based on the idea to apply Gaussian elimination to the problematic or critical equations before the system is passed on to the linear solver. After the iterative solver has converged, the eliminated variables are calculated by back-substitution into the eliminated equations. This process is thus a partial Gaussian factorization of the matrix, which is called pre-elimination in the context of the assembly module.
Before these equations can be eliminated, they are sorted to the end of the matrix, together with their assigned variables. This is done by applying a permutation matrix to the linear equation system. The permutation matrix is calculated automatically on solving the system. All equations causing a possible ill condition have to be marked for pre-elimination by the simulator.
|
The outer system is removed from the linear equation system and later solved by Gaussian elimination, the inner system with an improved condition suitable for iterative solvers is passed on to the solver module. See Figure 4.1 [65,228] for an illustration of this concept. The resulting system is given by
where is the permutation matrix with its inverse equal to its transposed matrix . As the factorization starts with the last equation and proceeds upwards, the usual terms for direct Gaussian LU factorizations have a different meaning. The upper triangular matrix stores the elimination coefficients obtained as the lower matrix of a Gaussian elimination. It contains non-zero off-diagonals in the outer parts only, the inner matrix domain is a strict unity matrix. The unity diagonal of is not stored. The result of the multiplication of with is a matrix with some (but not all) entries in the domain right of the diagonal removed, and some newly created entries. This matrix is split into two parts: the core matrix containing all equations of the inner matrix and the outer matrix.
In Figure 4.2 the effect of the pre-elimination for the system matrix shown. The so-called inner system matrix does not contain the problematic equations any more, for example the equations in rows 1-44 of the complete system matrix. It is obvious that the majority of equations remains in the inner system matrix. Thus, the effort of the Gaussian elimination is kept small whereas the solver module is expected to bear the main solving effort.
|