Changes: 3.22#
General:
Add
-mpiuni-allow-multiprocess-launchto allow mpiexec to launch multiple indendent MPI-Uni jobs. Previously a sanity check error message was always produced
Configure/Build:
Add
--with-openmp-kernelsUpdate to work with python-3.13
Change
MPIU_Allreduce()to always returns an MPI error code that should be checked withPetscCallMPI()Add
PetscCallReturnMPI(),PetscCallMPIReturnMPI(), andPetscCheckReturnMPI()to check for in PETSc provided MPI callbacks
Sys:
Deprecate
PetscOptionsRestoreViewer()in favor ofPetscViewerDestroy()Deprecate
PetscOptionsGetViewer()andPetscOptionsGetViewers()in favor ofPetscOptionsCreateViewer()andPetscOptionsCreateViewers()Deprecate
PetscOptionsPushGetViewerOff(),PetscOptionsPopGetViewerOff(), andPetscOptionsGetViewerOff()in favor ofPetscOptionsPushCreateViewerOff(),PetscOptionsPopCreateViewerOff(), andPetscOptionsGetCreateViewerOff()Add
PetscObjectContainerCompose()andPetscObjectContainerQuery()Add
size_targument toPetscMPIErrorString()Add
PetscCallExternalAbort()for calling external library functions from functions not returningPetscErrorCodeAdd
PetscOptionsGetBool3()to get a ternary logical value from a command line option
Event Logging:
PetscViewer:
Add
PetscShmgetAllocateArrayScalar(),PetscShmgetDeallocateArrayScalar(),PetscShmgetAllocateArrayInt(), andPetscShmgetDeallocateArrayInt()for Fortran
PetscDraw:
AO:
IS:
VecScatter / PetscSF:
Add
PetscSFRegisterPersistent()andPetscSFDeregisterPersistent()for safe optimization of persistent communication
PF:
Vec:
The
ISpassed toVecISAXPY()andVecISCopy().VecISSet()andVecISShift()must have the same communicator of the vectors usedMake
VecLockAPI active in optimized modeVecNestSetSubVec()andVecNestSetSubVecs()now take references to input vectors rather than creating duplicates
PetscSection:
PetscPartitioner:
Mat:
Change
MatProductSetFill()to supportPETSC_DETERMINEandPETSC_CURRENT.MatMatMult()and its friends and relations now acceptPETSC_DETERMINEandPETSC_CURRENTin thefillargument.PETSC_DEFAULTis deprecated for those functionsChange the default
MatTypeof the outputMatofMatSchurComplementComputeExplicitOperator()to beMATDENSE. It may be changed from the command line, e.g.,-fieldsplit_1_explicit_operator_mat_type aijAdd
MATOP_GET_BLOCK_DIAGONALandMATOP_GET_VBLOCK_DIAGONALto set methods returning the diagonal point blocks of a matrix
MatCoarsen:
PC:
Add support in
PCFieldSplitSetFields()including with-pc_fieldsplit_%d_fields fieldsforMATNEST, making it possible to utilize multiple levels ofPCFIELDSPLITwithMATNESTfrom the command lineAdd
PCCompositeSpecialSetAlphaMat()API to use a matrix other than the identity in preconditioners based on an alternating direction iteration, e.g., setting \(M\) for \(P = (A + alpha M) M^{-1} (alpha M + B)\)Reuse the result of \(T = A_{00}^-1 A_{01}\) in
PCApply_FieldSplit_Schurwith-pc_fieldsplit_schur_fact_type fullChange the option database keys for coarsening for
PCGAMGto use the prefix-pc_gamg_, for example-pc_gamg_mat_coarsen_typeAdd
PCGAMGSetGraphSymmetrize()and-pc_gamg_graph_symmetrizeto control symmetrization when coarsening the graphAdd
-pc_hypre_type iluwith-pc_hypre_ilu_type,-pc_hypre_ilu_iterative_setup_type,-pc_hypre_ilu_iterative_setup_maxiter,-pc_hypre_ilu_iterative_setup_tolerance,-pc_hypre_ilu_print_level,-pc_hypre_ilu_logging,-pc_hypre_ilu_level,-pc_hypre_ilu_max_nnz_per_row,-pc_hypre_ilu_tol,-pc_hypre_ilu_maxiter,-pc_hypre_ilu_drop_threshold,-pc_hypre_ilu_tri_solve,-pc_hypre_ilu_lower_jacobi_iters,-pc_hypre_ilu_upper_jacobi_iters, and-pc_hypre_ilu_local_reorderingImprove
-pc_type boomeramgwith-pc_hypre_boomeramg_smooth_num_sweeps,-pc_hypre_boomeramg_ilu_type,-pc_hypre_boomeramg_ilu_iterative_setup_type,-pc_hypre_boomeramg_ilu_iterative_setup_option,-pc_hypre_boomeramg_ilu_iterative_setup_maxiter,-pc_hypre_boomeramg_ilu_iterative_setup_tolerance,-pc_hypre_boomeramg_ilu_print_level,-pc_hypre_boomeramg_ilu_logging,-pc_hypre_boomeramg_ilu_level,-pc_hypre_boomeramg_ilu_max_nnz_per_row,-pc_hypre_boomeramg_ilu_maxiter,-pc_hypre_boomeramg_ilu_drop_tol,-pc_hypre_boomeramg_ilu_tri_solve,-pc_hypre_boomeramg_ilu_lower_jacobi_iters,-pc_hypre_boomeramg_ilu_upper_jacobi_iters, and-pc_hypre_boomeramg_ilu_local_reordering
KSP:
Add support for
PETSC_DETERMINEas an argument toKSPSetTolerances()to set the parameter back to its initial value when the object’s type was setDeprecate
PETSC_DEFAULTin favor ofPETSC_CURRENTforKSPSetTolerances()
SNES:
Add support for
PETSC_DETERMINEas an argument toSNESSetTolerances()to set the parameter back to its initial value when the object’s type was setDeprecate
PETSC_DEFAULTin favor ofPETSC_CURRENTforSNESSetTolerances()Add
DMAdaptorMonitor(),DMAdaptorMonitorSet(),DMAdaptorMonitorCancel(), andDMAdaptorMonitorSetFromOptions()Add
DMAdaptorMonitorSize(),DMAdaptorMonitorError(),DMAdaptorMonitorErrorDraw(),DMAdaptorMonitorErrorDrawLGCreate(), andDMAdaptorMonitorErrorDrawLG()Add
DMAdaptorMonitorRegister(),DMAdaptorMonitorRegisterAll(), andDMAdaptorMonitorRegisterDestroy()Add
DMAdaptorGetCriterion()andDMAdaptorSetCriterion()Add Newton’s method with arc length continuation:
SNESNEWTONALwithSNESNewtonALSetFunction(),SNESNewtonALGetFunction(),SNESNewtonALComputeFunction(),SNESNewtonALGetLoadParameter(), andSNESNewtonALSetCorrectionType()Add
SNESNewtonTRSetTolerances()andSNESNewtonTRSetUpdateParameters()to programmatically set trust region parametersDeprecate
SNESSetTrustRegionTolerance()in favor ofSNESNewtonTRSetTolerances()Add
SNESResetCounters()to reset counters for linear iterations and function evaluations
SNESLineSearch:
TS:
Add Rosenbrock-W methods from [Ran15] with \(B_{PR}\) stability:
TSROSWR34PRW,TSROSWR3PRL2,TSROSWRODASPR, andTSROSWRODASPR2Add support for
PETSC_DETERMINEas an argument toTSSetTolerances()to set the parameter back to its initial value when the object’s type was setDeprecate
PETSC_DEFAULTin favor ofPETSC_CURRENTforTSSetTolerances()Add support for
PETSC_DETERMINEas an argument toTSSetMaxSteps()andTSSetMaxTime()Deprecate
PETSC_DEFAULTin favor ofPETSC_CURRENTforTSAdaptSetSafety()Deprecate
PETSC_DEFAULTin favor ofPETSC_CURRENTforTSAdaptSetClip()Deprecate
PETSC_DEFAULTin favor ofPETSC_CURRENTforTSAdaptSetStepLimits()Add
TSGetStepResize()Add
-ts_monitor_solution_vtk_intervalto control the interval for dumping filesAdd a new ARKIMEX solver for fast-slow systems that are partitioned component-wise and additively at the same time
Add
TSRHSSplitSetIFunction(),TSRHSSplitSetIJacobian(),TSRHSSplitSetSNES(),TSRHSSplitGetSNES(),TSARKIMEXSetFastSlowSplit(), andTSARKIMEXGetFastSlowSplit()to support the new solver
TAO:
Add support for
PETSC_DETERMINEas an argument toTaoSetTolerances()andTaoSetConstraintTolerances()to set the parameter back to its initial value when the object’s type was setDeprecate
PETSC_DEFAULTin favor ofPETSC_CURRENTforTaoSetTolerances()andTaoSetConstraintTolerances()
DM/DA:
Add
DMGetSparseLocalize()andDMSetSparseLocalize()Add
DMGeomModelRegister(),DMGeomModelRegisterAll(),DMGeomModelRegisterDestroy(),DMSnapToGeomModel(), andDMSetSnapToGeomModel()to support registering geometric modelsAdd an additional return vector to
DMCreateMassMatrixLumped()to retrieve the local mass lumpingAdd
DMPlexMigrateGlobalToNaturalSF()modifies the NaturalSF to map from the SF’s old global section to the new global section
DMSwarm:
DMPlex:
Add
DMLabelGetValueBounds()Add
DMPlexOrientLabel()Add an argument to
DMPlexLabelCohesiveComplete()in order to change behavior at surface boundaryRemove
DMPlexSnapToGeomModel()Add refinement argument to
DMPlexCreateHexCylinderMesh()Now
DMPlexComputeBdIntegral()takes one function per fieldAdd
DMPlexComputeL2FluxDiffVec()andDMPlexComputeL2FluxDiffVecLocal()Add
DMAdaptorSetType(),DMAdaptorGetType(),DMAdaptorRegister(),DMAdaptorRegisterAll(), andDMAdaptorRegisterDestroy()Add
DMAdaptorGetMixedSetupFunction()andDMAdaptorSetMixedSetupFunction()Add
DMPlexBuildFromCellSectionParallel()andDMPlexCreateFromCellSectionParallel()Add
-dm_plex_box_labelto add “Face Sets” label with current “box” conventionsAdd “Face Sets” label to simplex meshes using current “box” conventions
Update
PetscViewerExodusIIobject to cache variable names for faster and more robust look-upsAdd
PetscViewerExodusIISetNodalVariable(),PetscViewerExodusIISetZonalVariable(),PetscViewerExodusIIGetNodalVariable(), andPetscViewerExodusIIGetZonalVariable()to set or get the number of variables in a fileAdd
PetscViewerExodusIISetNodalVariableName(),PetscViewerExodusIISetZonalVariableName(),PetscViewerExodusIIGetNodalVariableName(), andPetscViewerExodusIIGetZonalVariableName()to set or get a single variable nameAdd
PetscViewerExodusIISetNodalVariablesNames(),PetscViewerExodusIISetZonalVariablesNames(),PetscViewerExodusIIGetNodalVariablesNames(), andPetscViewerExodusIIGetZonalVariablesNames()to set or get all variable names at the same time (not available in Fortran)Add degree bounds to
DMCopyFields(),DMCopyDS(),PetscDSCopy(), andPetscDSSelectDiscretizations()Add
PetscFELimitDegree()Add localizationHeight and sparseLocalize arguments to
DMPlexCreateBoxMesh()for coordinate localization on periodic meshesAdd parallel CGNS reader, enabled by
-dm_plex_cgns_parallelAdd CGNS function for
VecLoad()of solutions in parallel (must be run with-dm_plex_cgns_parallel)Add
PetscViewerCGNSOpen()convenience functionAdd
PetscViewerCGNSGetSolutionTime(),PetscViewerCGNSGetSolutionName(),PetscViewerCGNSSetSolutionIndex(), andPetscViewerCGNSGetSolutionIndex()
FE/FV:
DMNetwork:
DMStag:
DT:
Fortran:
Add
PETSC_NULL_ENUMto be used instead ofPETSC_NULL_INTEGERwhen a pointer to anenumis expected in a PETSc function callAdd
PETSC_NULL_INTEGER_ARRAY,PETSC_NULL_SCALAR_ARRAY, andPETSC_NULL_REAL_ARRAYfor use instead ofPETSC_NULL_INTEGER,PETSC_NULL_SCALAR, andPETSC_NULL_REALwhen an array is expected in a PETSc function callAdd automatically generated interface definitions for most PETSc functions to detect illegal usage at compile time
Add
PetscObjectIsNull()for users to check if a PETSc object isNULLChange the PETSc Fortran API so that non-array values,
v, passed to PETSc routines expecting arrays must be cast with[v]in the calling sequence