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