Is the degree of freedom the normal derivative at a point, or is it the
mean value of the normal derivative along the edge, or anything like
this? If this was the case, then you would have assigned a multiple of
the correct value as boundary values.
The degree of freedom is the whole gradient at a corner.
Then how do you get the values that you pass on to
MatrixTools::apply_boundary_values? Do you use
VectorTools::interpolate_boundary_values or something else?
I use my own function, working similarly to the
VectorTools::interpolate_boundary_values.
In general, what happens if you have a problem with zero right hand side
and nonzero boundary values on a mesh with uniform mesh size? Do you get
a solution that is correct up to a multiplicative constant?
The solution is correct in the domain. The values at the boundary
oscillate.
So it converges in the interior, just not at the boundary?
Right.
Best,
Bärbel
_______________________________________________