Reduce CG overhead
This MR aims to reduce the gather/scatter overhead when assembling the global residual for CG methods with a high number of local degrees of freedoms, i.e. high order CG or blockstructured CG. To achive this, the iteration over each local DOFs in the gather/scatter functions is restructured into an interation over each subentity of the element. Since the global DOFs corresponding to a subentity are grouped to gather in the global residual, only one global index per subentity needs to be computed.
The new behaviour can be activated by using the Blockstructured::GridOperator
instead of the default PDELab::GridOperator
.
cc @joe.
edit: removed constraint on mesh.
Edited by Marcel Koch