diff --git a/AMDiS/src/parallel/PetscSolver.cc b/AMDiS/src/parallel/PetscSolver.cc index 2847cfd84b26f8ce82714a6fa34957d073c5bdde..c6ccd17a8b9c754e505aa6e7113af98eedfae6c3 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 dc22b136da8d0a6c14b2edaf2e244683f9cfe8dd..46c6ae869b4e03e840d3b633a22f1807421124d9 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 b62449eb47391e96d00642cbdcbc139eed65e48b..d58d07a101d6ebebe1074876b06050e31038e357 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 94b64766bc7630444c027ffdabef958ce9e05578..9e8226089385035c9f375602270e5e7f02fb1bea 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 d2b7fc69f2c1840a62aea10c1268166851ae323d..ab4e556e20b2a4a677d724566fef5d0307f43517 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 44ab7b20847f7f92a7ae2bc2eb1c558cb7d31f5b..5d8142f3ee8cf352a4213b3441005c38a4a9440c 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 ac7e38480dc4162a504e1988344a1ae381f93365..cd140e9fab42d97cd1dd2669570fcd6c28d63a16 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 68fa80c9a7050ae0ad417df2f12eb42c763a081a..6a040a4f3de041eefbca10b3bca872df3efa1423 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;