From 329c0fb9e18c4f1b86ff9ff91b3a012051e35851 Mon Sep 17 00:00:00 2001
From: Simon Praetorius <simon.praetorius@tu-dresden.de>
Date: Thu, 27 Oct 2016 17:16:41 +0200
Subject: [PATCH] small error in petsc helpers corrected

---
 AMDiS/src/parallel/PetscSolver.cc                |  1 +
 .../src/parallel/PetscSolverGlobalBlockMatrix.cc |  1 +
 AMDiS/src/parallel/PetscSolverGlobalMatrix.cc    |  1 +
 AMDiS/src/parallel/PetscSolverSchur.cc           |  1 +
 .../src/PetscSolverCahnHilliard_DD.cc            | 16 ++++------------
 .../preconditioner/PetscSolverNavierStokes2.cc   | 10 +++-------
 extensions/preconditioner/PetscSolverPfc.cc      | 10 +++-------
 extensions/preconditioner/PetscSolverPfc_diag.cc | 16 ++++------------
 8 files changed, 18 insertions(+), 38 deletions(-)

diff --git a/AMDiS/src/parallel/PetscSolver.cc b/AMDiS/src/parallel/PetscSolver.cc
index 2847cfd8..c6ccd17a 100644
--- a/AMDiS/src/parallel/PetscSolver.cc
+++ b/AMDiS/src/parallel/PetscSolver.cc
@@ -26,6 +26,7 @@
 #include "parallel/MeshDistributor.h"
 #include "parallel/MpiHelper.h"
 #include "parallel/ParallelDofMapping.h"
+#include "parallel/PetscHelper.h"
 #include "parallel/PetscSolver.h"
 #include "parallel/StdMpi.h"
 
diff --git a/AMDiS/src/parallel/PetscSolverGlobalBlockMatrix.cc b/AMDiS/src/parallel/PetscSolverGlobalBlockMatrix.cc
index dc22b136..46c6ae86 100644
--- a/AMDiS/src/parallel/PetscSolverGlobalBlockMatrix.cc
+++ b/AMDiS/src/parallel/PetscSolverGlobalBlockMatrix.cc
@@ -20,6 +20,7 @@
 
 
 #include "parallel/PetscSolverGlobalBlockMatrix.h"
+#include "parallel/PetscHelper.h"
 #include "parallel/StdMpi.h"
 #include "parallel/MpiHelper.h"
 
diff --git a/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc b/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
index b62449eb..d58d07a1 100644
--- a/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
+++ b/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
@@ -22,6 +22,7 @@
 // #include "DirichletBC.h"
 #include "DOFVector.h"
 #include "parallel/PetscSolverGlobalMatrix.h"
+#include "parallel/PetscHelper.h"
 #include "parallel/StdMpi.h"
 #include "parallel/MpiHelper.h"
 #include "solver/PetscTypes.h"
diff --git a/AMDiS/src/parallel/PetscSolverSchur.cc b/AMDiS/src/parallel/PetscSolverSchur.cc
index 94b64766..9e822608 100644
--- a/AMDiS/src/parallel/PetscSolverSchur.cc
+++ b/AMDiS/src/parallel/PetscSolverSchur.cc
@@ -20,6 +20,7 @@
 
 
 #include "parallel/PetscSolverSchur.h"
+#include "parallel/PetscHelper.h"
 #include "parallel/StdMpi.h"
 #include "parallel/MpiHelper.h"
 
