New generated Stokes operators
See #246 (closed) for extended discussion
Checklist:
-
hyteg-operators
submodule needs to be updated as soon as hyteg-operators!3 (merged) is merged -
fix unused variable warnings in generated operators -
move divergence, gradient, viscous directories out of the stokes directory and under hyteg_operators_composites
instead -
fix issues for real_t = float
(single precision builds) -
blending operators test
hyteg_operators_composites
New module This MR adds a new module hyteg_operators_composites
that contains composite operators that are built from generated operators.
For now, three variants of Stokes operators have been added:
- P2P1StokesConstantOperator
- P2P1StokesEpsilonOperator
- P2P1StokesFullOperator
including the necessary viscous, divergence and gradient operators plus their IcosahedralShellMap
blending versions.
The new module also comes with a short README.
Testing
The MR extends and modifies
- P2P1ElementwiseStokesOperatorTest (Stokes constant, 2D + 3D)
- P2P1ElementwiseStokesOperatorTest (full Stokes w/ blending, 3D)
- ElementwiseEpsilonMinResConvergenceTest (Stokes epsilon, 2D + 3D)
- DivergenceOperatorTest (divergence, 2D + 3D)
- ViscousOperatorsTest (epsilon + full viscous block, 2D )
to test the new composites.
At least the 2D versions of all non-blending Stokes operators are now tested to some extent.
Edited by Nils Kohl