Commit Graph

21 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
f9c1fbcbe6 Make sure we (re-)throw MatrixBlockError also in the serial case. 2018-04-24 14:32:43 +02:00
Markus Blatt
a82598abe7 include ErrorMacros.hpp to safely make use of OPM_THROW (and not abort) 2018-02-07 16:56:12 +01:00
Markus Blatt
6bcfce1733 Prevent problems to due oversight in parallel AMG.
Currently we run into issues with the parallel AMG if
redistribution happened on the coarsest level. That is
not detected by AMG and it will construct smoothers on
all processors present before the redistribution. Some of
them will get OwnerOverlapCommunication objects that have
an invalid MPI communicator in them (MPI_COMM_NULL) and an
MPI_ERROR will be raised as we communicate in the constructor.

With this patch we detect this situaton and set the pointer to
OwnerOverlapCommunication to null to prevent communication. A
sanity check that the matrix has zero rows has been added.
2018-02-06 13:19:59 +01:00
Markus Blatt
28e566ba02 [bugfix] Prevent indexing an array of zero size for matrices with zero rows. 2018-02-06 12:45:13 +01:00
Markus Blatt
6d21214fa7 Switch to ParallelOverlappingILU0 for CPRPreconditioner.
This seems to have been forgotten previously. Now the code int CPRPreconditioner.hpp
uses ParallelOverlappingILU0 instead of SeqILU[0n]/BlockPreconditioner which
makes the code more slim.
2018-02-05 22:37:01 +01:00
Arne Morten Kvarving
4315665b64 changed: expose category as member for dune 2.6
the enum can only be used with a define, and that would
just be a temporary solution in any case
2018-01-22 17:23:22 +01:00
Andreas Lauser
6e7189b518 fix a few Dune 2.5 deprecation warnings 2017-10-27 17:48:26 +02:00
Arne Morten Kvarving
167147acc4 use std::remove_const instead of Dune::remove_const 2017-10-05 12:02:10 +02:00
Markus Blatt
542f181f7e Narrow down the possible Matrix types for ParallelOverlappingILU0
It now has to be a BCRSMatrix, but the block type is flexible and
needs to this way. flow_legacy uses MatrixBlock, and flow_ebos uses
FieldMatrix.
2017-07-03 13:50:21 +02:00
Markus Blatt
1bb0968283 Work around unstable matrix inversion in DUNE 2.[34]
The versions are missing the specialized code for inverting
a 3x3 matrix that makes the algorithms quite a bit more stable.
With this patch we fall back to using our own MatrixBlock that does
not suffer from this deficiency.
2017-07-03 10:20:23 +02:00
Markus Blatt
c2129185ae Store columns of ParallelOverlappingILU0::upper in descending order
This is the order used by ILU in dune-istl
2017-06-14 10:06:33 +00:00
Robert Kloefkorn
0b90b7863b [cleanup[ use Dune::Amg::SequentialInformation instead of int. 2017-06-13 15:48:01 +02:00
Robert Kloefkorn
38300a4c9b [cleanup] avoid over aggressive memory allocation in ILU. 2017-06-13 15:48:01 +02:00
Robert Kloefkorn
1fa04096c3 [bugfix] circumvent bug in dune-istl when matrix was assembled in
row_wise mode. Also cleanup of output.
2017-06-13 15:48:01 +02:00
Robert Kloefkorn
a774128fb7 [feature] Make ILU use CRS for storing lower and upper triangular matrices.
Then the backwards in memory iteration for the upper triangular can be
avoided by storing the matrix blocks in the correct order.
2017-06-13 15:48:01 +02:00
Markus Blatt
cb9d566ec2 Added braces to one-line for loop. 2015-12-02 11:29:38 +01:00
Markus Blatt
99c1b988a7 Fixed typo "consistent consistent" -> consistent. 2015-12-01 15:13:22 +01:00
Markus Blatt
4adf8487ea Uses more speaking names for template parameter and adds more documentation. 2015-12-01 14:49:07 +01:00
Markus Blatt
e05e3fa478 Removes code that was commented out. 2015-12-01 14:48:35 +01:00
Markus Blatt
0fdd27267b Adds empty lines around namespaces and comment about the end of a namespace. 2015-12-01 14:47:28 +01:00
Markus Blatt
dc1d7c526f Moved ParallelOverlappingILU0 to its own file. 2015-12-01 14:41:06 +01:00