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 DGNavierStokesVelVecFEMto 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-howtofor the stationary Navier-Stokes equations using a BDM1 / P0 discretization.