The association of the elements with actual positions in the system matrix is quite informal. A numbering of the elements may be given as the result of data structural treatment, e.g. in order to discriminate elements, however, this shall not be used in order to associate the single elements with a matrix row. The same shall also be avoided for the association with a residual expression assembled with respect to a topological element and the respective matrix line.
However, for the sake of simplicity, it can be arranged that the row association for a quantity can be identical with the line association of the residual expression with respect to the topological element. The element-wise assembly, e.g. of finite elements, implicitly forces this identity of row-association and line-association, because otherwise the local element matrix can not be entered into the system matrix appropriately.
Many solvers for linear equation systems or eigenvalue systems have their own optimized matrix restructuring mechanisms. Even though there are methods which assign elements a certain line or row within the respective system matrix, e.g. the Cuthill McKee algorithm [86], the use of multiple quantities on the same simulation domain makes the vertex ordering mechanism difficult and an appropriate association of a vertex with a matrix row or line can not be given. Furthermore, the Cuthill McKee algorithm is intended for the use of vertices only. Although the topological structure can be written as incidence graph, the application of such an algorithm becomes quite cumbersome. Similar approaches, however, can be used at a matrix level to order the equations as well as the unknown variables.
Once an each matrix column is associated with a topological element (and a quantity), the elements of the matrix can be inserted. Further optimization mechanisms, for instance the pre-elimination of variables, can be performed as a pre-processing step of the linear/eigenvalue solver mechanism.
Michael 2008-01-16