Skip to main content

SetParam

Set the fields of linear solver.

Interface

INTERFACE
MODULE SUBROUTINE SetAbstractLinSolverParam( &
& param, &
& prefix, &
& engine, &
& solverName, &
& preconditionOption, &
& maxIter, &
& atol, &
& rtol, &
& convergenceIn, &
& convergenceType, &
& relativeToRHS, &
& KrylovSubspaceSize, &
& scale, &
& initx_zeros, &
& bicgstab_ell, &
& sor_omega, &
& p_name, &
& p_ilu_lfil, &
& p_ilu_mbloc, &
& p_ilu_droptol, &
& p_ilu_permtol, &
& p_ilu_alpha, &
& p_ilu_fill, &
& p_ssor_omega, &
& p_hybrid_i, &
& p_hybrid_maxiter, &
& p_hybrid_tol, &
& p_hybrid_omega, &
& p_hybrid_ell, &
& p_hybrid_restart, &
& p_is_alpha, &
& p_is_m, &
& p_sainv_drop, &
& p_saamg_unsym, &
& p_saamg_theta, &
& p_iluc_drop, &
& p_iluc_rate, &
& p_adds, &
& p_adds_iter &
& )
TYPE(ParameterList_), INTENT(INOUT) :: param
CHARACTER(*), INTENT(IN) :: prefix
CHARACTER(*), INTENT(IN) :: engine
INTEGER(I4B), OPTIONAL, INTENT(IN) :: solverName
!! name of linear solver, it should be present
INTEGER(I4B), OPTIONAL, INTENT(IN) :: preconditionOption
!! precondition option
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_name
!! if preconditionOption .ne. NO_PRECONDITION
!! then p_name should be present
INTEGER(I4B), OPTIONAL, INTENT(IN) :: convergenceIn
!! convergence in residual or solution
INTEGER(I4B), OPTIONAL, INTENT(IN) :: convergenceType
!! relative or absolute convergence
INTEGER(I4B), OPTIONAL, INTENT(IN) :: scale
!! LIS, Solver digonal scaling
!! scale_none: No scaling
!! scale_jacobi: jacobi scaling inv(D)Ax = inv(D)b
!! scale_symm_diag: sqrt(inv(D)) A sqrt(inv(D)) x = sqrt(inv(D))b
INTEGER(I4B), OPTIONAL, INTENT(IN) :: maxIter
!! maximum iteration allowed
INTEGER(I4B), OPTIONAL, INTENT(IN) :: krylovSubspaceSize
!! Size of KrylovSubspaceSize
INTEGER(I4B), OPTIONAL, INTENT(IN) :: bicgstab_ell
!! Needed for solver BiCGSTABL
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_ilu_lfil
!! Sparsekit, ilu
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_ilu_mbloc
!! Sparsekit, ilu
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_ilu_fill
!! ILU, fill-in
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_hybrid_i
!! Hybrid, the linear solver, for example, SSOR, GMRES,
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_hybrid_maxiter
!! Hybrid, maximum number of iterations
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_hybrid_ell
!!Hybrid, The degree l of the BiCGSTAB(l)
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_hybrid_restart
!! Hybrid, The restart value of GMRES and Orthomin
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_is_m
!! I+S, The parameter m of $I + \alpha {S}^{m}$
INTEGER(I4B), OPTIONAL, INTENT(IN) :: p_adds_iter
!! default value is 1
!! ILUT Additive Schwarz number of iteration
REAL(DFP), OPTIONAL, INTENT(IN) :: atol
!! absolute tolerance
REAL(DFP), OPTIONAL, INTENT(IN) :: rtol
!! relative tolerance
REAL(DFP), OPTIONAL, INTENT(IN) :: sor_omega
!! The relaxation coefficient
REAL(DFP), OPTIONAL, INTENT(IN) :: p_is_alpha
!! I+S, The parameter alpha of $I + \alpha {S}^{m}$
REAL(DFP), OPTIONAL, INTENT(IN) :: p_ilu_droptol
!! Sparsekit, ilu
REAL(DFP), OPTIONAL, INTENT(IN) :: p_ilu_permtol
!! Sparsekit, ilu
REAL(DFP), OPTIONAL, INTENT(IN) :: p_ilu_alpha
!! Sparsekit, ilu, alpha
REAL(DFP), OPTIONAL, INTENT(IN) :: p_ssor_omega
!! The relaxation coefficient omega in (0.0, 2.0)
REAL(DFP), OPTIONAL, INTENT(IN) :: p_hybrid_tol
!! Hybrid, convergence tolerance
REAL(DFP), OPTIONAL, INTENT(IN) :: p_hybrid_omega
!! Hybrid, The relaxation coefficient omega of the SOR
!! omega should be in (0.0, 2.0)
REAL(DFP), OPTIONAL, INTENT(IN) :: p_sainv_drop
!! SA-AMG, The drop criteria
REAL(DFP), OPTIONAL, INTENT(IN) :: p_saamg_theta
!! SA-AMG, The drop criteria
LOGICAL(LGT), OPTIONAL, INTENT(IN) :: p_saamg_unsym
!! SA-AMG, Select the unsymmetric version
!! The matrix structure must be symmetric
REAL(DFP), OPTIONAL, INTENT(IN) :: p_iluc_drop
!! Crout ILU, default is 0.05, The drop criteria
REAL(DFP), OPTIONAL, INTENT(IN) :: p_iluc_rate
!! Crout ILU, The ratio of the maximum fill-in
LOGICAL(LGT), OPTIONAL, INTENT(IN) :: relativeToRHS
LOGICAL(LGT), OPTIONAL, INTENT(IN) :: initx_zeros
!! if True, then we Set sol=0.0 as initial guess.
LOGICAL(LGT), OPTIONAL, INTENT(IN) :: p_adds
!! ilut Additive Schwarz, default is true
END SUBROUTINE SetAbstractLinSolverParam
END INTERFACE