Julia interface to hypre linear solvers (https://github.com/hypre-space/hypre)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

448 lines
19 KiB

# SPDX-License-Identifier: MIT
# This file is automatically generated by gen/solver_options.jl
Internals.set_options(::HYPRESolver, kwargs) = nothing
function Internals.set_options(s::BiCGSTAB, kwargs)
solver = s.solver
for (k, v) in kwargs
if k === :ConvergenceFactorTol
@check HYPRE_BiCGSTABSetConvergenceFactorTol(solver, v)
elseif k === :AbsoluteTol
@check HYPRE_ParCSRBiCGSTABSetAbsoluteTol(solver, v)
elseif k === :Logging
@check HYPRE_ParCSRBiCGSTABSetLogging(solver, v)
elseif k === :MaxIter
@check HYPRE_ParCSRBiCGSTABSetMaxIter(solver, v)
elseif k === :MinIter
@check HYPRE_ParCSRBiCGSTABSetMinIter(solver, v)
elseif k === :Precond
Internals.set_precond_defaults(v)
Internals.set_precond(s, v)
elseif k === :PrintLevel
@check HYPRE_ParCSRBiCGSTABSetPrintLevel(solver, v)
elseif k === :StopCrit
@check HYPRE_ParCSRBiCGSTABSetStopCrit(solver, v)
elseif k === :Tol
@check HYPRE_ParCSRBiCGSTABSetTol(solver, v)
else
throw(ArgumentError("unknown option $k for HYPRE.BiCGSTAB"))
end
end
end
function Internals.set_options(s::BoomerAMG, kwargs)
solver = s.solver
for (k, v) in kwargs
if k === :ADropTol
@check HYPRE_BoomerAMGSetADropTol(solver, v)
elseif k === :ADropType
@check HYPRE_BoomerAMGSetADropType(solver, v)
elseif k === :AddLastLvl
@check HYPRE_BoomerAMGSetAddLastLvl(solver, v)
elseif k === :AddRelaxType
@check HYPRE_BoomerAMGSetAddRelaxType(solver, v)
elseif k === :AddRelaxWt
@check HYPRE_BoomerAMGSetAddRelaxWt(solver, v)
elseif k === :Additive
@check HYPRE_BoomerAMGSetAdditive(solver, v)
elseif k === :AggInterpType
@check HYPRE_BoomerAMGSetAggInterpType(solver, v)
elseif k === :AggNumLevels
@check HYPRE_BoomerAMGSetAggNumLevels(solver, v)
elseif k === :AggP12MaxElmts
@check HYPRE_BoomerAMGSetAggP12MaxElmts(solver, v)
elseif k === :AggP12TruncFactor
@check HYPRE_BoomerAMGSetAggP12TruncFactor(solver, v)
elseif k === :AggPMaxElmts
@check HYPRE_BoomerAMGSetAggPMaxElmts(solver, v)
elseif k === :AggTruncFactor
@check HYPRE_BoomerAMGSetAggTruncFactor(solver, v)
elseif k === :CGCIts
@check HYPRE_BoomerAMGSetCGCIts(solver, v)
elseif k === :CPoints
@check HYPRE_BoomerAMGSetCPoints(solver, v...)
elseif k === :CRRate
@check HYPRE_BoomerAMGSetCRRate(solver, v)
elseif k === :CRStrongTh
@check HYPRE_BoomerAMGSetCRStrongTh(solver, v)
elseif k === :CRUseCG
@check HYPRE_BoomerAMGSetCRUseCG(solver, v)
elseif k === :ChebyEigEst
@check HYPRE_BoomerAMGSetChebyEigEst(solver, v)
elseif k === :ChebyFraction
@check HYPRE_BoomerAMGSetChebyFraction(solver, v)
elseif k === :ChebyOrder
@check HYPRE_BoomerAMGSetChebyOrder(solver, v)
elseif k === :ChebyScale
@check HYPRE_BoomerAMGSetChebyScale(solver, v)
elseif k === :ChebyVariant
@check HYPRE_BoomerAMGSetChebyVariant(solver, v)
elseif k === :CoarsenCutFactor
@check HYPRE_BoomerAMGSetCoarsenCutFactor(solver, v)
elseif k === :CoarsenType
@check HYPRE_BoomerAMGSetCoarsenType(solver, v)
elseif k === :ConvergeType
@check HYPRE_BoomerAMGSetConvergeType(solver, v)
elseif k === :CoordDim
@check HYPRE_BoomerAMGSetCoordDim(solver, v)
elseif k === :Coordinates
@check HYPRE_BoomerAMGSetCoordinates(solver, v)
elseif k === :CpointsToKeep
@check HYPRE_BoomerAMGSetCpointsToKeep(solver, v...)
elseif k === :CycleNumSweeps
@check HYPRE_BoomerAMGSetCycleNumSweeps(solver, v...)
elseif k === :CycleRelaxType
@check HYPRE_BoomerAMGSetCycleRelaxType(solver, v...)
elseif k === :CycleType
@check HYPRE_BoomerAMGSetCycleType(solver, v)
elseif k === :DebugFlag
@check HYPRE_BoomerAMGSetDebugFlag(solver, v)
elseif k === :DofFunc
@check HYPRE_BoomerAMGSetDofFunc(solver, v)
elseif k === :DomainType
@check HYPRE_BoomerAMGSetDomainType(solver, v)
elseif k === :DropTol
@check HYPRE_BoomerAMGSetDropTol(solver, v)
elseif k === :EuBJ
@check HYPRE_BoomerAMGSetEuBJ(solver, v)
elseif k === :EuLevel
@check HYPRE_BoomerAMGSetEuLevel(solver, v)
elseif k === :EuSparseA
@check HYPRE_BoomerAMGSetEuSparseA(solver, v)
elseif k === :EuclidFile
@check HYPRE_BoomerAMGSetEuclidFile(solver, v)
elseif k === :FCycle
@check HYPRE_BoomerAMGSetFCycle(solver, v)
elseif k === :FPoints
@check HYPRE_BoomerAMGSetFPoints(solver, v...)
elseif k === :Filter
@check HYPRE_BoomerAMGSetFilter(solver, v)
elseif k === :FilterThresholdR
@check HYPRE_BoomerAMGSetFilterThresholdR(solver, v)
elseif k === :GMRESSwitchR
@check HYPRE_BoomerAMGSetGMRESSwitchR(solver, v)
elseif k === :GSMG
@check HYPRE_BoomerAMGSetGSMG(solver, v)
elseif k === :GridRelaxPoints
@check HYPRE_BoomerAMGSetGridRelaxPoints(solver, v)
elseif k === :GridRelaxType
@check HYPRE_BoomerAMGSetGridRelaxType(solver, v)
elseif k === :ILUDroptol
@check HYPRE_BoomerAMGSetILUDroptol(solver, v)
elseif k === :ILULevel
@check HYPRE_BoomerAMGSetILULevel(solver, v)
elseif k === :ILUMaxIter
@check HYPRE_BoomerAMGSetILUMaxIter(solver, v)
elseif k === :ILUMaxRowNnz
@check HYPRE_BoomerAMGSetILUMaxRowNnz(solver, v)
elseif k === :ILUType
@check HYPRE_BoomerAMGSetILUType(solver, v)
elseif k === :ISType
@check HYPRE_BoomerAMGSetISType(solver, v)
elseif k === :InterpType
@check HYPRE_BoomerAMGSetInterpType(solver, v)
elseif k === :InterpVecAbsQTrunc
@check HYPRE_BoomerAMGSetInterpVecAbsQTrunc(solver, v)
elseif k === :InterpVecQMax
@check HYPRE_BoomerAMGSetInterpVecQMax(solver, v)
elseif k === :InterpVecVariant
@check HYPRE_BoomerAMGSetInterpVecVariant(solver, v)
elseif k === :InterpVectors
@check HYPRE_BoomerAMGSetInterpVectors(solver, v...)
elseif k === :IsTriangular
@check HYPRE_BoomerAMGSetIsTriangular(solver, v)
elseif k === :IsolatedFPoints
@check HYPRE_BoomerAMGSetIsolatedFPoints(solver, v...)
elseif k === :JacobiTruncThreshold
@check HYPRE_BoomerAMGSetJacobiTruncThreshold(solver, v)
elseif k === :KeepSameSign
@check HYPRE_BoomerAMGSetKeepSameSign(solver, v)
elseif k === :KeepTranspose
@check HYPRE_BoomerAMGSetKeepTranspose(solver, v)
elseif k === :Level
@check HYPRE_BoomerAMGSetLevel(solver, v)
elseif k === :LevelNonGalerkinTol
@check HYPRE_BoomerAMGSetLevelNonGalerkinTol(solver, v...)
elseif k === :LevelOuterWt
@check HYPRE_BoomerAMGSetLevelOuterWt(solver, v...)
elseif k === :LevelRelaxWt
@check HYPRE_BoomerAMGSetLevelRelaxWt(solver, v...)
elseif k === :Logging
@check HYPRE_BoomerAMGSetLogging(solver, v)
elseif k === :MaxCoarseSize
@check HYPRE_BoomerAMGSetMaxCoarseSize(solver, v)
elseif k === :MaxIter
@check HYPRE_BoomerAMGSetMaxIter(solver, v)
elseif k === :MaxLevels
@check HYPRE_BoomerAMGSetMaxLevels(solver, v)
elseif k === :MaxNzPerRow
@check HYPRE_BoomerAMGSetMaxNzPerRow(solver, v)
elseif k === :MaxRowSum
@check HYPRE_BoomerAMGSetMaxRowSum(solver, v)
elseif k === :MeasureType
@check HYPRE_BoomerAMGSetMeasureType(solver, v)
elseif k === :MinCoarseSize
@check HYPRE_BoomerAMGSetMinCoarseSize(solver, v)
elseif k === :MinIter
@check HYPRE_BoomerAMGSetMinIter(solver, v)
elseif k === :ModuleRAP2
@check HYPRE_BoomerAMGSetModuleRAP2(solver, v)
elseif k === :MultAddPMaxElmts
@check HYPRE_BoomerAMGSetMultAddPMaxElmts(solver, v)
elseif k === :MultAddTruncFactor
@check HYPRE_BoomerAMGSetMultAddTruncFactor(solver, v)
elseif k === :MultAdditive
@check HYPRE_BoomerAMGSetMultAdditive(solver, v)
elseif k === :Nodal
@check HYPRE_BoomerAMGSetNodal(solver, v)
elseif k === :NodalDiag
@check HYPRE_BoomerAMGSetNodalDiag(solver, v)
elseif k === :NonGalerkTol
@check HYPRE_BoomerAMGSetNonGalerkTol(solver, v...)
elseif k === :NonGalerkinTol
@check HYPRE_BoomerAMGSetNonGalerkinTol(solver, v)
elseif k === :NumCRRelaxSteps
@check HYPRE_BoomerAMGSetNumCRRelaxSteps(solver, v)
elseif k === :NumFunctions
@check HYPRE_BoomerAMGSetNumFunctions(solver, v)
elseif k === :NumGridSweeps
@check HYPRE_BoomerAMGSetNumGridSweeps(solver, v)
elseif k === :NumPaths
@check HYPRE_BoomerAMGSetNumPaths(solver, v)
elseif k === :NumSamples
@check HYPRE_BoomerAMGSetNumSamples(solver, v)
elseif k === :NumSweeps
@check HYPRE_BoomerAMGSetNumSweeps(solver, v)
elseif k === :OldDefault
@check HYPRE_BoomerAMGSetOldDefault(solver)
elseif k === :Omega
@check HYPRE_BoomerAMGSetOmega(solver, v)
elseif k === :OuterWt
@check HYPRE_BoomerAMGSetOuterWt(solver, v)
elseif k === :Overlap
@check HYPRE_BoomerAMGSetOverlap(solver, v)
elseif k === :PMaxElmts
@check HYPRE_BoomerAMGSetPMaxElmts(solver, v)
elseif k === :PlotFileName
@check HYPRE_BoomerAMGSetPlotFileName(solver, v)
elseif k === :PlotGrids
@check HYPRE_BoomerAMGSetPlotGrids(solver, v)
elseif k === :PostInterpType
@check HYPRE_BoomerAMGSetPostInterpType(solver, v)
elseif k === :PrintFileName
@check HYPRE_BoomerAMGSetPrintFileName(solver, v)
elseif k === :PrintLevel
@check HYPRE_BoomerAMGSetPrintLevel(solver, v)
elseif k === :RAP2
@check HYPRE_BoomerAMGSetRAP2(solver, v)
elseif k === :Redundant
@check HYPRE_BoomerAMGSetRedundant(solver, v)
elseif k === :RelaxOrder
@check HYPRE_BoomerAMGSetRelaxOrder(solver, v)
elseif k === :RelaxType
@check HYPRE_BoomerAMGSetRelaxType(solver, v)
elseif k === :RelaxWeight
@check HYPRE_BoomerAMGSetRelaxWeight(solver, v)
elseif k === :RelaxWt
@check HYPRE_BoomerAMGSetRelaxWt(solver, v)
elseif k === :Restriction
@check HYPRE_BoomerAMGSetRestriction(solver, v)
elseif k === :SCommPkgSwitch
@check HYPRE_BoomerAMGSetSCommPkgSwitch(solver, v)
elseif k === :Sabs
@check HYPRE_BoomerAMGSetSabs(solver, v)
elseif k === :SchwarzRlxWeight
@check HYPRE_BoomerAMGSetSchwarzRlxWeight(solver, v)
elseif k === :SchwarzUseNonSymm
@check HYPRE_BoomerAMGSetSchwarzUseNonSymm(solver, v)
elseif k === :SepWeight
@check HYPRE_BoomerAMGSetSepWeight(solver, v)
elseif k === :SeqThreshold
@check HYPRE_BoomerAMGSetSeqThreshold(solver, v)
elseif k === :Simple
@check HYPRE_BoomerAMGSetSimple(solver, v)
elseif k === :SmoothNumLevels
@check HYPRE_BoomerAMGSetSmoothNumLevels(solver, v)
elseif k === :SmoothNumSweeps
@check HYPRE_BoomerAMGSetSmoothNumSweeps(solver, v)
elseif k === :SmoothType
@check HYPRE_BoomerAMGSetSmoothType(solver, v)
elseif k === :StrongThreshold
@check HYPRE_BoomerAMGSetStrongThreshold(solver, v)
elseif k === :StrongThresholdR
@check HYPRE_BoomerAMGSetStrongThresholdR(solver, v)
elseif k === :Sym
@check HYPRE_BoomerAMGSetSym(solver, v)
elseif k === :Threshold
@check HYPRE_BoomerAMGSetThreshold(solver, v)
elseif k === :Tol
@check HYPRE_BoomerAMGSetTol(solver, v)
elseif k === :TruncFactor
@check HYPRE_BoomerAMGSetTruncFactor(solver, v)
elseif k === :Variant
@check HYPRE_BoomerAMGSetVariant(solver, v)
else
throw(ArgumentError("unknown option $k for HYPRE.BoomerAMG"))
end
end
end
function Internals.set_options(s::FlexGMRES, kwargs)
solver = s.solver
for (k, v) in kwargs
if k === :ConvergenceFactorTol
@check HYPRE_FlexGMRESSetConvergenceFactorTol(solver, v)
elseif k === :AbsoluteTol
@check HYPRE_ParCSRFlexGMRESSetAbsoluteTol(solver, v)
elseif k === :KDim
@check HYPRE_ParCSRFlexGMRESSetKDim(solver, v)
elseif k === :Logging
@check HYPRE_ParCSRFlexGMRESSetLogging(solver, v)
elseif k === :MaxIter
@check HYPRE_ParCSRFlexGMRESSetMaxIter(solver, v)
elseif k === :MinIter
@check HYPRE_ParCSRFlexGMRESSetMinIter(solver, v)
elseif k === :ModifyPC
@check HYPRE_ParCSRFlexGMRESSetModifyPC(solver, v)
elseif k === :Precond
Internals.set_precond_defaults(v)
Internals.set_precond(s, v)
elseif k === :PrintLevel
@check HYPRE_ParCSRFlexGMRESSetPrintLevel(solver, v)
elseif k === :Tol
@check HYPRE_ParCSRFlexGMRESSetTol(solver, v)
else
throw(ArgumentError("unknown option $k for HYPRE.FlexGMRES"))
end
end
end
function Internals.set_options(s::GMRES, kwargs)
solver = s.solver
for (k, v) in kwargs
if k === :ConvergenceFactorTol
@check HYPRE_GMRESSetConvergenceFactorTol(solver, v)
elseif k === :RelChange
@check HYPRE_GMRESSetRelChange(solver, v)
elseif k === :SkipRealResidualCheck
@check HYPRE_GMRESSetSkipRealResidualCheck(solver, v)
elseif k === :AbsoluteTol
@check HYPRE_ParCSRGMRESSetAbsoluteTol(solver, v)
elseif k === :KDim
@check HYPRE_ParCSRGMRESSetKDim(solver, v)
elseif k === :Logging
@check HYPRE_ParCSRGMRESSetLogging(solver, v)
elseif k === :MaxIter
@check HYPRE_ParCSRGMRESSetMaxIter(solver, v)
elseif k === :MinIter
@check HYPRE_ParCSRGMRESSetMinIter(solver, v)
elseif k === :Precond
Internals.set_precond_defaults(v)
Internals.set_precond(s, v)
elseif k === :PrintLevel
@check HYPRE_ParCSRGMRESSetPrintLevel(solver, v)
elseif k === :StopCrit
@check HYPRE_ParCSRGMRESSetStopCrit(solver, v)
elseif k === :Tol
@check HYPRE_ParCSRGMRESSetTol(solver, v)
else
throw(ArgumentError("unknown option $k for HYPRE.GMRES"))
end
end
end
function Internals.set_options(s::ILU, kwargs)
solver = s.solver
for (k, v) in kwargs
if k === :DropThreshold
@check HYPRE_ILUSetDropThreshold(solver, v)
elseif k === :DropThresholdArray
@check HYPRE_ILUSetDropThresholdArray(solver, v)
elseif k === :LevelOfFill
@check HYPRE_ILUSetLevelOfFill(solver, v)
elseif k === :LocalReordering
@check HYPRE_ILUSetLocalReordering(solver, v)
elseif k === :Logging
@check HYPRE_ILUSetLogging(solver, v)
elseif k === :MaxIter
@check HYPRE_ILUSetMaxIter(solver, v)
elseif k === :MaxNnzPerRow
@check HYPRE_ILUSetMaxNnzPerRow(solver, v)
elseif k === :NSHDropThreshold
@check HYPRE_ILUSetNSHDropThreshold(solver, v)
elseif k === :NSHDropThresholdArray
@check HYPRE_ILUSetNSHDropThresholdArray(solver, v)
elseif k === :PrintLevel
@check HYPRE_ILUSetPrintLevel(solver, v)
elseif k === :SchurMaxIter
@check HYPRE_ILUSetSchurMaxIter(solver, v)
elseif k === :Tol
@check HYPRE_ILUSetTol(solver, v)
elseif k === :Type
@check HYPRE_ILUSetType(solver, v)
else
throw(ArgumentError("unknown option $k for HYPRE.ILU"))
end
end
end
function Internals.set_options(s::ParaSails, kwargs)
solver = s.solver
for (k, v) in kwargs
if k === :Filter
@check HYPRE_ParCSRParaSailsSetFilter(solver, v)
elseif k === :Loadbal
@check HYPRE_ParCSRParaSailsSetLoadbal(solver, v)
elseif k === :Logging
@check HYPRE_ParCSRParaSailsSetLogging(solver, v)
elseif k === :Params
@check HYPRE_ParCSRParaSailsSetParams(solver, v...)
elseif k === :Reuse
@check HYPRE_ParCSRParaSailsSetReuse(solver, v)
elseif k === :Sym
@check HYPRE_ParCSRParaSailsSetSym(solver, v)
else
throw(ArgumentError("unknown option $k for HYPRE.ParaSails"))
end
end
end
function Internals.set_options(s::PCG, kwargs)
solver = s.solver
for (k, v) in kwargs
if k === :AbsoluteTolFactor
@check HYPRE_PCGSetAbsoluteTolFactor(solver, v)
elseif k === :ConvergenceFactorTol
@check HYPRE_PCGSetConvergenceFactorTol(solver, v)
elseif k === :RecomputeResidual
@check HYPRE_PCGSetRecomputeResidual(solver, v)
elseif k === :RecomputeResidualP
@check HYPRE_PCGSetRecomputeResidualP(solver, v)
elseif k === :ResidualTol
@check HYPRE_PCGSetResidualTol(solver, v)
elseif k === :AbsoluteTol
@check HYPRE_ParCSRPCGSetAbsoluteTol(solver, v)
elseif k === :Logging
@check HYPRE_ParCSRPCGSetLogging(solver, v)
elseif k === :MaxIter
@check HYPRE_ParCSRPCGSetMaxIter(solver, v)
elseif k === :Precond
Internals.set_precond_defaults(v)
Internals.set_precond(s, v)
elseif k === :PrintLevel
@check HYPRE_ParCSRPCGSetPrintLevel(solver, v)
elseif k === :RelChange
@check HYPRE_ParCSRPCGSetRelChange(solver, v)
elseif k === :StopCrit
@check HYPRE_ParCSRPCGSetStopCrit(solver, v)
elseif k === :Tol
@check HYPRE_ParCSRPCGSetTol(solver, v)
elseif k === :TwoNorm
@check HYPRE_ParCSRPCGSetTwoNorm(solver, v)
else
throw(ArgumentError("unknown option $k for HYPRE.PCG"))
end
end
end