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 |
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
Will forward this question to Prof. Bastian.
How to test the implementation?
Related issues
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information