diff --git a/MathLib/LinAlg/PETSc/KSP_Option/PETScPC_KSP_GMRES_Option.cpp b/MathLib/LinAlg/PETSc/KSP_Option/PETScPC_KSP_GMRES_Option.cpp index 5dfe3499f7253ef1b062dff75cbcb987c327c30e..16c77e4e16b5f1352c3268710a8352f808773ac9 100644 --- a/MathLib/LinAlg/PETSc/KSP_Option/PETScPC_KSP_GMRES_Option.cpp +++ b/MathLib/LinAlg/PETSc/KSP_Option/PETScPC_KSP_GMRES_Option.cpp @@ -21,29 +21,29 @@ using boost::property_tree::ptree; PETScPC_KSP_GMRES_Option:: PETScPC_KSP_GMRES_Option(const boost::property_tree::ptree &option) - : restart_number_gmres(30), is_modified_gram_schmidt_gmres(false), - refine_type_gmres(KSP_GMRES_CGS_REFINE_NEVER) + : restart_number(30), is_modified_gram_schmidt(false), + refine_type(KSP_GMRES_CGS_REFINE_NEVER) { auto val = option.get_optional<double>("restart_number"); - restart_number_gmres = *val; + restart_number = *val; - boost::optional<bool> bool_vals = option.get_optional<bool>("is_modified_ram_schmidt_orthog"); - is_modified_gram_schmidt_gmres = *bool_vals; + boost::optional<bool> bool_vals = option.get_optional<bool>("is_modified_gram_schmidt_orthog"); + is_modified_gram_schmidt = *bool_vals; auto refine_type = option.get_optional<int>("refine_type"); switch(*refine_type) { case 0: - refine_type_gmres = KSP_GMRES_CGS_REFINE_NEVER; + refine_type = KSP_GMRES_CGS_REFINE_NEVER; break; case 1: - refine_type_gmres = KSP_GMRES_CGS_REFINE_IFNEEDED; + refine_type = KSP_GMRES_CGS_REFINE_IFNEEDED; break; case 2: - refine_type_gmres = KSP_GMRES_CGS_REFINE_ALWAYS; + refine_type = KSP_GMRES_CGS_REFINE_ALWAYS; break; default: - refine_type_gmres = KSP_GMRES_CGS_REFINE_NEVER; + refine_type = KSP_GMRES_CGS_REFINE_NEVER; break; } } @@ -51,14 +51,14 @@ PETScPC_KSP_GMRES_Option(const boost::property_tree::ptree &option) /// Set Chebyshev option void PETScPC_KSP_GMRES_Option::setOption(KSP &solver) { - KSPGMRESSetRestart(solver, restart_number_gmres); + KSPGMRESSetRestart(solver, restart_number); - if(is_modified_gram_schmidt_gmres) + if(is_modified_gram_schmidt) { KSPGMRESSetOrthogonalization(solver, KSPGMRESClassicalGramSchmidtOrthogonalization); } - KSPGMRESSetCGSRefinementType(solver, refine_type_gmres); + KSPGMRESSetCGSRefinementType(solver, refine_type); } } // end namespace diff --git a/MathLib/LinAlg/PETSc/KSP_Option/PETScPC_KSP_GMRES_Option.h b/MathLib/LinAlg/PETSc/KSP_Option/PETScPC_KSP_GMRES_Option.h index 7aacabf8030420dbcc7e611d7e98eaaed858d22e..15b8ec68ebca1ef081cb811cf631043de3f7181d 100644 --- a/MathLib/LinAlg/PETSc/KSP_Option/PETScPC_KSP_GMRES_Option.h +++ b/MathLib/LinAlg/PETSc/KSP_Option/PETScPC_KSP_GMRES_Option.h @@ -34,16 +34,16 @@ struct PETScPC_KSP_GMRES_Option /// Overloaded assign operator void operator = (const PETScPC_KSP_GMRES_Option& opt) { - restart_number_gmres = opt.restart_number_gmres; - is_modified_gram_schmidt_gmres = opt.is_modified_gram_schmidt_gmres; - refine_type_gmres = opt.refine_type_gmres; + restart_number = opt.restart_number; + is_modified_gram_schmidt = opt.is_modified_gram_schmidt; + refine_type = opt.refine_type; } /// Restart number of GMRES. - PetscInt restart_number_gmres; + PetscInt restart_number; /// Flag for the modified Gram-Schmidt orthogonalization. - bool is_modified_gram_schmidt_gmres; + bool is_modified_gram_schmidt; /*! \brief Refinement type for GMRES. @@ -53,7 +53,7 @@ struct PETScPC_KSP_GMRES_Option typedef enum {KSP_GMRES_CGS_REFINE_NEVER, KSP_GMRES_CGS_REFINE_IFNEEDED, KSP_GMRES_CGS_REFINE_ALWAYS} KSPGMRESCGSRefinementType; */ - KSPGMRESCGSRefinementType refine_type_gmres; + KSPGMRESCGSRefinementType refine_type; }; } // end namespace diff --git a/MathLib/LinAlg/PETSc/PETScLinearSolver.cpp b/MathLib/LinAlg/PETSc/PETScLinearSolver.cpp index 253def0737ab8dbda4768f6e45335be1dc178176..bfff8e4138000d3cb7b05a9be3288e0f1481cf05 100644 --- a/MathLib/LinAlg/PETSc/PETScLinearSolver.cpp +++ b/MathLib/LinAlg/PETSc/PETScLinearSolver.cpp @@ -46,7 +46,7 @@ PETScLinearSolver::PETScLinearSolver(PETScMatrix &A, PETScLinearSolverOption opt(*pt_solver); opt.setOption(_solver, _pc); KSPSetFromOptions(_solver); // set running time option - return; + return; } // Base configuration @@ -56,14 +56,13 @@ PETScLinearSolver::PETScLinearSolver(PETScMatrix &A, //---------------------------------------------------------------------- // Specific configuration, solver - boost::optional<const ptree&> pt_solver_spec = pt_solver->get_child_optional("Richards"); - - + boost::optional<const ptree&> pt_solver_spec = pt_solver->get_child_optional("Richards"); + if(pt_solver_spec) { PETScPC_KSP_Richards_Option ksp_opt(*pt_solver_spec); setKSP_Option(ksp_opt); - } + } pt_solver_spec = pt_solver->get_child_optional("Chebyshev"); if(pt_solver_spec) diff --git a/MathLib/LinAlg/PETSc/PETScLinearSolver.h b/MathLib/LinAlg/PETSc/PETScLinearSolver.h index d0082a9e9bce7fb7468227e0ada0caedcb62aa93..53a7622ec4d37722f3ba56c85ba62df534aa9c4f 100644 --- a/MathLib/LinAlg/PETSc/PETScLinearSolver.h +++ b/MathLib/LinAlg/PETSc/PETScLinearSolver.h @@ -44,10 +44,9 @@ class PETScLinearSolver public: /*! - Constructor. - \param A Matrix, cannot be constant. - \param solver_name Solver name. - \param pc_name Preconditioner name. + Constructor + \param A Matrix, cannot be constant. + \param option Configuration data for solver and preconditioner. */ PETScLinearSolver(PETScMatrix &A, const boost::property_tree::ptree &option);