Function opensn::CreateCommonKrylovSolverSetup
Defined in File petsc_utils.h
Function Documentation
-
PETScSolverSetup opensn::CreateCommonKrylovSolverSetup(Mat matrix, const std::string &solver_name = "KSPSolver", const std::string &solver_type = KSPGMRES, const std::string &preconditioner_type = PCNONE, double rel_tol = PETSC_DEFAULT, double abs_tol = PETSC_DEFAULT, int64_t maximum_iterations = 100)
Creates a common Krylov-solver setup.
This is a macro for:
PETScSolverSetup setup; KSPCreate(opensn::mpi_comm,&setup.ksp); KSPSetOperators(setup.ksp,ref_matrix,ref_matrix); KSPSetType(setup.ksp,in_solver_type.c_str()); KSPSetOptionsPrefix(setup.ksp,in_solver_name.c_str()); KSPGetPC(setup.ksp,&setup.pc); PCSetType(setup.pc,in_preconditioner_type.c_str()); KSPSetTolerances(setup.ksp,1.e-50, in_relative_residual_tolerance,1.0e50, in_maximum_iterations); KSPSetInitialGuessNonzero(setup.ksp,PETSC_TRUE); KSPMonitorSet(setup.ksp,&KSPMonitorRelativeToRHS,NULL,NULL); return setup;