hyteg merge requestshttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests2022-12-15T22:00:08+01:00https://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/551Fixes the high velocities due to wrong rec tree2022-12-15T22:00:08+01:00Marcus MohrFixes the high velocities due to wrong rec treeThis change avoids having large velocities due to the creation of a
wrong reconstruction tree. Some plates have two reconstruction poles
at the same time, the plate reconstruction tree was set to get the
older plate ID instead of the cur...This change avoids having large velocities due to the creation of a
wrong reconstruction tree. Some plates have two reconstruction poles
at the same time, the plate reconstruction tree was set to get the
older plate ID instead of the current one.
Now the code is set to create the reconstruction tree with the age
provided by the user.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/577Resolve issue #2042023-03-22T20:17:13+01:00Marcus MohrResolve issue #204Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/591Fix position of symmetric cuboid2023-04-27T19:42:37+02:00Daniel BauerFix position of symmetric cuboidWe can create symmetric cuboids by specifying lower-left-front and upper-right-back corner coordinates.
However, those used to be only used for determining the size of the cube.
It would always be positioned at the origin.
This MR fixes...We can create symmetric cuboids by specifying lower-left-front and upper-right-back corner coordinates.
However, those used to be only used for determining the size of the cube.
It would always be positioned at the origin.
This MR fixes the positioning to be at the specified lower-left-front point.
A respective test is included.Daniel BauerDaniel Bauerhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/610Fix petsc::exportOperator()2023-06-06T19:04:05+02:00Marcus MohrFix petsc::exportOperator()[5cb62dc676] introduced "bool binary = false" as another optional parameter to the interface of PETScSparseMatrix::print(). It was forgotten, however, to adapt the call to print() inside petsc::exportOperator().[5cb62dc676] introduced "bool binary = false" as another optional parameter to the interface of PETScSparseMatrix::print(). It was forgotten, however, to adapt the call to print() inside petsc::exportOperator().https://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/613Fix issue #2212023-06-14T10:03:44+02:00Marcus MohrFix issue #221Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/621Fix broken master2023-06-27T17:03:09+02:00Marcus MohrFix broken masterMR !620 broke the pipeline for the master, because the new app had an incorrect path for including `VTKOutput.hpp` following the previously merged !619.
IMHO this is another good example, why fast-forward merges are to be preferred.MR !620 broke the pipeline for the master, because the new app had an incorrect path for including `VTKOutput.hpp` following the previously merged !619.
IMHO this is another good example, why fast-forward merges are to be preferred.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/637Resolve problems with Copy Assignment and FunctionMultiStore::remove()2023-07-31T18:49:21+02:00Marcus MohrResolve problems with Copy Assignment and FunctionMultiStore::remove()Resolves issue #224Resolves issue #224Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/640Fix refine coarse mesh2023-08-17T16:18:58+02:00Daniel BauerFix refine coarse meshFixes an issue with `MeshInfo::refinedCoarseMesh`.
This method creates a new coarse mesh that shall look exactly like the old mesh on refinement level 1.
To this end, it introduces new vertices at all edges and creates new cells accordin...Fixes an issue with `MeshInfo::refinedCoarseMesh`.
This method creates a new coarse mesh that shall look exactly like the old mesh on refinement level 1.
To this end, it introduces new vertices at all edges and creates new cells accordingly.
The main challenge is not introducing the same midpoint twice, when refining neighboring cells.
Prior to this MR, a map from vertex coordinates, to ids of newly introduced vertices was used.
The problem however was that the coordinates of the midpoints were rounded differently depending on the order of the edge endpoints.
Actually, making the computation of the midpoint symmetric (e3fa0abfbeae300ebee831bea4f686130f4d4fe4) is enough to fix this issue.
However, since I am paranoid, I changed the map to be from edge endpoint vertex ids (sorted) to the vertex id of the midpoint.
This way, floating comparisons are removed entirely.
I strengthened the test accordingly and checked that it fails on the current master.
Lastly, I want to point out that this is a really nice real-world example demonstrating that you have to be careful with floating point arithmetic.
While both versions of the midpoint calculation are mathematically equivalent, only one of them is correct.Daniel BauerDaniel Bauerhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/665Fixes to several small oversights2023-11-21T08:28:39+01:00Daniel BauerFixes to several small oversightsThis MR includes fixes for several small oversights:
- Computation of P2 diagonal with varying coefficient in 2D.
Edge DoF indices must be adjusted between FEniCS and HyTeG ordering.
However, they used to be shuffled twice (in lines...This MR includes fixes for several small oversights:
- Computation of P2 diagonal with varying coefficient in 2D.
Edge DoF indices must be adjusted between FEniCS and HyTeG ordering.
However, they used to be shuffled twice (in lines 600-602 and again in lines 609-611).
[Details are explained below](https://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/665#note_26112).
- Adding single elements to a PETSc sparse matrix proxy added an unitialized value if `real_t` and `PETScReal` were different types.
- The `P2ConstantOperator` used to segfault when passed a blending form.
Now, the form initializes the geometry map to the identity.
- Vertex, edge and volume DoF functions now use Kahan summation in the `sumLocal` operation.
This fixes a test failure (icx, single precision, #236) caused by inaccurate pressure projection.
- Also includes some improvements to and a new test for the P2 diagonal implemented in `DiagonalNonConstantOperatorTest`.Daniel BauerDaniel Bauer