From 6615d272628dae7b2907294d3f06c4c22e58a93b Mon Sep 17 00:00:00 2001 From: Riccardo Rossi Date: Tue, 5 Sep 2017 11:23:27 +0200 Subject: [PATCH] corrections to the solver settings --- .../amgcl_mpi_schur_complement_solver.h | 103 +++++++++++------- 1 file changed, 66 insertions(+), 37 deletions(-) diff --git a/applications/trilinos_application/external_includes/amgcl_mpi_schur_complement_solver.h b/applications/trilinos_application/external_includes/amgcl_mpi_schur_complement_solver.h index 95e183012666..94f97c7368bb 100644 --- a/applications/trilinos_application/external_includes/amgcl_mpi_schur_complement_solver.h +++ b/applications/trilinos_application/external_includes/amgcl_mpi_schur_complement_solver.h @@ -91,7 +91,7 @@ class AmgclMPISchurComplementSolver : public LinearSolver< TSparseSpaceType, }, "pressure_block_preconditioner" : { - "krylov_type" : "lgmres", + "krylov_type" : "fgmres", "tolerance" : 1e-2, "preconditioner_type" : "spai0", "max_iteration": 20 @@ -123,6 +123,35 @@ class AmgclMPISchurComplementSolver : public LinearSolver< TSparseSpaceType, } mCoarseEnough = rParameters["coarse_enough"].GetInt(); + +// { +// "solver": { +// "type" : "fgmres", +// "M": 50 +// }, +// "precond": { +// "usolver": { +// "solver": { +// "type" : "gmres", +// "tol": 0.001, +// "maxiter": 5 +// } +// }, +// "psolver": { +// "solver": { +// "type" : "gmres", +// "tol": 0.01, +// "maxiter": 20 +// }, +// "precond" : { +// "isolver" : { +// "type" : "gmres", +// "maxiter" : 2 +// } +// } +// } +// } +// } mTolerance = rParameters["tolerance"].GetDouble(); mMaxIterations = rParameters["max_iteration"].GetInt(); @@ -185,13 +214,33 @@ class AmgclMPISchurComplementSolver : public LinearSolver< TSparseSpaceType, typedef amgcl::backend::builtin Backend; + typedef amgcl::mpi::make_solver< + amgcl::mpi::schur_pressure_correction< + amgcl::mpi::make_solver< + amgcl::mpi::block_preconditioner< + amgcl::runtime::relaxation::as_preconditioner + >, + amgcl::runtime::iterative_solver + >, + amgcl::mpi::make_solver< + amgcl::mpi::subdomain_deflation< + amgcl::runtime::amg, + amgcl::runtime::iterative_solver, + amgcl::runtime::mpi::direct_solver + >, + amgcl::runtime::iterative_solver + > + >, + amgcl::runtime::iterative_solver + > SDD; + // typedef amgcl::mpi::make_solver< // amgcl::mpi::schur_pressure_correction< // amgcl::mpi::make_solver< // amgcl::mpi::block_preconditioner< // amgcl::runtime::relaxation::as_preconditioner // >, -// amgcl::runtime::iterative_solver +// amgcl::solver::bicgstab // >, // amgcl::mpi::make_solver< // amgcl::mpi::subdomain_deflation< @@ -204,46 +253,26 @@ class AmgclMPISchurComplementSolver : public LinearSolver< TSparseSpaceType, // >, // amgcl::runtime::iterative_solver // > SDD; - -// typedef amgcl::mpi::make_solver< -// amgcl::mpi::schur_pressure_correction< -// amgcl::mpi::make_solver< -// amgcl::mpi::block_preconditioner< -// amgcl::runtime::relaxation::as_preconditioner + +// typedef amgcl::mpi::make_solver< +// amgcl::mpi::schur_pressure_correction< +// amgcl::mpi::make_solver< +// amgcl::mpi::block_preconditioner< +// amgcl::runtime::relaxation::as_preconditioner // >, -// amgcl::solver::bicgstab +// amgcl::solver::gmres //amgcl::solver::bicgstab // >, -// amgcl::mpi::make_solver< -// amgcl::mpi::subdomain_deflation< -// amgcl::runtime::amg, -// amgcl::runtime::iterative_solver, -// amgcl::runtime::mpi::direct_solver +// amgcl::mpi::make_solver< +// amgcl::mpi::subdomain_deflation< +// amgcl::runtime::amg, +// amgcl::solver::gmres, //amgcl::solver::bicgstab, +// amgcl::mpi::skyline_lu // >, -// amgcl::runtime::iterative_solver +// amgcl::solver::fgmres // > // >, -// amgcl::runtime::iterative_solver -// > SDD; - - typedef amgcl::mpi::make_solver< - amgcl::mpi::schur_pressure_correction< - amgcl::mpi::make_solver< - amgcl::mpi::block_preconditioner< - amgcl::runtime::relaxation::as_preconditioner - >, - amgcl::runtime::iterative_solver //amgcl::solver::bicgstab - >, - amgcl::mpi::make_solver< - amgcl::mpi::subdomain_deflation< - amgcl::runtime::amg, - amgcl::runtime::iterative_solver, //amgcl::solver::bicgstab, - amgcl::mpi::skyline_lu - >, - amgcl::solver::fgmres - > - >, - amgcl::solver::fgmres - > SDD; +// amgcl::solver::fgmres +// > SDD; boost::function dv = amgcl::mpi::constant_deflation(1); mprm.put("precond.psolver.precond.num_def_vec", 1);