Daniel,

To verify my MatrixFree implementation, I compared its application to the classical matrix-vector multiplication (call it matrix *A*). This is done by computing the matrix *M* of the operator *MF* by applying it to all unit-vectors.

However, when I compute the diagonal in the same way as LaplaceOperator does it (copied it), I get values different from the assembled diagonal once I have hanging nodes.

The rows and columns corresponding to hanging nodes are empty with the exception of the diagonal entry -- for which we use a value that has the correct order of magnitude, but that is otherwise unspecified. In other words, what diagonal value you have there is unimportant as long as it is nonzero because these degrees of freedom don't couple with all of the other degrees of freedom, and as long as you overwrite the values of the computed solution through ConstraintMatrix::distribute().

It is not surprising to me that you get different diagonal entries when you use two different methods. The question is whether you get a different *solution* vector after distributing to hanging nodes.

Best
 W.

--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 [email protected]
                           www: http://www.math.colostate.edu/~bangerth/

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to