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.