Fixes to several small oversights
This MR includes fixes for several small oversights:
- Computation of P2 diagonal with varying coefficient in 2D. Edge DoF indices must be adjusted between FEniCS and HyTeG ordering. However, they used to be shuffled twice (in lines 600-602 and again in lines 609-611). Details are explained below.
- Adding single elements to a PETSc sparse matrix proxy added an unitialized value if
real_t
andPETScReal
were different types. - The
P2ConstantOperator
used to segfault when passed a blending form. Now, the form initializes the geometry map to the identity. - Vertex, edge and volume DoF functions now use Kahan summation in the
sumLocal
operation. This fixes a test failure (icx, single precision, #236) caused by inaccurate pressure projection. - Also includes some improvements to and a new test for the P2 diagonal implemented in
DiagonalNonConstantOperatorTest
.
Edited by Daniel Bauer