/*@ TSPseudoSetMaxTimeStep - Sets the maximum time step when using the TSPseudoTimeStepDefault() routine. Logically Collective on TS Input Parameters: + ts - the timestep context - maxdt - the maximum time step, use a non-positive value to deactivate Options Database Key: $ -ts_pseudo_max_dt <increment> Level: advanced .keywords: timestep, pseudo, set .seealso: TSPseudoSetTimeStep(), TSPseudoTimeStepDefault() @*/ PetscErrorCode TSPseudoSetMaxTimeStep(TS ts,PetscReal maxdt) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(ts,TS_CLASSID,1); PetscValidLogicalCollectiveReal(ts,maxdt,2); ierr = PetscTryMethod(ts,"TSPseudoSetMaxTimeStep_C",(TS,PetscReal),(ts,maxdt));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ EPSArnoldiSetDelayed - Activates or deactivates delayed reorthogonalization in the Arnoldi iteration. Logically Collective on EPS Input Parameters: + eps - the eigenproblem solver context - delayed - boolean flag Options Database Key: . -eps_arnoldi_delayed - Activates delayed reorthogonalization in Arnoldi Note: Delayed reorthogonalization is an aggressive optimization for the Arnoldi eigensolver than may provide better scalability, but sometimes makes the solver converge less than the default algorithm. Level: advanced .seealso: EPSArnoldiGetDelayed() @*/ PetscErrorCode EPSArnoldiSetDelayed(EPS eps,PetscBool delayed) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(eps,EPS_CLASSID,1); PetscValidLogicalCollectiveBool(eps,delayed,2); ierr = PetscTryMethod(eps,"EPSArnoldiSetDelayed_C",(EPS,PetscBool),(eps,delayed));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ EPSJDSetKrylovStart - Activates or deactivates starting the searching subspace with a Krylov basis. Logically Collective on EPS Input Parameters: + eps - the eigenproblem solver context - krylovstart - boolean flag Options Database Key: . -eps_jd_krylov_start - Activates starting the searching subspace with a Krylov basis Level: advanced .seealso: EPSJDGetKrylovStart() @*/ PetscErrorCode EPSJDSetKrylovStart(EPS eps,PetscBool krylovstart) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(eps,EPS_CLASSID,1); PetscValidLogicalCollectiveBool(eps,krylovstart,2); ierr = PetscTryMethod(eps,"EPSJDSetKrylovStart_C",(EPS,PetscBool),(eps,krylovstart));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ MatPartitioningChacoSetEigenTol - Sets the tolerance for the eigensolver. Collective on MatPartitioning Input Parameters: + part - the partitioning context - tol - the tolerance Options Database: . -mat_partitioning_chaco_eigen_tol <tol>: Tolerance for eigensolver Note: Must be positive. The default value is 0.001. Level: advanced .seealso: MatPartitioningChacoSetEigenSolver(), MatPartitioningChacoGetEigenTol() @*/ PetscErrorCode MatPartitioningChacoSetEigenTol(MatPartitioning part,PetscReal tol) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(part,MAT_PARTITIONING_CLASSID,1); PetscValidLogicalCollectiveReal(part,tol,2); ierr = PetscTryMethod(part,"MatPartitioningChacoSetEigenTol_C",(MatPartitioning,PetscReal),(part,tol));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCRedundantSetNumber - Sets the number of redundant preconditioner contexts. Logically Collective on PC Input Parameters: + pc - the preconditioner context - nredundant - number of redundant preconditioner contexts; for example if you are using 64 MPI processes and use an nredundant of 4 there will be 4 parallel solves each on 16 = 64/4 processes. Level: advanced .keywords: PC, redundant solve @*/ PetscErrorCode PCRedundantSetNumber(PC pc,PetscInt nredundant) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,1); if (nredundant <= 0) SETERRQ1(PetscObjectComm((PetscObject)pc),PETSC_ERR_ARG_WRONG, "num of redundant pc %D must be positive",nredundant); ierr = PetscTryMethod(pc,"PCRedundantSetNumber_C",(PC,PetscInt),(pc,nredundant));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C PetscViewerFileSetMode - Sets the type of file to be open Logically Collective on PetscViewer Input Parameters: + viewer - the PetscViewer; must be a binary, Matlab, hdf, or netcdf PetscViewer - type - type of file $ FILE_MODE_WRITE - create new file for binary output $ FILE_MODE_READ - open existing file for binary input $ FILE_MODE_APPEND - open existing file for binary output Level: advanced .seealso: PetscViewerFileSetMode(), PetscViewerCreate(), PetscViewerSetType(), PetscViewerBinaryOpen() @*/ PetscErrorCode PetscViewerFileSetMode(PetscViewer viewer,PetscFileMode type) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(viewer,PETSC_VIEWER_CLASSID,1); PetscValidLogicalCollectiveEnum(viewer,type,2); ierr = PetscTryMethod(viewer,"PetscViewerFileSetMode_C",(PetscViewer,PetscFileMode),(viewer,type));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PEPLinearSetExplicitMatrix - Indicate if the matrices A and B for the linearization of the problem must be built explicitly. Logically Collective on PEP Input Parameters: + pep - polynomial eigenvalue solver - explicit - boolean flag indicating if the matrices are built explicitly Options Database Key: . -pep_linear_explicitmatrix <boolean> - Indicates the boolean flag Level: advanced .seealso: PEPLinearGetExplicitMatrix() @*/ PetscErrorCode PEPLinearSetExplicitMatrix(PEP pep,PetscBool explicitmatrix) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pep,PEP_CLASSID,1); PetscValidLogicalCollectiveBool(pep,explicitmatrix,2); ierr = PetscTryMethod(pep,"PEPLinearSetExplicitMatrix_C",(PEP,PetscBool),(pep,explicitmatrix));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ SVDTRLanczosSetOneSide - Indicate if the variant of the Lanczos method to be used is one-sided or two-sided. Logically Collective on SVD Input Parameters: + svd - singular value solver - oneside - boolean flag indicating if the method is one-sided or not Options Database Key: . -svd_trlanczos_oneside <boolean> - Indicates the boolean flag Note: By default, a two-sided variant is selected, which is sometimes slightly more robust. However, the one-sided variant is faster because it avoids the orthogonalization associated to left singular vectors. Level: advanced .seealso: SVDLanczosSetOneSide() @*/ PetscErrorCode SVDTRLanczosSetOneSide(SVD svd,PetscBool oneside) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(svd,SVD_CLASSID,1); PetscValidLogicalCollectiveBool(svd,oneside,2); ierr = PetscTryMethod(svd,"SVDTRLanczosSetOneSide_C",(SVD,PetscBool),(svd,oneside));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ KSPCGUseSingleReduction - Merge the two inner products needed in CG into a single MPI_Allreduce() call. Logically Collective on KSP Input Parameters: + ksp - the iterative context - flg - turn on or off the single reduction Options Database: . -ksp_cg_single_reduction Level: intermediate The algorithm used in this case is described as Method 1 in Lapack Working Note 56, "Conjugate Gradient Algorithms with Reduced Synchronization Overhead Distributed Memory Multiprocessors", by E. F. D'Azevedo, V. L. Eijkhout, and C. H. Romine, December 3, 1999. V. Eijkhout creates the algorithm initially to Chronopoulos and Gear. It requires two extra work vectors than the conventional implementation in PETSc. .keywords: CG, conjugate gradient, Hermitian, symmetric, set, type @*/ PetscErrorCode KSPCGUseSingleReduction(KSP ksp,PetscBool flg) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(ksp,KSP_CLASSID,1); PetscValidLogicalCollectiveBool(ksp,flg,2); ierr = PetscTryMethod(ksp,"KSPCGUseSingleReduction_C",(KSP,PetscBool),(ksp,flg));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ TSAlpha2UseAdapt - Use time-step adaptivity with the Alpha method Logically Collective on TS Input Parameter: + ts - timestepping context - use - flag to use adaptivity Options Database: . -ts_alpha_adapt Level: intermediate .seealso: TSAdapt, TSADAPTBASIC @*/ PetscErrorCode TSAlpha2UseAdapt(TS ts,PetscBool use) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(ts,TS_CLASSID,1); PetscValidLogicalCollectiveBool(ts,use,2); ierr = PetscTryMethod(ts,"TSAlpha2UseAdapt_C",(TS,PetscBool),(ts,use));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C SNESCompositeSetType - Sets the type of composite preconditioner. Logically Collective on SNES Input Parameter: + snes - the preconditioner context - type - SNES_COMPOSITE_ADDITIVE (default), SNES_COMPOSITE_MULTIPLICATIVE Options Database Key: . -snes_composite_type <type: one of multiplicative, additive, special> - Sets composite preconditioner type Level: Developer .keywords: SNES, set, type, composite preconditioner, additive, multiplicative @*/ PetscErrorCode SNESCompositeSetType(SNES snes,SNESCompositeType type) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(snes,SNES_CLASSID,1); PetscValidLogicalCollectiveEnum(snes,type,2); ierr = PetscTryMethod(snes,"SNESCompositeSetType_C",(SNES,SNESCompositeType),(snes,type));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ KSPQCGSetTrustRegionRadius - Sets the radius of the trust region. Logically Collective on KSP Input Parameters: + ksp - the iterative context - delta - the trust region radius (Infinity is the default) Options Database Key: . -ksp_qcg_trustregionradius <delta> Level: advanced .keywords: KSP, QCG, set, trust region radius @*/ PetscErrorCode KSPQCGSetTrustRegionRadius(KSP ksp,PetscReal delta) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(ksp,KSP_CLASSID,1); if (delta < 0.0) SETERRQ(PetscObjectComm((PetscObject)ksp),PETSC_ERR_ARG_OUTOFRANGE,"Tolerance must be non-negative"); ierr = PetscTryMethod(ksp,"KSPQCGSetTrustRegionRadius_C",(KSP,PetscReal),(ksp,delta));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ KSPChebyshevEstEigSetRandom - set random context for estimating eigenvalues Logically Collective Input Arguments: + ksp - linear solver context - random - random number context or NULL to use default Level: intermediate .seealso: KSPChebyshevEstEigSet(), PetscRandomCreate() @*/ PetscErrorCode KSPChebyshevEstEigSetRandom(KSP ksp,PetscRandom random) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(ksp,KSP_CLASSID,1); if (random) PetscValidHeaderSpecific(random,PETSC_RANDOM_CLASSID,2); ierr = PetscTryMethod(ksp,"KSPChebyshevEstEigSetRandom_C",(KSP,PetscRandom),(ksp,random));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ SNESMultiblockSetBlockSize - Sets the block size for structured mesh block division. If not set the matrix block size is used. Logically Collective on SNES Input Parameters: + snes - the solver context - bs - the block size Level: intermediate .seealso: SNESMultiblockGetSubSNES(), SNESMULTIBLOCK, SNESMultiblockSetFields() @*/ PetscErrorCode SNESMultiblockSetBlockSize(SNES snes, PetscInt bs) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(snes, SNES_CLASSID, 1); PetscValidLogicalCollectiveInt(snes, bs, 2); ierr = PetscTryMethod(snes, "SNESMultiblockSetBlockSize_C", (SNES, PetscInt), (snes,bs));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCFactorSetShiftType - adds a particular type of quantity to the diagonal of the matrix during numerical factorization, thus the matrix has nonzero pivots Logically Collective on PC Input Parameters: + pc - the preconditioner context - shifttype - type of shift; one of MAT_SHIFT_NONE, MAT_SHIFT_NONZERO, MAT_SHIFT_POSITIVE_DEFINITE, MAT_SHIFT_INBLOCKS Options Database Key: . -pc_factor_shift_type <shifttype> - Sets shift type or PETSC_DECIDE for the default; use '-help' for a list of available types Level: intermediate .keywords: PC, set, factorization, .seealso: PCFactorSetZeroPivot(), PCFactorSetShiftAmount() @*/ PetscErrorCode PCFactorSetShiftType(PC pc,MatFactorShiftType shifttype) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,1); PetscValidLogicalCollectiveEnum(pc,shifttype,2); ierr = PetscTryMethod(pc,"PCFactorSetShiftType_C",(PC,MatFactorShiftType),(pc,shifttype));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ MatPartitioningPartySetBipart - Activate or deactivate recursive bisection. Collective on MatPartitioning Input Parameters: + part - the partitioning context - bp - boolean flag Options Database: - -mat_partitioning_party_bipart - Bipartitioning option on/off Level: advanced @*/ PetscErrorCode MatPartitioningPartySetBipart(MatPartitioning part,PetscBool bp) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(part,MAT_PARTITIONING_CLASSID,1); PetscValidLogicalCollectiveBool(part,bp,2); ierr = PetscTryMethod(part,"MatPartitioningPartySetBipart_C",(MatPartitioning,PetscBool),(part,bp));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCCompositeSpecialSetAlpha - Sets alpha for the special composite preconditioner for alphaI + R + S Logically Collective on PC Input Parameter: + pc - the preconditioner context - alpha - scale on identity Level: Developer .keywords: PC, set, type, composite preconditioner, additive, multiplicative @*/ PetscErrorCode PCCompositeSpecialSetAlpha(PC pc,PetscScalar alpha) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,1); PetscValidLogicalCollectiveScalar(pc,alpha,2); ierr = PetscTryMethod(pc,"PCCompositeSpecialSetAlpha_C",(PC,PetscScalar),(pc,alpha));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCFactorSetShiftAmount - adds a quantity to the diagonal of the matrix during numerical factorization, thus the matrix has nonzero pivots Logically Collective on PC Input Parameters: + pc - the preconditioner context - shiftamount - amount of shift Options Database Key: . -pc_factor_shift_amount <shiftamount> - Sets shift amount or PETSC_DECIDE for the default Level: intermediate .keywords: PC, set, factorization, .seealso: PCFactorSetZeroPivot(), PCFactorSetShiftType() @*/ PetscErrorCode PCFactorSetShiftAmount(PC pc,PetscReal shiftamount) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,1); PetscValidLogicalCollectiveReal(pc,shiftamount,2); ierr = PetscTryMethod(pc,"PCFactorSetShiftAmount_C",(PC,PetscReal),(pc,shiftamount));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PEPLinearSetCompanionForm - Choose between the two companion forms available for the linearization of a quadratic eigenproblem. Logically Collective on PEP Input Parameters: + pep - polynomial eigenvalue solver - cform - 1 or 2 (first or second companion form) Options Database Key: . -pep_linear_cform <int> - Choose the companion form Level: advanced .seealso: PEPLinearGetCompanionForm() @*/ PetscErrorCode PEPLinearSetCompanionForm(PEP pep,PetscInt cform) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pep,PEP_CLASSID,1); PetscValidLogicalCollectiveInt(pep,cform,2); ierr = PetscTryMethod(pep,"PEPLinearSetCompanionForm_C",(PEP,PetscInt),(pep,cform));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCFactorReorderForNonzeroDiagonal - reorders rows/columns of matrix to remove zeros from diagonal Logically Collective on PC Input Parameters: + pc - the preconditioner context - tol - diagonal entries smaller than this in absolute value are considered zero Options Database Key: . -pc_factor_nonzeros_along_diagonal Level: intermediate .keywords: PC, set, factorization, direct, fill .seealso: PCFactorSetFill(), PCFactorSetShiftNonzero(), PCFactorSetZeroPivot(), MatReorderForNonzeroDiagonal() @*/ PetscErrorCode PCFactorReorderForNonzeroDiagonal(PC pc,PetscReal rtol) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,1); PetscValidLogicalCollectiveReal(pc,rtol,2); ierr = PetscTryMethod(pc,"PCFactorReorderForNonzeroDiagonal_C",(PC,PetscReal),(pc,rtol));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ MatPartitioningChacoSetEigenSolver - Set eigensolver method for Chaco partitioner. Collective on MatPartitioning Input Parameters: + part - the partitioning context - method - one of MP_CHACO_LANCZOS or MP_CHACO_RQI Options Database: . -mat_partitioning_chaco_eigen_solver <method> - the eigensolver Level: advanced Notes: The default is to use a Lanczos method. See Chaco documentation for details. .seealso: MatPartitioningChacoSetEigenTol(),MatPartitioningChacoSetEigenNumber(), MatPartitioningChacoGetEigenSolver() @*/ PetscErrorCode MatPartitioningChacoSetEigenSolver(MatPartitioning part,MPChacoEigenType method) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(part,MAT_PARTITIONING_CLASSID,1); PetscValidLogicalCollectiveEnum(part,method,2); ierr = PetscTryMethod(part,"MatPartitioningChacoSetEigenSolver_C",(MatPartitioning,MPChacoEigenType),(part,method));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCFactorSetFill - Indicate the amount of fill you expect in the factored matrix, fill = number nonzeros in factor/number nonzeros in original matrix. Not Collective, each process can expect a different amount of fill Input Parameters: + pc - the preconditioner context - fill - amount of expected fill Options Database Key: . -pc_factor_fill <fill> - Sets fill amount Level: intermediate Note: For sparse matrix factorizations it is difficult to predict how much fill to expect. By running with the option -info PETSc will print the actual amount of fill used; allowing you to set the value accurately for future runs. Default PETSc uses a value of 5.0 This parameter has NOTHING to do with the levels-of-fill of ILU(). That is set with PCFactorSetLevels() or -pc_factor_levels. .keywords: PC, set, factorization, direct, fill @*/ PetscErrorCode PCFactorSetFill(PC pc,PetscReal fill) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,1); if (fill < 1.0) SETERRQ(PetscObjectComm((PetscObject)pc),PETSC_ERR_ARG_OUTOFRANGE,"Fill factor cannot be less then 1.0"); ierr = PetscTryMethod(pc,"PCFactorSetFill_C",(PC,PetscReal),(pc,fill));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ MatPartitioningChacoSetEigenNumber - Sets the number of eigenvectors to compute during partitioning. Collective on MatPartitioning Input Parameters: + part - the partitioning context - num - the number of eigenvectors Options Database: . -mat_partitioning_chaco_eigen_number <n>: Number of eigenvectors Note: Accepted values are 1, 2 or 3, indicating partitioning by bisection, quadrisection, or octosection. Level: advanced .seealso: MatPartitioningChacoSetEigenSolver(), MatPartitioningChacoGetEigenTol() @*/ PetscErrorCode MatPartitioningChacoSetEigenNumber(MatPartitioning part,PetscInt num) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(part,MAT_PARTITIONING_CLASSID,1); PetscValidLogicalCollectiveInt(part,num,2); ierr = PetscTryMethod(part,"MatPartitioningChacoSetEigenNumber_C",(MatPartitioning,PetscInt),(part,num));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCFactorSetZeroPivot - Sets the size at which smaller pivots are declared to be zero Logically Collective on PC Input Parameters: + pc - the preconditioner context - zero - all pivots smaller than this will be considered zero Options Database Key: . -pc_factor_zeropivot <zero> - Sets tolerance for what is considered a zero pivot Level: intermediate .keywords: PC, set, factorization, direct, fill .seealso: PCFactorSetShiftType(), PCFactorSetShiftAmount() @*/ PetscErrorCode PCFactorSetZeroPivot(PC pc,PetscReal zero) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,1); PetscValidLogicalCollectiveReal(pc,zero,2); ierr = PetscTryMethod(pc,"PCFactorSetZeroPivot_C",(PC,PetscReal),(pc,zero));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ NEPInterpolSetDegree - Sets the degree of the interpolation polynomial. Collective on NEP Input Parameters: + nep - nonlinear eigenvalue solver - deg - polynomial degree Level: advanced .seealso: NEPInterpolGetDegree() @*/ PetscErrorCode NEPInterpolSetDegree(NEP nep,PetscInt deg) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(nep,NEP_CLASSID,1); PetscValidLogicalCollectiveInt(nep,deg,2); ierr = PetscTryMethod(nep,"NEPInterpolSetDegree_C",(NEP,PetscInt),(nep,deg));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCFactorSetPivotInBlocks - Determines if pivoting is done while factoring each block with BAIJ or SBAIJ matrices Logically Collective on PC Input Parameters: + pc - the preconditioner context - pivot - PETSC_TRUE or PETSC_FALSE Options Database Key: . -pc_factor_pivot_in_blocks <true,false> Level: intermediate .seealso: PCILUSetMatOrdering(), PCFactorSetColumnPivot() @*/ PetscErrorCode PCFactorSetPivotInBlocks(PC pc,PetscBool pivot) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,1); PetscValidLogicalCollectiveBool(pc,pivot,2); ierr = PetscTryMethod(pc,"PCFactorSetPivotInBlocks_C",(PC,PetscBool),(pc,pivot));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCPARMSSetLocal - Sets the local preconditioner to be used in PARMS. Collective on PC Input Parameters: + pc - the preconditioner context - type - the local preconditioner type, one of .vb PC_PARMS_LOCAL_ILU0 - ILU0 preconditioner PC_PARMS_LOCAL_ILUK - ILU(k) preconditioner PC_PARMS_LOCAL_ILUT - ILUT preconditioner PC_PARMS_LOCAL_ARMS - ARMS preconditioner .ve Options Database Keys: -pc_parms_local [ilu0,iluk,ilut,arms] - Sets local preconditioner Level: intermediate Notes: For the ARMS preconditioner, one can use either the symmetric ARMS or the non-symmetric variant (ARMS-ddPQ) by setting the permutation type with PCPARMSSetNonsymPerm(). See the pARMS function parms_PCILUSetType for more information. .seealso: PCPARMS, PCPARMSSetGlobal(), PCPARMSSetNonsymPerm() @*/ PetscErrorCode PCPARMSSetLocal(PC pc,PCPARMSLocalType type) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,1); PetscValidLogicalCollectiveEnum(pc,type,2); ierr = PetscTryMethod(pc,"PCPARMSSetLocal_C",(PC,PCPARMSLocalType),(pc,type));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PCFactorSetReuseFill - When matrices with same different nonzero structure are factored, this causes later ones to use the fill ratio computed in the initial factorization. Logically Collective on PC Input Parameters: + pc - the preconditioner context - flag - PETSC_TRUE to reuse else PETSC_FALSE Options Database Key: . -pc_factor_reuse_fill - Activates PCFactorSetReuseFill() Level: intermediate .keywords: PC, levels, reordering, factorization, incomplete, Cholesky .seealso: PCFactorSetReuseOrdering() @*/ PetscErrorCode PCFactorSetReuseFill(PC pc,PetscBool flag) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(pc,PC_CLASSID,2); PetscValidLogicalCollectiveBool(pc,flag,2); ierr = PetscTryMethod(pc,"PCFactorSetReuseFill_C",(PC,PetscBool),(pc,flag));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ EPSJDSetInitialSize - Sets the initial size of the searching space. Logically Collective on EPS Input Parameters: + eps - the eigenproblem solver context - initialsize - number of vectors of the initial searching subspace Options Database Key: . -eps_jd_initial_size - number of vectors of the initial searching subspace Notes: If EPSJDGetKrylovStart() is PETSC_FALSE and the user provides vectors with EPSSetInitialSpace(), up to initialsize vectors will be used; and if the provided vectors are not enough, the solver completes the subspace with random vectors. In the case of EPSJDGetKrylovStart() being PETSC_TRUE, the solver gets the first vector provided by the user or, if not available, a random vector, and expands the Krylov basis up to initialsize vectors. Level: advanced .seealso: EPSJDGetInitialSize(), EPSJDGetKrylovStart() @*/ PetscErrorCode EPSJDSetInitialSize(EPS eps,PetscInt initialsize) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(eps,EPS_CLASSID,1); PetscValidLogicalCollectiveInt(eps,initialsize,2); ierr = PetscTryMethod(eps,"EPSJDSetInitialSize_C",(EPS,PetscInt),(eps,initialsize));CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ TSPseudoSetTimeStepIncrement - Sets the scaling increment applied to dt when using the TSPseudoTimeStepDefault() routine. Logically Collective on TS Input Parameters: + ts - the timestep context - inc - the scaling factor >= 1.0 Options Database Key: $ -ts_pseudo_increment <increment> Level: advanced .keywords: timestep, pseudo, set, increment .seealso: TSPseudoSetTimeStep(), TSPseudoTimeStepDefault() @*/ PetscErrorCode TSPseudoSetTimeStepIncrement(TS ts,PetscReal inc) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(ts,TS_CLASSID,1); PetscValidLogicalCollectiveReal(ts,inc,2); ierr = PetscTryMethod(ts,"TSPseudoSetTimeStepIncrement_C",(TS,PetscReal),(ts,inc));CHKERRQ(ierr); PetscFunctionReturn(0); }