Changes: 3.22#
General:
Add
-mpiuni-allow-multiprocess-launch
to allow mpiexec to launch multiple indendent MPI-Uni jobs. Previously a sanity check error message was always produced
Configure/Build:
Add
--with-openmp-kernels
Update 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_t
argument toPetscMPIErrorString()
Add
PetscCallExternalAbort()
for calling external library functions from functions not returningPetscErrorCode
Add
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
IS
passed toVecISAXPY()
andVecISCopy()
.VecISSet()
andVecISShift()
must have the same communicator of the vectors usedMake
VecLock
API active in optimized modeVecNestSetSubVec()
andVecNestSetSubVecs()
now take references to input vectors rather than creating duplicates
PetscSection:
PetscPartitioner:
Mat:
Change
MatProductSetFill()
to supportPETSC_DETERMINE
andPETSC_CURRENT
.MatMatMult()
and its friends and relations now acceptPETSC_DETERMINE
andPETSC_CURRENT
in thefill
argument.PETSC_DEFAULT
is deprecated for those functionsChange the default
MatType
of the outputMat
ofMatSchurComplementComputeExplicitOperator()
to beMATDENSE
. It may be changed from the command line, e.g.,-fieldsplit_1_explicit_operator_mat_type aij
Add
MATOP_GET_BLOCK_DIAGONAL
andMATOP_GET_VBLOCK_DIAGONAL
to set methods returning the diagonal point blocks of a matrix
MatCoarsen:
PC:
Add support in
PCFieldSplitSetFields()
including with-pc_fieldsplit_%d_fields fields
forMATNEST
, making it possible to utilize multiple levels ofPCFIELDSPLIT
withMATNEST
from 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_Schur
with-pc_fieldsplit_schur_fact_type full
Change the option database keys for coarsening for
PCGAMG
to use the prefix-pc_gamg_
, for example-pc_gamg_mat_coarsen_type
Add
PCGAMGSetGraphSymmetrize()
and-pc_gamg_graph_symmetrize
to control symmetrization when coarsening the graphAdd
-pc_hypre_type ilu
with-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_reordering
Improve
-pc_type boomeramg
with-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_DETERMINE
as an argument toKSPSetTolerances()
to set the parameter back to its initial value when the object’s type was setDeprecate
PETSC_DEFAULT
in favor ofPETSC_CURRENT
forKSPSetTolerances()
SNES:
Add support for
PETSC_DETERMINE
as an argument toSNESSetTolerances()
to set the parameter back to its initial value when the object’s type was setDeprecate
PETSC_DEFAULT
in favor ofPETSC_CURRENT
forSNESSetTolerances()
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:
SNESNEWTONAL
withSNESNewtonALSetFunction()
,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
, andTSROSWRODASPR2
Add support for
PETSC_DETERMINE
as an argument toTSSetTolerances()
to set the parameter back to its initial value when the object’s type was setDeprecate
PETSC_DEFAULT
in favor ofPETSC_CURRENT
forTSSetTolerances()
Add support for
PETSC_DETERMINE
as an argument toTSSetMaxSteps()
andTSSetMaxTime()
Deprecate
PETSC_DEFAULT
in favor ofPETSC_CURRENT
forTSAdaptSetSafety()
Deprecate
PETSC_DEFAULT
in favor ofPETSC_CURRENT
forTSAdaptSetClip()
Deprecate
PETSC_DEFAULT
in favor ofPETSC_CURRENT
forTSAdaptSetStepLimits()
Add
TSGetStepResize()
Add
-ts_monitor_solution_vtk_interval
to 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_DETERMINE
as an argument toTaoSetTolerances()
andTaoSetConstraintTolerances()
to set the parameter back to its initial value when the object’s type was setDeprecate
PETSC_DEFAULT
in favor ofPETSC_CURRENT
forTaoSetTolerances()
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_label
to add “Face Sets” label with current “box” conventionsAdd “Face Sets” label to simplex meshes using current “box” conventions
Update
PetscViewerExodusII
object 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_parallel
Add 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_ENUM
to be used instead ofPETSC_NULL_INTEGER
when a pointer to anenum
is expected in a PETSc function callAdd
PETSC_NULL_INTEGER_ARRAY
,PETSC_NULL_SCALAR_ARRAY
, andPETSC_NULL_REAL_ARRAY
for use instead ofPETSC_NULL_INTEGER
,PETSC_NULL_SCALAR
, andPETSC_NULL_REAL
when 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 isNULL
Change 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