- Aug 11, 2020
-
-
René Heß authored
This is a workaround for a bug that showed up after gitlab migration. See issue infrastructure/issues0#62 for further discussion.
-
- Jul 17, 2020
-
-
Oliver Sander authored
Merge branch 'fix-eigenvectors-some-more' into 'master' ref:core/dune-common\> This merge request fixes three bugs in the eigenvalue/eigenvector code for 2x2 and 3x3 symmetric matrices. Surprisingly, all three bugs can be triggered by using particular diagonal matrices. See merge request [core/dune-common!839] [core/dune-common!839]: gitlab.dune-project.org/core/dune-common/merge_requests/839
-
Oliver Sander authored
Add a test for the 2x2 zero matrix as well, even though that appears to work properly.
-
Oliver Sander authored
The code for eigenvalues of diagonal 3x3 matrices didn't take the matrix scaling properly into account. Surprising how difficult it is to compute eigenvalues of diagonal matrices...
-
Oliver Sander authored
The eigenvector code used to fail for certain seemingly simple diagonal 2x2 matrices. The reason was that the code tried to avoid certain all-zero matrix columns by testing whether the norm is (close to) zero. That proved to be surprisingly unstable. The fix here is simple: Pick the column with the larger column norm (we know they are not both zero). Also add a test case to make sure the bug is gone.
-
- Jul 10, 2020
-
-
Simon Praetorius authored
Merge branch 'feature/find_ptscotch' into 'master' ref:core/dune-common\> ### Summary This is a small improvement of the existing FindPTScotch cmake module. It allows to search only for Scotch or PTScotch and thus it is possible to use Scotch without PTScotch or if no MPI is available. See merge request [core/dune-common!831] [core/dune-common!831]: gitlab.dune-project.org/core/dune-common/merge_requests/831
-
Simon Praetorius authored
-
Oliver Sander authored
Merge branch 'eigenvalues-of-singular-matrices' into 'master' ref:core/dune-common\> The eigenvector algorithm for symmetric FieldMatrices was buggy, it does not handle singular matrices well. Add a test and fix the bug. See merge request [core/dune-common!836] [core/dune-common!836]: gitlab.dune-project.org/core/dune-common/merge_requests/836
-
Oliver Sander authored
Plus, add a test that eigenvalues and eigenvectors are not NaN. The previous test would not actually catch this, because "NaN > some_number" is always false.
-
- Jul 09, 2020
-
-
Oliver Sander authored
The eigenvectors were correct, but their ordering didn't match the one of the eigenvalues.
-
Oliver Sander authored
And document the algorithm while we are there.
-
- Jul 07, 2020
-
-
Oliver Sander authored
Merge branch 'feature/sparseRange' into 'master' ref:core/dune-common\> This helper allows to use for-loops with structured bindings for sparse ranges R whose iterators it provide an it->index() method, like this for(auto&& [A_i, i] : sparseRange(R)) doSomethingWithValueAndIndex(A_i, i); This also adds a test and fixes the placement of the range-utilities in the appropriate doxygen group to make them easier to discover. See merge request [core/dune-common!834] [core/dune-common!834]: gitlab.dune-project.org/core/dune-common/merge_requests/834
-
- Jun 30, 2020
-
-
Carsten Gräser authored
This helper allows to use `for`-loops with structured bindings for sparse ranges `R` whose iterators `it` provide an `it->index()` method, like this ```cpp for(auto&& [A_i, i] : sparseRange(R)) doSomethingWithValueAndIndex(A_i, i); ```
-
Carsten Gräser authored
Merge branch 'feature/extend-transformedrangeview' into 'master' ref:core/dune-common\> This extends TransformedRangeView by also allowing to apply a transformation to the iterator directly. While the (existing) default mechanism is to use f(*it) where f is the transformation and it an iterator of the wrapped range, the new iterator based transformation uses f(it) instead. This allows to incorporate additional information from the iterator in the transformation. Using the new functionality one can e.g. easily implement structured bindings support for sparse ranges using template<class Range> auto sparseRange(Range&& range) { return Dune::transformedRangeView(std::forward<Range>(range), Dune::taggedCallback<Dune::IteratorTransformationTag>([](auto&& it) { return std::tuple<decltype(*it), decltype(it.index())>(*it, it.index()); })); } ... for(auto&& [entry,col] : sparseRange(matrix[row])) y[row] += entry*x[col]; Some more implementation details: - This adds the TaggedCallback<Tag,F> helper class and the corresponding generator function taggedCallback<Tag>(f) for tagging a callback. Using this mechanism we can provide additional information on the callback. - If the TransformedRangeView is provided with a callback of type TaggedCallback<IteratorTransformation,F>, then it iterator based transformation is used. See merge request [core/dune-common!781] [core/dune-common!781]: gitlab.dune-project.org/core/dune-common/merge_requests/781
-
- Jun 29, 2020
-
-
Andreas Dedner authored
Merge branch 'feature/python-force-library-so-suffix-for-macos' into 'master' ref:core/dune-common\> The issue is discussed in this old thread on stackoverflow: [https://stackoverflow.com/questions/2488016/how-to-make-python-load-dylib-on-osx] Somehow Python refuses to import dynamic libraries with the suffix .dylib (I get an import error) which is the common suffix for shared libs in macOS. Telling CMake to use .so instead as suggested in the stackoverflow thread works for me. The Python libs on for my Python 3.7 from homebrew all have .so endings just like in the stackoverflow answer. Fixes [#201] See merge request [core/dune-common!799] [https://stackoverflow.com/questions/2488016/how-to-make-python-load-dylib-on-osx]: https://stackoverflow.com/questions/2488016/how-to-make-python-load-dylib-on-osx [#201]: gitlab.dune-project.org/NoneNone/issues/201 [core/dune-common!799]: gitlab.dune-project.org/core/dune-common/merge_requests/799 Closes #201
-
Simon Praetorius authored
Merge branch 'issue/add_suitesparse_flags' into 'master' ref:core/dune-common\> ### Summary Quickfix of AddXXXFlags files with target_compile_definitions See merge request [core/dune-common!833] [core/dune-common!833]: gitlab.dune-project.org/core/dune-common/merge_requests/833
-
Simon Praetorius authored
-
Simon Praetorius authored
Merge branch 'feature/ptscotch_test' into 'master' ref:core/dune-common\> ### Summary This MR adds a test scotchtest.cc to check that scotch is found and works correctly. The actual scotch test just runs a few standard functions to create a graph and check it validity. The test is added to test the cmake find-package FindPTScotch.cmake and its add_dune_ptscotch_flags macro. See merge request [core/dune-common!829] [core/dune-common!829]: gitlab.dune-project.org/core/dune-common/merge_requests/829
-
Simon Praetorius authored
-
- Jun 28, 2020
-
-
Andreas Dedner authored
Merge branch 'bugfix/issueWithMultipleTypesInGenerator' into 'master' See merge request [core/dune-common!832] [core/dune-common!832]: Nonecore/dune-common/merge_requests/832
-
Andreas Dedner authored
-
- Jun 27, 2020
-
-
Simon Praetorius authored
Merge branch 'feature/find_ptscotch' into 'master' ref:core/dune-common\> ### Summary Quick-Fix of a typo in the cmake variable name See merge request [core/dune-common!830] [core/dune-common!830]: gitlab.dune-project.org/core/dune-common/merge_requests/830
-
Simon Praetorius authored
-
Simon Praetorius authored
Merge branch 'feature/find_ptscotch' into 'master' ref:core/dune-common\> ### Summary This MR adds imported-targets to the FindPTScotch.cmake module, following modern cmake guidelines. ### Details Instead of exporting include directories and libraries as variables, the find modules exports an imported target that contains all the necessary information to include and link PTScotch. The find module introduces two imported targets: PTScotch::Scotch for the sequential graph partitioning library and PTScotch::PTScotch for the parallel library that additionally depends on MPI. ### ToDo - [x] Add version detection for (PT)Scotch library See merge request [core/dune-common!820] [core/dune-common!820]: gitlab.dune-project.org/core/dune-common/merge_requests/820
-
Simon Praetorius authored
-
Simon Praetorius authored
Merge branch 'feature/find_suitesparse' into 'master' ref:core/dune-common\> ### Summary This MR adds imported-targets to the FindSuiteSparse.cmake module, following modern cmake guidelines. ### Details Instead of exporting include directories and libraries as variables, the find modules exports an imported target that contains all the necessary information to include and link SuiteSparse libraries. The module allows to search for various SuiteSparse components, like UMFPACK or SPQR, and introduces an imported target for each of them in the form: SuiteSparse::<component>. Additionally the combined imported target SuiteSparse::SuiteSparse is defined to link against all found components. Difference to old FindSuiteSparse module: It searches for all possible components and creates corresponding component targets. The collective target SuiteSparse::SuiteSparse then only contains the requested components. See merge request [core/dune-common!823] [core/dune-common!823]: gitlab.dune-project.org/core/dune-common/merge_requests/823
-
- Jun 26, 2020
-
-
-
Timo Koch authored
-
- Jun 23, 2020
-
-
Carsten Gräser authored
This extends `TransformedRangeView` by also allowing to apply a transformation to the iterator directly. While the (existing) default mechanism is to use `f(*it)` where `f` is the transformation and `it` an iterator of the wrapped range, the new iterator based transformation uses `f(it)` instead. This allows to incorporate additional information from the iterator in the transformation. Using the new functionality one can e.g. easily implement structured bindings support for sparse ranges using ```cpp template<class Range> auto sparseRange(Range&& range) { return Dune::iteratorTransformedRangeView(std::forward<Range>(range), [](auto&& it) { return std::tuple<decltype(*it), decltype(it.index())>(*it, it.index()); }); } ... for(auto&& [entry,col] : sparseRange(matrix[row])) y[row] += entry*x[col]; ``` Some more implementation details: * `TransformedRangeView` has a new template parameter for selecting value- or iterator-based transformation. Value-based is default. * A new helper function `iteratorTransformedRangeView()` allows to generate iterator based transformations.
-
- May 31, 2020
-
-
Simon Praetorius authored
Merge branch 'feature/find_gmp' into 'master' ref:core/dune-common\> ### Summary This MR adds imported-targets to the FindGMP.cmake module, following modern cmake guidelines. ### Details Instead of exporting include directories and libraries as variables, the find modules exports an imported target that contains all the necessary information to include and link GMP. Two such imported targets are provided: GMP::gmp and GMP::gmpxx for the C and C++ library, respectively. ### Acknowledgements This find-module is developed together with @lukas.riedel See merge request [core/dune-common!818] [core/dune-common!818]: gitlab.dune-project.org/core/dune-common/merge_requests/818
-
Simon Praetorius authored
Merge branch 'feature/find_quadmath' into 'master' ref:core/dune-common\> ### Summary This MR adds imported-targets to the FindQuadMath.cmake module, following modern cmake guidelines. ### Details Instead of exporting include directories and libraries as variables, the find modules exports an imported target that contains all the necessary information to include and link QuadMath. The imported target is named: QuadMath::QuadMath. ### Acknowledgements This find-module is developed together with @lukas.riedel See merge request [core/dune-common!819] [core/dune-common!819]: gitlab.dune-project.org/core/dune-common/merge_requests/819
-
Simon Praetorius authored
Move HAVE_GMP and dune_register_package_flags to AddGMPFlags
-
Simon Praetorius authored
Link GMPxx library to C library GMP
-
Simon Praetorius authored
-
Simon Praetorius authored
Move HAVE_QUADMATH and dune_register_package_flags to AddQuadMathFlags
-
Simon Praetorius authored
-
- May 29, 2020
-
-
Simon Praetorius authored
-
Simon Praetorius authored
-
- May 28, 2020
-
-
Ansgar Burchardt authored
Merge branch 'cleanup/fix-deprecation-warning-lcm-gcd' into 'master' See merge request [core/dune-common!826] [core/dune-common!826]: Nonecore/dune-common/merge_requests/826
-
Timo Koch authored
-