Flux reconstruction yields large error on 3D simplices and 2nd order polynomials (only)
The following discussion from !105 (merged) should be addressed:
-
@sospinar started a discussion: (+13 comments) I'm having troubles with the
\mathcal{RT}_1
elements in 3D. For simplices, the jumps are quite high, while for cubes a local matrix is throwing an error saying that is singular. Not really sure how to proceed here...
Collected info
A single testing case for the flux reconstruction shows strongly increased flux jump residuals:
case | error |
---|---|
2D_1_cube | < 1E-17 |
2D_2_cube | < 1E-17 |
2D_3_cube | < 1E-17 |
2D_1_simplex | < 1E-17 |
2D_2_simplex | < 1E-17 |
2D_3_simplex | < 1E-17 |
3D_1_cube | < 1E-17 |
3D_2_cube | < 1E-17 |
3D_3_cube | none |
3D_1_simplex | < 1E-17 |
3D_2_simplex | 2.70125e-11 |
3D_3_simplex | < 1E-17 |
@sospinar:
We have several sources of numerical inaccuracies
- In the DG cases, they come because values that should represent the same value are generated by different local matrices;
Ax=b
problems. - In the evaluation of the fluxes, they come from the Piola transformation, which have the following operations:
auto J = e.geometry().jacobianInverseTransposed(x); //! Geometry dependent J.invert(); J.umtv(x,y); //! y += A^T x y /= J.determinant();
Proposal
@sospinar:
Will forward this question to Prof. Bastian.
How to test the implementation?
Related issues
Edited by Lukas Riedel