diff --git a/extensions/demo/cahn_hilliard/src/PetscSolverCahnHilliard_DD.cc b/extensions/demo/cahn_hilliard/src/PetscSolverCahnHilliard_DD.cc
index d2b7fc69..ab4e556e 100644
--- a/extensions/demo/cahn_hilliard/src/PetscSolverCahnHilliard_DD.cc
+++ b/extensions/demo/cahn_hilliard/src/PetscSolverCahnHilliard_DD.cc
@@ -68,11 +68,7 @@ namespace AMDiS { namespace Parallel {
     /// create new solver for S
     KSP kspS;
     KSPCreate(*data->mpiCommGlobal, &kspS);
-#if (PETSC_VERSION_MINOR >= 5)
-    KSPSetOperators(kspS, S, S);
-#else
-    KSPSetOperators(kspS, S, S, SAME_NONZERO_PATTERN);
-#endif
+    petsc::ksp_set_operators(kspS, S, S);
     petsc_helper::setSolver(kspS, "S_", KSPFGMRES, PCSHELL, 1e-6, 1e-8, 5);
     {
       PC pc;
@@ -118,15 +114,11 @@ namespace AMDiS { namespace Parallel {
 
     MSG("CREATE POS 1: %p\n", &ksp);
     KSPCreate(domainComm, &ksp);
-#if (PETSC_VERSION_MINOR >= 5)
-    KSPSetOperators(ksp, getMatInterior(), getMatInterior());
-#else
-    KSPSetOperators(ksp, getMatInterior(), getMatInterior(), SAME_NONZERO_PATTERN);
-#endif
+    petsc::ksp_set_operators(ksp, getMatInterior(), getMatInterior());
     if (getInfo() >= 10)
-      KSPMonitorSet(ksp, KSPMonitorDefault, PETSC_NULL, PETSC_NULL);
+      petsc::ksp_monitor_set(ksp, KSPMonitorDefault);
     else if (getInfo() >= 20)
-      KSPMonitorSet(ksp, KSPMonitorTrueResidualNorm, PETSC_NULL, PETSC_NULL);
+      petsc::ksp_monitor_set(ksp, KSPMonitorTrueResidualNorm);
     petsc_helper::setSolver(ksp, "ch_", KSPFGMRES, PCNONE, getRelative(), getTolerance(), getMaxIterations());
 
     if (useOldInitialGuess)
diff --git a/extensions/preconditioner/PetscSolverNavierStokes2.cc b/extensions/preconditioner/PetscSolverNavierStokes2.cc
index 44ab7b20..5d8142f3 100644
--- a/extensions/preconditioner/PetscSolverNavierStokes2.cc
+++ b/extensions/preconditioner/PetscSolverNavierStokes2.cc
@@ -133,15 +133,11 @@ namespace AMDiS { namespace Parallel {
   {
     // Create FGMRES based outer solver
     KSPCreate(domainComm, &ksp);
-#if (PETSC_VERSION_MINOR >= 5)
-    KSPSetOperators(ksp, getMatInterior(), getMatInterior());
-#else
-    KSPSetOperators(ksp, getMatInterior(), getMatInterior(), SAME_NONZERO_PATTERN);
-#endif
+    petsc::ksp_set_operators(ksp, getMatInterior(), getMatInterior());
     if (getInfo() >= 10)
-      KSPMonitorSet(ksp, PETSC_MONITOR_CAST(KSPMonitorDefault), PETSC_NULL, PETSC_NULL);
+      petsc::ksp_monitor_set(ksp, KSPMonitorDefault);
     else if (getInfo() >= 20)
-      KSPMonitorSet(ksp, PETSC_MONITOR_CAST(KSPMonitorTrueResidualNorm), PETSC_NULL, PETSC_NULL);
+      petsc::ksp_monitor_set(ksp, KSPMonitorTrueResidualNorm);
     petsc_helper::setSolver(ksp, "ns_", KSPFGMRES, PCNONE, getRelative(), getTolerance(), getMaxIterations());
 
     // Create null space information.
diff --git a/extensions/preconditioner/PetscSolverPfc.cc b/extensions/preconditioner/PetscSolverPfc.cc
index ac7e3848..cd140e9f 100644
--- a/extensions/preconditioner/PetscSolverPfc.cc
+++ b/extensions/preconditioner/PetscSolverPfc.cc
@@ -78,15 +78,11 @@ namespace AMDiS { namespace Parallel {
   {
     // Create FGMRES based outer solver
     KSPCreate(meshDistributor->getMpiComm(0), &ksp);
-#if (PETSC_VERSION_MINOR >= 5)
-    KSPSetOperators(ksp, getMatInterior(), getMatInterior());
-#else
-    KSPSetOperators(ksp, getMatInterior(), getMatInterior(), SAME_NONZERO_PATTERN);
-#endif
+    petsc::ksp_set_operators(ksp, getMatInterior(), getMatInterior());
     if (getInfo() >= 10)
-      KSPMonitorSet(ksp, PETSC_MONITOR_CAST(KSPMonitorDefault), PETSC_NULL, PETSC_NULL);
+      petsc::ksp_monitor_set(ksp, KSPMonitorDefault);
     else if (getInfo() >= 20)
-      KSPMonitorSet(ksp, PETSC_MONITOR_CAST(KSPMonitorTrueResidualNorm), PETSC_NULL, PETSC_NULL);
+      petsc::ksp_monitor_set(ksp, KSPMonitorTrueResidualNorm);
     petsc_helper::setSolver(ksp, "pfc_", KSPFGMRES, PCNONE, getRelative(), getTolerance(), getMaxIterations());
     KSPSetFromOptions(ksp);
 
diff --git a/extensions/preconditioner/PetscSolverPfc_diag.cc b/extensions/preconditioner/PetscSolverPfc_diag.cc
index 68fa80c9..6a040a4f 100644
--- a/extensions/preconditioner/PetscSolverPfc_diag.cc
+++ b/extensions/preconditioner/PetscSolverPfc_diag.cc
@@ -76,15 +76,11 @@ namespace AMDiS { namespace Parallel {
   {
     // Create FGMRES based outer solver
     KSPCreate(meshDistributor->getMpiComm(0), &ksp);
-#if (PETSC_VERSION_MINOR >= 5)
-    KSPSetOperators(ksp, getMatInterior(), getMatInterior());
-#else
-    KSPSetOperators(ksp, getMatInterior(), getMatInterior(), SAME_NONZERO_PATTERN);
-#endif
+    petsc::ksp_set_operators(ksp, getMatInterior(), getMatInterior());
     if (getInfo() >= 10)
-      KSPMonitorSet(ksp, PETSC_MONITOR_CAST(KSPMonitorDefault), PETSC_NULL, PETSC_NULL);
+      petsc::ksp_monitor_set(ksp, KSPMonitorDefault);
     else if (getInfo() >= 20)
-      KSPMonitorSet(ksp, PETSC_MONITOR_CAST(KSPMonitorTrueResidualNorm), PETSC_NULL, PETSC_NULL);
+      petsc::ksp_monitor_set(ksp, KSPMonitorTrueResidualNorm);
     petsc_helper::setSolver(ksp, "pfc_", KSPFGMRES, PCNONE, getRelative(), getTolerance(), getMaxIterations());
     KSPSetFromOptions(ksp);
 
@@ -167,11 +163,7 @@ namespace AMDiS { namespace Parallel {
     VecDestroy(&x);
     MatDestroy(&DK);
 
-#if (PETSC_VERSION_MINOR >= 5)
-    KSPSetOperators(data.kspS, matS, matS);
-#else
-    KSPSetOperators(data.kspS, matS, matS, SAME_NONZERO_PATTERN);
-#endif
+    petsc::ksp_set_operators(data.kspS, matS, matS);
 
     // === Setup preconditioner data ===
     data.delta = delta;
-- 
GitLab