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.