From 20eab963cb56d9e5ebee3164d151e666a5b53f36 Mon Sep 17 00:00:00 2001
From: Henry <Henry>
Date: Sun, 3 May 2015 18:11:25 +0100
Subject: [PATCH] GAMG solver: Set the following defaults:    
 cacheAgglomeration true;     agglomerator    faceAreaPair;    
 nCellsInCoarsestLevel 10;     mergeLevels     1;

---
 .../GAMGAgglomeration/GAMGAgglomeration.C     | 20 ++++++++++++++-----
 .../pairGAMGAgglomeration.C                   |  4 ++--
 .../lduMatrix/solvers/GAMG/GAMGSolver.C       |  5 ++---
 3 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
index 5d9c5be4b29..6f5e4649afd 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,6 +29,7 @@ License
 #include "Time.H"
 #include "GAMGInterface.H"
 #include "GAMGProcAgglomeration.H"
+#include "pairGAMGAgglomeration.H"
 #include "IOmanip.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@@ -229,7 +230,7 @@ Foam::GAMGAgglomeration::GAMGAgglomeration
 
     nCellsInCoarsestLevel_
     (
-        readLabel(controlDict.lookup("nCellsInCoarsestLevel"))
+        controlDict.lookupOrDefault<label>("nCellsInCoarsestLevel", 10)
     ),
     meshInterfaces_(mesh.interfaces()),
     procAgglomeratorPtr_
@@ -284,7 +285,10 @@ const Foam::GAMGAgglomeration& Foam::GAMGAgglomeration::New
         )
     )
     {
-        const word agglomeratorType(controlDict.lookup("agglomerator"));
+        const word agglomeratorType
+        (
+            controlDict.lookupOrDefault<word>("agglomerator", "faceAreaPair")
+        );
 
         const_cast<Time&>(mesh.thisDb().time()).libs().open
         (
@@ -339,7 +343,10 @@ const Foam::GAMGAgglomeration& Foam::GAMGAgglomeration::New
         )
     )
     {
-        const word agglomeratorType(controlDict.lookup("agglomerator"));
+        const word agglomeratorType
+        (
+            controlDict.lookupOrDefault<word>("agglomerator", "faceAreaPair")
+        );
 
         const_cast<Time&>(mesh.thisDb().time()).libs().open
         (
@@ -382,7 +389,10 @@ Foam::autoPtr<Foam::GAMGAgglomeration> Foam::GAMGAgglomeration::New
     const dictionary& controlDict
 )
 {
-    const word agglomeratorType(controlDict.lookup("agglomerator"));
+    const word agglomeratorType
+    (
+        controlDict.lookupOrDefault<word>("agglomerator", "faceAreaPair")
+    );
 
     const_cast<Time&>(mesh.thisDb().time()).libs().open
     (
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/pairGAMGAgglomeration/pairGAMGAgglomeration.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/pairGAMGAgglomeration/pairGAMGAgglomeration.C
index 31359e692c3..dfc49bf177f 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/pairGAMGAgglomeration/pairGAMGAgglomeration.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/pairGAMGAgglomeration/pairGAMGAgglomeration.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,7 +43,7 @@ Foam::pairGAMGAgglomeration::pairGAMGAgglomeration
 )
 :
     GAMGAgglomeration(mesh, controlDict),
-    mergeLevels_(readLabel(controlDict.lookup("mergeLevels")))
+    mergeLevels_(controlDict.lookupOrDefault<label>("mergeLevels", 1))
 {}
 
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.C
index b0ab7feb97a..6538689b267 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ Foam::GAMGSolver::GAMGSolver
 
     // Default values for all controls
     // which may be overridden by those in controlDict
-    cacheAgglomeration_(false),
+    cacheAgglomeration_(true),
     nPreSweeps_(0),
     preSweepsLevelMultiplier_(1),
     maxPreSweeps_(4),
@@ -313,7 +313,6 @@ void Foam::GAMGSolver::readControls()
 {
     lduMatrix::solver::readControls();
 
-    // we could also consider supplying defaults here too
     controlDict_.readIfPresent("cacheAgglomeration", cacheAgglomeration_);
     controlDict_.readIfPresent("nPreSweeps", nPreSweeps_);
     controlDict_.readIfPresent
-- 
GitLab