brodbeck-m / dolfinx_eqlb

Efficient reconstruction of H(div) conforming fluxes in FEniCSx. These fluxes can be used to calculate a posteriori error estimates for adaptive FEM calculations.
GNU Lesser General Public License v3.0
0 stars 0 forks source link

Semi-explicite equilibration: Consider surface orientation in equilibration #1

Closed brodbeck-m closed 3 weeks ago

brodbeck-m commented 4 months ago

Surfaces can occur in reversed directions within adjacent meshes. For term based on jumps this required the reversion of one of the sides before the an integral can be evaluated.

brodbeck-m commented 1 month ago

Explicit step: Consideration of facets with reversed orientation requires detection and restructuring of the (simplified) surface quadratures

Unconstrained minimisation: Lowest order case has no problems as the orientation is purely dependent on the normal direction. For higher orders the shape functions (on the reversed facet) have to be transformed. When the DOFs are mapped onto the local solution vectors, the global DOFs have to be reverted onto the local system

brodbeck-m commented 1 month ago

Explicit step: Consideration of facets with reversed orientation requires detection and restructuring of the (simplified) surface quadratures

* [x]  Detect surface reversion

* [ ]  Replace direct evaluation of jump by separate evaluation of the two facet contributions

* [ ]  Consider different orientation when evaluating lowest order and higher order jump contribution

Unconstrained minimisation:

Detection of reversed facets implemented in 162feb7f6a7cd688ec4d419d2a31b2e621361626

brodbeck-m commented 1 month ago

Explicit step: Consideration of facets with reversed orientation requires detection and restructuring of the (simplified) surface quadratures

* [x]  Detect surface reversion

* [x]  Replace direct evaluation of jump by separate evaluation of the two facet contributions

* [ ]  Consider different orientation when evaluating lowest order and higher order jump contribution

Unconstrained minimisation:

Generalised calculation of jump condition within commits 0c9a9880de23a8f3d350be14e3870edf1fb9066c, 752e9b1b093092b0869f0ce2738c75b13cec9b92 and 2b6e6b4661cda1066cd3682cf27356de12cfe54d

brodbeck-m commented 1 month ago

Explicit step: Consideration of facets with reversed orientation requires detection and restructuring of the (simplified) surface quadratures

* [x]  Detect surface reversion

* [x]  Replace direct evaluation of jump by separate evaluation of the two facet contributions

* [x]  Consider different orientation when evaluating lowest order and higher order jump contribution

Unconstrained minimisation:

Evaluation of higher order jump terms on reversed edges requires the consideration of a mapping. Generalised implementation completed within https://github.com/brodbeck-m/dolfinx_eqlb/commit/ef34628ad8b2295260af1ab6cf3315b7c06a4b94 (one RHS) and extended on multiple RHS within https://github.com/brodbeck-m/dolfinx_eqlb/commit/21fe38052c45308fe06c0c31ce4f1101b95f6ffb

brodbeck-m commented 1 month ago

Explicit step: Consideration of facets with reversed orientation requires detection and restructuring of the (simplified) surface quadratures

* [x]  Detect surface reversion

* [x]  Replace direct evaluation of jump by separate evaluation of the two facet contributions

* [x]  Consider different orientation when evaluating lowest order and higher order jump contribution

Unconstrained minimisation: Lowest order case has no problems as the orientation is purely dependent on the normal direction. For higher orders the shape functions (on the reversed facet) have to be transformed. When the DOFs are mapped onto the local solution vectors, the global DOFs have to be reverted onto the local system

* [x]  Add transformation data to KernelDataEqlb

* [ ]  Implement transformation of element-wise mass-matrix before adding it to patch-wise minimisation problem

* [ ]  Consider transformation of global DOFs into local DOFs when adding the solution onto the cell-wise solution vectors

* [ ]  Adjust constrained minimisation for weak-symmetry condition in the same way

Done within commit 137c95426912af887a8e60e0273f748f71989103

brodbeck-m commented 1 month ago

Explicit step: Consideration of facets with reversed orientation requires detection and restructuring of the (simplified) surface quadratures

* [x]  Detect surface reversion

* [x]  Replace direct evaluation of jump by separate evaluation of the two facet contributions

* [x]  Consider different orientation when evaluating lowest order and higher order jump contribution

Unconstrained minimisation: Lowest order case has no problems as the orientation is purely dependent on the normal direction. For higher orders the shape functions (on the reversed facet) have to be transformed. When the DOFs are mapped onto the local solution vectors, the global DOFs have to be reverted onto the local system

* [x]  Add transformation data to KernelDataEqlb

* [x]  Implement transformation of element-wise mass-matrix before adding it to patch-wise minimisation problem

* [x]  Consider transformation of global DOFs into local DOFs when adding the solution onto the cell-wise solution vectors

* [ ]  Adjust constrained minimisation for weak-symmetry condition in the same way

Minimisation on general meshes fixed within 15b1f8751f1de33474cd416b10f22ab421467c80

brodbeck-m commented 1 month ago

Explicit step: Consideration of facets with reversed orientation requires detection and restructuring of the (simplified) surface quadratures

* [x]  Detect surface reversion

* [x]  Replace direct evaluation of jump by separate evaluation of the two facet contributions

* [x]  Consider different orientation when evaluating lowest order and higher order jump contribution

Unconstrained minimisation: Lowest order case has no problems as the orientation is purely dependent on the normal direction. For higher orders the shape functions (on the reversed facet) have to be transformed. When the DOFs are mapped onto the local solution vectors, the global DOFs have to be reverted onto the local system

* [x]  Add transformation data to KernelDataEqlb

* [x]  Implement transformation of element-wise mass-matrix before adding it to patch-wise minimisation problem

* [x]  Consider transformation of global DOFs into local DOFs when adding the solution onto the cell-wise solution vectors

* [x]  Adjust constrained minimisation for weak-symmetry condition in the same way

Imposition of weak-symmetry condition fixed by commit 26016ba6ff28b679437cc5f62007a08afd86b714