### Fix Poisson test case.

```Higher order RT elements require more delicate mechanism to mark boundary indices.

Working:
2D: RT0 x P0, RT1 x P1, BDM1 x P0, BDM2 x P1
3D: RT0 x P0, RT1 x P1

Not working:
2D: RT2 x P2 - solver does not converge.
3D: BDM1 x P0 - no interpolation provided by dune-localfunctions.```
parent 6b211ba7
Pipeline #2592 failed with stage
in 68 minutes and 48 seconds
 ... ... @@ -450,14 +450,22 @@ int main (int argc, char *argv[]) try // Mark top boundary. auto topBoundaryIndicator = [&l] (Domain x) { double isBoundary = x[dim-1] > l[dim-1] - 1e-8 ? x[0] : 0.0; #ifdef DIM2 double isBoundary = x[dim-1] > l[dim-1] - 1e-8 ? x[0]: 0.0; #else double isBoundary = x[dim-1] > l[dim-1] - 1e-8 ? x[0] * x[1]: 0.0; #endif return isBoundary; }; // Mark lower boundary. auto lowerBoundaryIndicator = [&l] (Domain x) { double isBoundary = x[dim-1] < 1e-8 ? x[0] : 0.0; #ifdef DIM2 double isBoundary = x[dim-1] < 1e-8 ? x[0]: 0.0; #else double isBoundary = x[dim-1] < 1e-8 ? x[0] * x[1]: 0.0; #endif return isBoundary; }; ... ... @@ -517,7 +525,7 @@ int main (int argc, char *argv[]) try // Preconditioned GMRES / BiCGSTAB solver //RestartedGMResSolver solver (op, preconditioner, 1e-6, 1000, 10000, 2); BiCGSTABSolver solver(op, preconditioner, 1e-6, 10000, 2); BiCGSTABSolver solver(op, preconditioner, 1e-6, 4000, 2); // Object storing some statistics about the solving process InverseOperatorResult statistics; ... ...
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!