Volume method for multilinear geometries
For non-affine multilinear geometry mappings the volume method doesn't calculate the correct result. Instead of using numerical integration with higher order it uses midpoint rule as approximation:
/** \brief obtain the volume of the mapping's image
*
* \note The current implementation just returns
* \code
* integrationElement( refElement().position( 0, 0 ) ) * refElement().volume()
* \endcode
* which is wrong for n-linear surface maps and other nonlinear maps.
*/
ctype volume () const
{
return integrationElement( refElement().position( 0, 0 ) ) * refElement().volume();
}
Compare also to:
https://dune-project.org/doxygen/pdelab/master/group__GeometryReferenceElements.html
The question is how to fix it:
- Estimate the correct quadrature order and use an appropriate quadrature rule.
- Introduce a parameter that can be set by the user.
- Do not fix it at all since the error in the discretization is probably not too large.
I would be interested to hear some opinions.