Static condensation is a method that can reduce the dimension of a matricial equation. The shape of the linear system must be M*v = b where M is a matrix, b is a vector, and v is the solution vector. Say the vector v is of length 1000, but one only needs the 10 first values of it, the linear system can be changed to be a system of size 10, where the solution is the first 10 values of the mesh.
Note : If 10 values are needed, but the values are not the 10 first, just reorganize the lines and columns of the vectors and of the matrix for the wanted values are the 10 first. This operation is not time consuming.
A good example where the static condensation could be used is a finite element method for which the degree of freedom are the nodes of the mesh. If the solution only needs to be known at certain specific nodes, static condensation can be used.
Suppose you have a linear system under the form :
$$ { M \cdot \vec{u} = \vec{b} } $$
The M matrix and the \( \vec{b} \) vector are known. The solution needed is the \( \vec u \) vector. Separate \( \vec u \) into two vectors, \( \vec u_w \) and \(\vec u_u\) where w stands for wanted and u for unwanted. Thus, \(\vec u_w\) is the wanted part of the solution. We can separate \(\vec b \) can be separated the same way, as shown here :
$$ { M \cdot \begin{bmatrix} \vec{u}_w \\ \vec{u}_u \end{bmatrix} = \begin{bmatrix} \vec{b}_w \\ \vec{b}_u \end{bmatrix} } $$
In general, the system will not be properly orderered this way, wanted elements will be dispersed in the \(\vec u \) and \( \vec b \) vectors.
Thus, it is possible to separate the M matrix into 4 submatrices, A, B, C and D, like shown here :
Main equation is then :
It is possible to separate this matricial equation into two smaller systems :
Using the first equation, we can isolate the "unwanted" part of the vector :
Now, we can put this equation into the second equation of the system, obtaining :
If one alanyses this equation, it has the form :
This given form is the same as, which is the same as the first initial equation :
It looks evident that the time required to solve the new linear system is a lot smaller that the previous time since the linear system is smaller. Usually, this is true, and when less amount of data has to be found, less time it takes to compute the associated time.
There are three problems associated with the method :
Here is a small example on how to use static condensation. The linear system is built at random, but the position of the values in the sparse matrix are determined by a given mesh. Thus, the static condensation in the example use a realistic matrix to condense. The factors the user can modify are the number of elements in the mesh (size of the matrix), the number of times the system is solved with the same static condensation, and the size of the new system to solve (percentage of nodes where the solution is wanted). Note that solving the same system is representative of a problem where one wants several solution of the same system, but with a different right-hand vector. The right-hand vector must be recalculated, but it is not time consuming.