next up previous contents
Next: Determining the matrix structure. Up: Determining the matrix structure Previous: Decascading the MPC's   Contents

Renumbering the nodes to decrease the profile

The profile of a matrix is obtained by marking in each column the uppermost nonzero entry. This way one gets a kind of skyscraper picture. Some methods, like the profile method in CalculiX (*STATIC,SOLVER=PROFILE) store all entries between the profile and the main diagonal (diagonal included). In most cases a lot of these entries are zero. A subsequent LU decomposition into the product of a lower triangular matrix (L) and an upper triangular matrix (U) fills at most this part of the matrix, i.e. in the worst case all entries become nonzero after LU decomposition, but no more. Although this way of solving sparse systems wastes a lot of space, at some time in the past this was the most efficient way of solving systems of equations. Sparse matrix solvers like SPOOLES use much more efficient ways in solving systems of equations.

For a profile solver it is important to reduce the profile as much as possible by renumbering the nodes. This is done using an algorithm published by Sloan ([32]) in subroutine renumber.f. It not only takes the topology of the elements into account, it can also take care of additional equations introduced by *EQUATION or *MPC statements. Although it is primarily effective when using the profile solver, it seems to have a beneficial effect on the solver time of SPOOLES as well. Therefore, it is always activated. Only when large gaps occur in the node numbering the algorithm seems to need an excessive amount of time to complete and the user may be forced to deactivate the renumbering by changing the source code and recompiling.


next up previous contents
Next: Determining the matrix structure. Up: Determining the matrix structure Previous: Decascading the MPC's   Contents
guido dhondt 2005-02-26