- Jul 07, 2015
-
-
Oliver Sander authored
-
- Jul 01, 2015
-
-
Jö Fahlke authored
namespace. This namespace was probably meant to mark implementation details. However it led to violations of the ODR (one definition rule), and to warnings about defined-but-unused functions (see below). To illustrate the problem consider the function template Dune::readMatrixMarket: template<typename T, typename A, int brows, int bcols> void readMatrixMarket(Dune::BCRSMatrix<Dune::FieldMatrix<T,brows,bcols>,A>& matrix, std::istream& istr) { // ... readSparseEntries(matrix, istr, entries, header, NumericWrapper<T>()); } The ODR states (§3.2/5): There can be more than one definition of a [...] non-static function template (14.5.6) [...] in a program provided that each definition appears in a different translation unit, and provided the definitions satisfy the following requirements. Given such an entity named D defined in more than one translation unit, then - each definition of D shall consist of the same sequence of tokens; and - in each definition of D, corresponding names, looked up according to 3.4, shall refer to an entity defined within the definition of D, or shall refer to the same entity, after overload resolution (13.3) and after matching of partial template specialization (14.8.3), except that a name can refer to a const object with internal or no linkage if the object has the same literal type in all definitions of D, and the object is initialized with a constant expression (5.19), and the value (but not the address) of the object is used, and the object has the same value in all definitions of D; and [...] This is violated by e.g. both readSparseEntries, which is defined in the anonymous namespace. Since it is not defined within readMatrixMarket, it must refer to the same entity in all translation units. However, its name is effectively Dune::<unique>::readSparseEntries, where <unique> is unique to each translation unit, and thus it effectively refers to a different entity in each translation unit, and the program is ill-formed as soon as move than one translation unit does #include <dune/istl/matrixmarket.hh>. The warnings by g++-4.9 looked like this: ====================================================================== g++ -std=c++11 -DHAVE_CONFIG_H -I. -I../../.. -pthread -I/home/joe/Projekte/pdelab-2.4/dune-common -I/home/joe/Projekte/pdelab-2.4/dune-common -I../../.. -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -pthread -DMPIPP_H -DENABLE_MPI=1 -g -O3 -Wall -MT matrixmarkettest-matrixmarkettest.o -MD -MP -MF .deps/matrixmarkettest-matrixmarkettest.Tpo -c -o matrixmarkettest-matrixmarkettest.o `test -f 'matrixmarkettest.cc' || echo './'`matrixmarkettest.cc [...] In file included from matrixmarkettest.cc:11:0: ../../../dune/istl/matrixmarket.hh:501:10: warning: ‘void Dune::{anonymous}::readNextLine(std::istream&, std::ostringstream&, Dune::{anonymous}::LineType&)’ defined but not used [-Wunused-function] void readNextLine(std::istream& file, std::ostringstream&, LineType& type) ^ In file included from matrixmarkettest.cc:11:0: ../../../dune/istl/matrixmarket.hh:601:19: warning: ‘std::istream& Dune::{anonymous}::operator>>(std::istream&, Dune::{anonymous}::NumericWrapper<Dune::{anonymous}::PatternDummy>&)’ defined but not used [-Wunused-function] std::istream& operator>>(std::istream& is, NumericWrapper<PatternDummy>& num) ^ ======================================================================
-
Jö Fahlke authored
The function is in an anonymous namespace, and it is used nowhere inside dune-istl.
-
Jö Fahlke authored
-
- Jun 17, 2015
-
-
Andreas Nüßing authored
The standard states (8.3.6/4) that adding default arguments in later function declarations are only valid for non-template functions. In matrixmarket.hh, the function template loadMatrixMarket is declared and a default argument for the last parameter is provided. In owneroverlapcopy.hh, OwnerOverlapCopyCommunication contains a friend declaration of loadMatrixMarket without the default parameter. If now owneroverlapcopy.hh is included before matrixmarket.hh, the friend declaration is the first declaration and the default parameter in matrixmarket.hh is invalid. By including matrixmarket.hh in owneroverlapcopy.hh, we make sure that the declaration which provides the default argument is always the first one.
-
- Jun 11, 2015
-
-
Markus Blatt authored
This test actually does test the parallel functionality that is now contained in dune-common for quite some time. While it is using BlockVector this is not needed by the test. It works with any container supporting operator[]. Therefore this commit gets rid of BlockVector and uses std::vector instead. This will allow us to move the test to dune-core subsequently.
-
Markus Blatt authored
Previously, we assumed that if a_{ij} is stored in the sparse matrix then a_{ji} must be stored also and used mat[i][j] to access. If the entry was not stored then an exception somewhere in basearray.hh was thrown. Unfortunately knowing the cause for this exception is insider knowledge, seldomly leaked ;). In addition there is now reason to throw an expection here. With this commit we the find method on the row to search for the entry a_{ji}. If it is not present we simply treat it as being zero.
-
- Jun 01, 2015
-
-
Christoph Grüninger authored
-
- May 25, 2015
-
-
Christoph Grüninger authored
-
Christoph Grüninger authored
Fixes FS#FS#1649.
-
- May 14, 2015
-
-
Andreas Dedner authored
-
- May 12, 2015
-
-
Andreas Dedner authored
-
- May 07, 2015
-
-
Dominic Kempf authored
-
- Apr 30, 2015
-
-
Andreas Dedner authored
extended the amgtest to also use field_type = complex by switching the definition of XREAL
-
Christian Engwer authored
-
Christian Engwer authored
-
- Apr 28, 2015
-
-
Christian Engwer authored
instead of just returning the real part, we return csgn(v)*abs(v). For real values this is equivalent to returning v.
-
Christian Engwer authored
a) add the appropriate typedefs for real_type b) update the norm implementations to return real_type c) change all variables assigned from norm_(...) to real_type
-
Christian Engwer authored
we have to retrieve an int which is stored in field_type. If the field_type is std::complex, we have to access the real-component, if it is double/float, we don't have to do anything special. We use std::real(.) to get the correct real value. This function (with its appropriate overloads) is available from c++11 on, but this part was already supported by the ancient g++ version we supprt ;-)
-
- Apr 13, 2015
-
-
Oliver Sander authored
-
Oliver Sander authored
-
- Apr 07, 2015
-
-
Andreas Nüßing authored
on fedora 21, the default subdirectory for SuperLU includes is called "SuperLU".
-
- Mar 24, 2015
-
-
Updated how METIS_PartGraphRecursive is called in METIS version 5. In the new parameters NULL value is used where possible. Only one new parameter could not be set to NULL, it is the "ncon" (second argument). In the manual it says: "ncon: The number of balancing constraints. It should be at least 1." so 1 is used as its value. Also options with the new layout are passed in METIS_PartGraphRecursive initialized with the default values(default values also used in the current code: options[0]=0). Only one option was added manually: the METIS_OPTION_NUMBERING = numflag which is the same numflag parameter passed in the old version of METIS_PartGraphRecursive function. Signed-off-by:
Christoph Grüninger <gruenich@dune-project.org>
-
- Mar 10, 2015
-
-
- Feb 15, 2015
-
-
Dominic Kempf authored
-
- Jan 23, 2015
-
-
Oliver Sander authored
-
- Jan 05, 2015
-
-
Oliver Sander authored
On request of Markus Blatt. Supposedly there have been problems with and/or on older compilers.
-
- Jan 04, 2015
-
-
Oliver Sander authored
-
Oliver Sander authored
-
- Dec 22, 2014
-
-
Christoph Grüninger authored
-
- Dec 18, 2014
-
-
Steffen Müthing authored
When DUNE_ISTL_WITH_CHECKING is enabled, the BCRSMatrix throws an exception when trying to access a row that has no columns. This creates a problem in PDELab when using nested BCRSMatrices (as some people do for operator splitting in PDELab), where an off-diagonal BCRSMatrix block might be completely empty (i.e. have a correctly set up structure, but every row in the off-diagonal BCRSMatrix is empty. If the PDELab assembler then attempts to set a Dirichlet constraint, it has to access the row to set all columns in that row to zero, but the check in operator[] prevents it from doing so. So this patch just drops that check.
-
- Dec 16, 2014
-
-
Christoph Grüninger authored
-
- Dec 15, 2014
-
-
Steffen Müthing authored
This patch removes the assumption that the field_type and / or real_type can always be implicitly converted to double and can be implicitly constructed from an int (in constructs like field_type d = 0;). This patch is required for compatibility with the FLOP counter in PDELab.
-
- Dec 08, 2014
-
-
Christoph Grüninger authored
It belongs to dune-common's config.h.cmake. Otherwise it cannot be shared with other modules using ParMETIS.
-
- Nov 29, 2014
-
-
Christoph Grüninger authored
It should be std::endl. Courtesy of GCC 5-svn, it refuses to compile these.
-
- Nov 28, 2014
-
-
Carsten Gräser authored
While c++11 allows a trailing comma in enums, we should avoid this because it provokes gcc-4.4 warnings.
-
Markus Blatt authored
-
-
- Nov 21, 2014
-
-
Christoph Grüninger authored
The check gets removed from dune-common, thus ISTL has to call it itself.
-
- Oct 30, 2014
-
-
Tobias Malkmus authored
-