This PR adds several key features in order to move away from 'full' and 'reduced' element integration schemes as this is not flexible enough to integrate different bilinear forms, resulting in rank deficient mass like matrices that arise in dynamic analysis and in reaction-diffusion type problems.
Uncouple shape functions and quadrature schemes
Add several new quadrature schemes
Split quadrature into their own namespaces
Add fem::integral that composes interpolation and numerical_quadrature types
Check minimum degree of quadrature based on shape function and (bi)linear form
Some fallout from this refactor is that the patch recovery logic is not split into it's own class that should be responsible for performing the integration point to nodal point extrapolation using the shape function (or similar).
This PR adds several key features in order to move away from 'full' and 'reduced' element integration schemes as this is not flexible enough to integrate different bilinear forms, resulting in rank deficient mass like matrices that arise in dynamic analysis and in reaction-diffusion type problems.
fem::integral
that composesinterpolation
andnumerical_quadrature
typesSome fallout from this refactor is that the patch recovery logic is not split into it's own class that should be responsible for performing the integration point to nodal point extrapolation using the shape function (or similar).