Help with Implicit Underrelaxation
I've got a problem understanding the implicit under-relaxation procedure of OPENFOAM. I understand that it used to insure diagonal dominance of the system Matrix, by dividing the diagonal by alpha, and adding an explicit source term to the equation.
The problem that I am having is, that in the CODE of OPENFOAM there stands something like:
// Store the current unrelaxed diagonal for use in updating the source
// Calculate the sum-mag off-diagonal from the interior faces
scalarField sumOff(D.size(), 0.0);
D[celli] = max(mag(D[celli]), sumOff[celli]);
// ... then relax
D /= alpha;
So as far as I understand this makes sure that the main diagonal is at least as big as the sum of all off diagonal elements in the matrix. But my main Question now is doesn't this procedure violate the consistency of discretisation of Faces (discretisation procedure is the same for both Cells sharing the face)?
My be some one can help me with this problem, or give me some hints for literature.