hyteg issueshttps://i10git.cs.fau.de/hyteg/hyteg/-/issues2023-11-26T04:24:47+01:00https://i10git.cs.fau.de/hyteg/hyteg/-/issues/237Tests for second derivative of the blending maps2023-11-26T04:24:47+01:00Ponsuganth Ilangovan Ponkumar IlangoTests for second derivative of the blending mapsThe idea is to create some tests for derivatives of the blending maps, currently I have created some tests [here](https://i10git.cs.fau.de/hyteg/hyteg/-/blob/ponsuganth/feDerivativeTest/tests/hyteg/blending/DerivativeTest.cpp), especiall...The idea is to create some tests for derivatives of the blending maps, currently I have created some tests [here](https://i10git.cs.fau.de/hyteg/hyteg/-/blob/ponsuganth/feDerivativeTest/tests/hyteg/blending/DerivativeTest.cpp), especially for the `AnnulusMap` and `IcosahedralMap`.
The first derivatives are tested with Taylor series, we can compare an approximation of the map `evalF` at some point with the function value (map) and it's derivative from a nearby point and calculate the error and then check if they are within a certain bound.
Currently the second derivative function `evalDFinvDF` calculates the derivative of the inverse transposed Jacobian `evalDF`, hence we could directly try to calculate the second derivative with a numerical differentiation scheme and compare the error.
This second derivative test seems to work for the `AnnulusMap` but not (yet) for the `IcosahedralMap`, here I am not sure if I have messed up or the `evalDFinvDF` for `IcosahedralMap` has a bug.Ponsuganth Ilangovan Ponkumar IlangoPonsuganth Ilangovan Ponkumar Ilangohttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/229VTK output is not possible for functions in single precision2024-01-16T13:40:33+01:00Michael ZikeliVTK output is not possible for functions in single precisionWhile writing VTK output, functions that have another type than double precision are simply skipped and only the mesh structure and the functions of double or integer type are printed. There is no user notification, that this is done, th...While writing VTK output, functions that have another type than double precision are simply skipped and only the mesh structure and the functions of double or integer type are printed. There is no user notification, that this is done, the function values are just missing in the output file.
A possible workaround is to use the `.copyfrom()` member function to create a printable copied function object of value type double, however this works only for P1 functions.
Allowing VTK output for any precision (e.g. single, half, ...) would be a nice to have.Michael ZikeliMichael Zikelihttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/228AdiosWriterTest fails with old ICC2023-09-15T09:52:04+02:00Marcus MohrAdiosWriterTest fails with old ICCActivating ADIOS tests in the pipeline, see MR !645 revealed a [problem](https://i10git.cs.fau.de/hyteg/hyteg/-/jobs/1118381) with the `AdiosWriterTest`. It fails for ICC 2022, but only for that one.Activating ADIOS tests in the pipeline, see MR !645 revealed a [problem](https://i10git.cs.fau.de/hyteg/hyteg/-/jobs/1118381) with the `AdiosWriterTest`. It fails for ICC 2022, but only for that one.Implement basic Checkpointing FunctionalityMarcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/222Problem with exporting DG functions to VTK2023-10-05T17:03:55+02:00Marcus MohrProblem with exporting DG functions to VTKWe seem to have missed the introduction of a regression in the pipeline. Running `VTKOutputTest` on the current master works, but the resulting files for P0, DG1, P1DGE are invalid. The connectivity is either screwed up or so wrong that ...We seem to have missed the introduction of a regression in the pipeline. Running `VTKOutputTest` on the current master works, but the resulting files for P0, DG1, P1DGE are invalid. The connectivity is either screwed up or so wrong that ParaView simply crashes.
The files for CG functions appear to be fine, though.
We need a better way to automatically verify that we cannot only write files, but also that their contents make sense.
I also added assertions to
- ```VTKMeshWriter::writeCells2D()```
- ```VTKMeshWriter::writeCells3D()```
to at least ensure that the node indices in the connectivity list are not exceeding the number of nodes we write to the file. See
https://i10git.cs.fau.de/hyteg/hyteg/-/pipelines/53914.https://i10git.cs.fau.de/hyteg/hyteg/-/issues/220Add support for ADIOS2 to test pipeline2023-09-11T17:18:57+02:00Marcus MohrAdd support for ADIOS2 to test pipelineIn order to support implementation of an interface to ADIOS2 it would be necessary to add the latter in some form to the jobs in our pipeline.In order to support implementation of an interface to ADIOS2 it would be necessary to add the latter in some form to the jobs in our pipeline.Extend capabilities for exporting data by adding support for ADIOS2Dominik Thoennesdominik.thoennes@fau.deDominik Thoennesdominik.thoennes@fau.dehttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/211Export of EGFunctions not fully implemented for 3D2023-04-28T14:20:46+02:00Marcus MohrExport of EGFunctions not fully implemented for 3DCurrently (on the master) it is not possible to export `EGFunction` objects living on 3D meshes. This is not directly obvious, either, as the `VTKOutput` class will silently do nothing in this case.
On the branch https://i10git.cs.fau.d...Currently (on the master) it is not possible to export `EGFunction` objects living on 3D meshes. This is not directly obvious, either, as the `VTKOutput` class will silently do nothing in this case.
On the branch https://i10git.cs.fau.de/hyteg/hyteg/-/tree/mohr/extendVTKOutputTest-mc I have extended the `VTKOutput` class such that it attempts to perform the export, if asked. In this case the `WALBERLA_ABORT` of `VTKDGWriter::writeVectorFunction()` kicks in and we at least see, that there is a problem.
I am going to de-activate `VTKoutput` in
- `EGApplyTest`
- `EGFunctionspaceTest`
to make the pipeline for my branch run through and also because I doubt that in most test scenarios it makes sense to produce output in the pipeline. Perfectly fine to have the code for outputting in the test, though. As this can help to analyse problems, when the pipeline fails.
IMHO this issue should be addressed soon.
Cheers
MarcusFabian BöhmFabian Böhmhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/210VTKOutput for N1E1Function fails in case of non-FP ValueType2023-04-27T16:32:16+02:00Marcus MohrVTKOutput for N1E1Function fails in case of non-FP ValueTypeHi,
I just extended the `VTKOutputTest` to include all the new function classes for which VTKWriters had been implemented:
- P0Function
- DG1Function
- EGFunction
- N1E1VectorFunction
The test checks that we can compile and execute cod...Hi,
I just extended the `VTKOutputTest` to include all the new function classes for which VTKWriters had been implemented:
- P0Function
- DG1Function
- EGFunction
- N1E1VectorFunction
The test checks that we can compile and execute code for exporting scalar and/or fields over $`\mathbb{R}`$ represented by these functions, i.e. when the `ValueType` of the template is `real_t`. Additionally it also checks whether we can export function objects where `ValueType` is `int32_t` and `int64_t`.
In the case of the `N1E1VectorFunction` class the integer part fails, because `N1E1VectorFunction::communicate()` aborts for non-FP types.
```
if constexpr ( !std::is_floating_point< ValueType >::value )
{
WALBERLA_ABORT(
"This function flips the signs of unknowns to accommodate for inconsistent edge orientations. Do not use it to communicate index vectors. Use getDoFs()->communicate instead!" )
}
```
Admittedly, exporting integer fields is not a feature that is much sought after. However, it can be helpful e.g. in inspecting whether our DoF enumerations work correctly. Actually this is the way the test sets up the fields.
I am not overly familiar with the implementation details of `N1E1VectorFunction`. However, the abort message suggest that there is a workaround. Would it be possible to have `communicate()` use that workaround instead of aborting in case of non-FP types?
Cheers
MarcusDaniel BauerDaniel Bauerhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/198Bad error metric in some 1:1 function comparison tests2023-02-07T13:35:02+01:00Nils KohlBad error metric in some 1:1 function comparison testsSome tests apply a bad error metric to check whether two functions are equal.
For example this applies here:
https://i10git.cs.fau.de/hyteg/hyteg/-/blob/5a581562882693eaa56d8ea24a8196c152485721/tests/hyteg/P1/P1PetscApplyTest.cpp#L106
...Some tests apply a bad error metric to check whether two functions are equal.
For example this applies here:
https://i10git.cs.fau.de/hyteg/hyteg/-/blob/5a581562882693eaa56d8ea24a8196c152485721/tests/hyteg/P1/P1PetscApplyTest.cpp#L106
```
const auto absScalarProd = std::abs( err.dotGlobal( ones, level, location ) );
WALBERLA_CHECK_LESS( absScalarProd, eps );
```
But the test could pass even if the error is large, if it just alternates at each point for instance. That is unlikely, but extremely misleading once it happens. Rather we should use the 2- or inf-norm here.Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/179Add test for the SphericalHarmonicsTool2022-05-05T11:22:00+02:00Marcus MohrAdd test for the SphericalHarmonicsToolCurrently there are no tests for the computation of spherical harmonics with the `SphericalHarmonicsTool`. We should add some.
A potential start could be to modify some code from `apps/SphericalHarmonics`.Currently there are no tests for the computation of spherical harmonics with the `SphericalHarmonicsTool`. We should add some.
A potential start could be to modify some code from `apps/SphericalHarmonics`.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/168Bump code coverage in forms2022-02-04T12:44:34+01:00Nils KohlBump code coverage in formsLooking at https://hyteg.pages.i10git.cs.fau.de/-/hyteg/-/jobs/684751/artifacts/coverage/coverage.html it seems that we should probably write/augment 1-2 tests so that all `*epsilonvar*` and `*epslioncc*` forms are at least executed once...Looking at https://hyteg.pages.i10git.cs.fau.de/-/hyteg/-/jobs/684751/artifacts/coverage/coverage.html it seems that we should probably write/augment 1-2 tests so that all `*epsilonvar*` and `*epslioncc*` forms are at least executed once. This would cover roughly 10k - 20k lines of 150k atm.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/160AgglomerationMatMulTest3 seems undeterministic2022-05-04T11:25:46+02:00Marcus MohrAgglomerationMatMulTest3 seems undeterministicHi,
there seems to be a problem with the **AgglomerationMatMulTest3** test. What I see from the pipelines it seems to succeed or fail in a non-deterministic manner. So either there is some randomness in the test that causes this or a bu...Hi,
there seems to be a problem with the **AgglomerationMatMulTest3** test. What I see from the pipelines it seems to succeed or fail in a non-deterministic manner. So either there is some randomness in the test that causes this or a bug.
Cheers
MarcusNils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/132ElementwiseOperatorPetscTest fails in P2P1StokesCC2020-09-04T18:20:08+02:00Marcus MohrElementwiseOperatorPetscTest fails in P2P1StokesCCHi,
currently the ``ElementwiseOperatorPetscTest`` fails, both in production and debug mode, on the master in the P2P1StokesCC sub-test. Reported errors are:
- DEBUG mode
```[0][INFO ]------(0.508 sec) Running matrix comparison for...Hi,
currently the ``ElementwiseOperatorPetscTest`` fails, both in production and debug mode, on the master in the P2P1StokesCC sub-test. Reported errors are:
- DEBUG mode
```[0][INFO ]------(0.508 sec) Running matrix comparison for: P2P1StokesCC
[0][INFO ]------(0.508 sec) -------------------------------------------------
[0][ERROR ]------(0.632 sec) Assertion failed!
[0] File: /home/mohr/Research/Geophysik/terraneo/Redesign/HyTeG/src/hyteg/petsc/PETScSparseMatrixProxy.hpp:44
[0] Expression: rows.size() == cols.size()
[0] Values: rows.size() = 6
[0] cols.size() = 3
```
- PRODUCTION mode
```[0][INFO ]------(0.216 sec) -------------------------------------------------
[0][INFO ]------(0.216 sec) Running matrix comparison for: P2P1StokesCC
[0][INFO ]------(0.216 sec) -------------------------------------------------
[0][ERROR ]------(0.307 sec) Assertion failed!
[0] File: /home/mohr/Research/Geophysik/terraneo/Redesign/HyTeG/tests/hyteg/operators/ElementwiseOperatorPetscTest.cpp:127
[0] Expression: normFrb <= limits[0]
[0] Values: normFrb = 9.66001926614161843e-01
[0] limits[0] = 1.99999999999999996e-12
```
Cheers
MarcusMarcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/131ElementwiseOperatorPetscTest runs wrong test2020-09-04T18:20:06+02:00Marcus MohrElementwiseOperatorPetscTest runs wrong testHi,
I just discovered why the ```ElementwiseOperatorPetscTest``` fails, when I invoke it manually, but runs through in the pipeline. Reason is that in the testsuite it actually runs ```PetscTest``` due to an error in [CMakeLists.txt](ht...Hi,
I just discovered why the ```ElementwiseOperatorPetscTest``` fails, when I invoke it manually, but runs through in the pipeline. Reason is that in the testsuite it actually runs ```PetscTest``` due to an error in [CMakeLists.txt](https://i10git.cs.fau.de/hyteg/hyteg/-/blob/18594f8a6e038ac24656767fdaa608caeea3e1c5/tests/hyteg/CMakeLists.txt#L577).
Going to fix this now.
Cheers
MarcusMarcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/104Convergence test for P1Transport operator required2020-02-24T15:58:24+01:00Nils KohlConvergence test for P1Transport operator requiredhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/96Black-Box Matrix Output2020-10-07T14:04:44+02:00Nils KohlBlack-Box Matrix OutputFor debugging purposes it would be nice to have some sort of black-box matrix output (to PETSc / Matlab) for arbitrary matrices - especially if they are assembled on-the-fly or are built with inverse matrices (e.g. Schur-complement).
Th...For debugging purposes it would be nice to have some sort of black-box matrix output (to PETSc / Matlab) for arbitrary matrices - especially if they are assembled on-the-fly or are built with inverse matrices (e.g. Schur-complement).
Therefore we could repeatedly apply the matrix to unit vectors to emulate a multiplication with the identity.
The resulting vectors can then be collected and written into multiple files or (probably better) be assembled into
a PETSc data structure (and then written using the available PETSc -> Matlab functions).Daniel DrzisgaDaniel Drzisgahttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/69Blending tests take too long2018-04-28T15:23:14+02:00Nils KohlBlending tests take too longUsing a debug build the blending tests take far(!) more than 10 seconds for each test case.
This should be reduced by a factor of 10 at least in my opinion.
Otherwise the build -> test -> refactor pipeline takes too long.
During CI as w...Using a debug build the blending tests take far(!) more than 10 seconds for each test case.
This should be reduced by a factor of 10 at least in my opinion.
Otherwise the build -> test -> refactor pipeline takes too long.
During CI as well as during developmentDaniel DrzisgaDaniel Drzisgahttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/67gcc_6_petsc fails2018-05-04T18:58:42+02:00Marcus Mohrgcc_6_petsc failsHi,
does anybody know why the gcc_6_petsc job fails, see e.g. [job #151621](https://i10git.cs.fau.de/terraneo/tinyhhg/-/jobs/151621)? I tried to have a look at this today, but after a lot of fiddling to get cmake to work with our Debian...Hi,
does anybody know why the gcc_6_petsc job fails, see e.g. [job #151621](https://i10git.cs.fau.de/terraneo/tinyhhg/-/jobs/151621)? I tried to have a look at this today, but after a lot of fiddling to get cmake to work with our Debian/PETSc installation I had to note that version 3.4.2 is way too old to compile tinyHHG with.
Cheers
Marcushttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/38Find good way to check apps2018-02-13T16:25:40+01:00Dominik Thoennesdominik.thoennes@fau.deFind good way to check appsCurrently the apps can be tested in release build mode but there is not a good metric yet to check if they fail or succeedCurrently the apps can be tested in release build mode but there is not a good metric yet to check if they fail or succeedhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/26P1 and Bubble Indexing Function2017-08-20T18:07:39+02:00Dominik Thoennesdominik.thoennes@fau.deP1 and Bubble Indexing FunctionWrite indexing functions and iterator for P1 and Bubble.
* [x] Test for P1 indexing
* [ ] Test for P1 iterator
* [ ] Test for Bubble indexing
* [x] Test for Bubble iterator
* [x] P1 indexing for cells
* [x] remove P1Bubble indexing...Write indexing functions and iterator for P1 and Bubble.
* [x] Test for P1 indexing
* [ ] Test for P1 iterator
* [ ] Test for Bubble indexing
* [x] Test for Bubble iterator
* [x] P1 indexing for cells
* [x] remove P1Bubble indexing functions since we dont use p1bubble function space anymoreDominik Thoennesdominik.thoennes@fau.deDominik Thoennesdominik.thoennes@fau.dehttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/18Implement PackInfo for P1 and P1Bubble2017-08-20T18:08:01+02:00Nils KohlImplement PackInfo for P1 and P1BubbleUsing an abstract base class (PackInfo) we can separate the communication layer from the data types that are communicated among the primitives.
Subclasses of PackInfo (e.g. P1ToP1PackInfo or P1BubbleToP1BubblePackInfo) need to be implem...Using an abstract base class (PackInfo) we can separate the communication layer from the data types that are communicated among the primitives.
Subclasses of PackInfo (e.g. P1ToP1PackInfo or P1BubbleToP1BubblePackInfo) need to be implemented in order to successfully pack and unpack the respective data.Dominik Thoennesdominik.thoennes@fau.deDominik Thoennesdominik.thoennes@fau.de