Clean up StokesDG VectorFEM

The implementation of the local operator StokesDGVectorFEM needs to be cleaned up in the same way as proposed in #13 (closed) and #15 (closed).

The current status of this implementation is as follows:

  • It only implements the Stokes part.
  • It implements the residuals directly, but calculates the jacobians via numerical differentiation.
  • It uses a bunch of template parameters to specify the problem.
  • The integration order is set from the outside in the constructor of the class. It has a default value of 4 which might be dangerous.
  • It is based on the deprecated interface of entity pointers

I have come up with the following changes:

  • Merge Stokes and Navier-Stokes implementation into a single class and use a compile time flag to switch between the implementations (as in #13 (closed)).
  • Directly implement residuals and jacobians.
  • Unify to the parameter class interface.
  • Specify the superintegration order from the outside, the correct integration order will derived internally (as in #13 (closed)).
  • Adjust code to the new copyable entities interface.
  • Call the new local operator DGNavierStokesVelVecFEM to be consistent with the naming introduced in #13 (closed).
  • Put the new local operator in the file dgnavierstokesvelvecfem.hh.
  • Deprecate the old implementation in stokesdg_vecfem.hh.
  • Implement the mass term / instationary part and call this implementation NavierStokesVelVecMass.
  • Put the implementation into the file navierstokesmass.hh, see #13 (closed) for instance.
  • Write a test in dune-pdelab-howto for the stationary Navier-Stokes equations using a BDM1 / P0 discretization.