From 7b345de5a76cf6e82d41bc03b747d267dd8ef4c2 Mon Sep 17 00:00:00 2001 From: mattijs Date: Wed, 3 Apr 2013 16:34:45 +0100 Subject: [PATCH] ENH: GAMGInterface: additional checking --- .../interfaces/GAMGInterface/GAMGInterface.C | 21 +++++++++++++++++++ .../interfaces/GAMGInterface/GAMGInterface.H | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/GAMGInterface/GAMGInterface.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/GAMGInterface/GAMGInterface.C index 85cf1d722a..5e4065fcf3 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/GAMGInterface/GAMGInterface.C +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/GAMGInterface/GAMGInterface.C @@ -83,6 +83,27 @@ Foam::tmp Foam::GAMGInterface::agglomerateCoeffs tmp tcoarseCoeffs(new scalarField(size(), 0.0)); scalarField& coarseCoeffs = tcoarseCoeffs(); + if (fineCoeffs.size() != faceRestrictAddressing_.size()) + { + FatalErrorIn + ( + "GAMGInterface::agglomerateCoeffs(const scalarField&) const" + ) << "Size of coefficients " << fineCoeffs.size() + << " does not correspond to the size of the restriction " + << faceRestrictAddressing_.size() + << abort(FatalError); + } + if (debug && max(faceRestrictAddressing_) > size()) + { + FatalErrorIn + ( + "GAMGInterface::agglomerateCoeffs(const scalarField&) const" + ) << "Face restrict addressing addresses outside of coarse interface" + << " size. Max addressing:" << max(faceRestrictAddressing_) + << " coarse size:" << size() + << abort(FatalError); + } + forAll(faceRestrictAddressing_, ffi) { coarseCoeffs[faceRestrictAddressing_[ffi]] += fineCoeffs[ffi]; diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/GAMGInterface/GAMGInterface.H b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/GAMGInterface/GAMGInterface.H index 94c8d75472..3876ae06d3 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/GAMGInterface/GAMGInterface.H +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/GAMGInterface/GAMGInterface.H @@ -224,7 +224,7 @@ public: return faceCells_; } - //- Return face restrict addressing + //- Return (local)face restrict addressing virtual const labelList& faceRestrictAddressing() const { return faceRestrictAddressing_;