- Sep 19, 2023
-
-
Patrick Jaap authored
-
Patrick Jaap authored
-
Patrick Jaap authored
-
Patrick Jaap authored
Instead of calling the BCCSInitializer, we directly parse the matrix into an UMFPACK compatible form. This allows us to use almost every blocked matrix structure, such as MultiTypeBlockedMatrix. Moreover, the 'setMatrix' method is extended by a second bitVector argument to handle exclusion of indices. The old 'setSubMatrix' method is kept. The new interface is inspired by the neighbored 'Cholmod' class. The additional routines on the vector data are linear in time and have no measurable influence on the run time of UMFPACK.
-
Patrick Jaap authored
-
- Jun 21, 2023
-
-
Carsten Gräser authored
So far doxygen did not process this file since `HAVE_SUITESPARSE_CHOLMOD` was missing. This also adds the missing editor hints.
-
- May 25, 2023
-
-
-
Oliver Sander authored
CHOLMOD supports this, it just wasn't exposed in the interface. It is needed for large problems.
-
- Apr 11, 2023
-
-
Carsten Gräser authored
-
Carsten Gräser authored
Using `std::uint_least32_t` instead of `std::size_t` halves the required memory and thus also improves performance. Notice that `std::uint32_t` is optional and `std::uint_fast32_t` is intended to be fast in terms of computations and may have 64 bits. Here we're interested in reducing memory and thus bandwith. Hence `std::uint_least32_t`, which is the smallest sufficient type is most appropriate.
-
Carsten Gräser authored
This replaces the `std::set` used to store the column indices for each rows by a `std::vector` based implementation. The `std::vector` is kept sorted when inserting such that we can avoid duplicates. This can improve assembly time of matrices significantly (if `MatrixIndexSet` is used). In the worst case (insertion in reverse) this may lead to O(n^2) complexity when inserting n entries in a row compared to O(n log(n)) for `std::set`. However, the sorted `std::vector` implementation still wins for relatively large n. To avoid the worst case complexity when using very dense rows, the implementation is switched to `std::set` if the size exceeds the threshold value `maxVectorSize`. The default `maxVectorSize=2048` was selected based on benchmark results.
-
- Apr 04, 2023
-
-
Christoph Grüninger authored
The CMAKE_GUARD for multiple guarding variables requires a porper boolean statement.
-
- Mar 16, 2023
-
-
Christoph Grüninger authored
-
Christoph Grüninger authored
-
- Mar 07, 2023
-
-
Simon Praetorius authored
-
Simon Praetorius authored
-
- Feb 06, 2023
-
-
use using and SizeType to size_type to adhere to istl conventions
-
- Jan 16, 2023
-
-
Carsten Gräser authored
Notice that this also fixes an incorrect `MultiTypeBlockMatrix::field_type` in a special setting: If you have a nested matrix `MultiTypeBlockMatrix< MultiTypeBlockVector<MultiTypeBlockMatrix<...>>>`, the outer `MultiTypeBlockMatrix::field_type` forwards to the `MultiTypeBlockVector::field_type` which forwards to the inner `FieldTraits<MultiTypeBlockMatrix>::field_type`.
-
- Jan 08, 2023
-
-
Oliver Sander authored
And fix all spelling errors that codespell currently finds.
-
- Jan 07, 2023
-
-
Ansgar Burchardt authored
-
- Dec 12, 2022
-
-
Carsten Gräser authored
... because we also specialize `std::tuple_element` and it derives from `std::tuple` after all.
-
- Dec 08, 2022
-
-
Markus Blatt authored
Corner case that sometimes happens and produced a segmentation fault.
-
Markus Blatt authored
-
- Dec 02, 2022
-
-
Christoph Grüninger authored
-
Christoph Grüninger authored
-
Christoph Grüninger authored
-
Christoph Grüninger authored
-
Christoph Grüninger authored
-
Christoph Grüninger authored
-
- Nov 18, 2022
-
-
Christoph Grüninger authored
Unused variable warning indicated this oversight
-
- Oct 06, 2022
-
-
Simon Praetorius authored
-
- Sep 30, 2022
-
-
Ansgar Burchardt authored
See https://reuse.software/ for a description.
-
- Sep 29, 2022
-
-
José Eduardo Chiarelli Bueno Filho authored
-
- Jun 22, 2022
-
-
Santiago Ospina De Los Ríos authored
Nested sparse matrices were not allowed to have empty rows/cols. By choosing the minimum offset of other blocks, we get an educated guess for these cases.
-
- Jun 11, 2022
-
-
Timo Koch authored
-
- May 02, 2022
-
-
Santiago Ospina De Los Ríos authored
Before this commit, the pattern was deallocated with the wrong size that created a huge memory leak.
-
- Apr 12, 2022
-
-
Markus Blatt authored
The current behavior (allocating each row separately ) is rather surprising and unnecessary as the matrix market file stores the number of nonzeros anyway. Hence we now pass this number to BCRSMatrix::SetSize to get the most efficient behavior
-
- Feb 28, 2022
-
-
Nils-Arne Dreier authored
-
- Feb 22, 2022
-
-
Simon Praetorius authored
-
- Feb 16, 2022
-
-
Simon Praetorius authored
-