Changes: Development#
General#
Increase the minimum required CUDA Toolkit version to 11.4
Configure/Build#
Sys#
Add
PetscGetConfiguration()Deprecate
PETSC_MPI_THREAD_REQUIRED
Event Logging#
PetscViewer#
Add support for writing CGNS descriptors on the base node:
PetscViewerCGNSGetDescriptors(),PetscViewerCGNSRestoreDescriptors(),PetscViewerCGNSSetDescriptor()
PetscDraw#
AO#
IS#
VecScatter / PetscSF#
PF#
Vec#
PetscSection#
PetscPartitioner#
Mat#
Add
MATPRODUCT_PtAPsupport forMATDIAGONALandMATCONSTANTDIAGONALAdd
MatSeqAIJGetKokkosView(),MatSeqAIJRestoreKokkosView(),MatSeqAIJGetKokkosViewWrite()andMatSeqAIJRestoreKokkosViewWrite()to the public API
MatCoarsen#
PC#
Add
PCGAMGSetProlongatorFilter()andPCGAMGGetProlongatorFilter()to set/get the threshold for filtering small entries from the prolongator inPCGAMG
KSP#
SNES#
Change
SNESSetUp()to not overwrite the NPC application context if one has previously been set on the NPCChange
SNESComputeJacobian()to call the user-provided Jacobian function when a left NPC is active and the solver is notSNESASPIN
SNESLineSearch#
Deprecate
SNESLINESEARCHBASICin favor ofSNESLINESEARCHNONE
TS#
Add
DMTSSetIFunctionPre()Expose
TSDiscGradGetX0AndXdot()andTSDiscGradRestoreX0AndXdot()Add
TSIsImplicit()that indicates if theTSTypeis implicit and usesSNESorKSP
TAO#
TaoTerm#
PetscRegressor#
PetscDA#
Add the
PetscDALETKFLocalizationTypeenum (PETSCDA_LETKF_LOC_NONE,PETSCDA_LETKF_LOC_GASPARI_COHN,PETSCDA_LETKF_LOC_GAUSSIAN,PETSCDA_LETKF_LOC_BOXCAR) selecting the LETKF localization kernelAdd
PetscDALETKFSetLocalizationType(),PetscDALETKFGetLocalizationType(),PetscDALETKFSetLocalizationRadius(),PetscDALETKFGetLocalizationRadius(), andPetscDALETKFSetLocalizationCoordinates(); the localization matrix is built lazily from these distance-based kernel parametersAdd
PetscDALETKFResetLocalization()to drop the cached localization matrix so the next analysis rebuilds it from the current kernel parametersRemove
PETSCDAETKF; usePETSCDALETKFwithPetscDALETKFSetLocalizationType(da, PETSCDA_LETKF_LOC_NONE)for identical behaviorRemove
PetscDAEnsembleSetSqrtType(),PetscDAEnsembleGetSqrtType(), thePetscDASqrtTypeenum (PETSCDA_SQRT_CHOLESKY,PETSCDA_SQRT_EIGEN), and the-petscda_ensemble_sqrt_typeoption; the symmetric-eigendecomposition square root is now the only pathRemove
PetscDALETKFSetLocalization(); use the distance-based APIPetscDALETKFSetLocalizationType(),PetscDALETKFSetLocalizationRadius(), andPetscDALETKFSetLocalizationCoordinates()insteadRemove
PetscDALETKFSetObsPerVertex()andPetscDALETKFGetObsPerVertex(); per-vertex observation counts are now derived from the distance-based localization kernelRemove
PetscDALETKFGetLocalizationMatrix(); the localization matrix is an internal cached object built lazily on the first analysis. Callers that previously supplied this matrix should switch toPetscDALETKFSetLocalizationCoordinates()and let the implementation build the matrix from the chosen kernelChange the LETKF distance-based periodicity convention: per-axis periodicity is now activated by
bd[d] > 0.0(the period), and negativebd[d]now raisesPETSC_ERR_ARG_OUTOFRANGE; previously any non-zerobd[d](including negative values) enabled periodicityAdd
PetscDAEnsembleForecastFntypedef for thePetscDAEnsembleForecast()model callbackChange the
PetscDAEnsembleForecast()model callback signature from(Vec, Vec, PetscCtx)to(Mat, PetscCtx); the model now receives the entire ensemble matrix and advances all members in place. Existing per-member callbacks should iterate over the columns withMatDenseGetColumnVec()/MatDenseRestoreColumnVec()(seeShallowWaterStep2D()insrc/ml/da/tutorials/ex4.c)Change
-petscda_viewto fire at the tail of everyPetscDAEnsembleAnalysis()call (mirroringKSPSolve()/SNESSolve()), so it now emits once per analysis cycle rather than once per run; code that wants a single end-of-run snapshot should callPetscDAView()explicitly after the assimilation loop
DM#
Change
DMLabelPropagatePush()to take a reduce operator
DMSwarm#
Add
DMSwarmProjectFields()andDMSwarmProjectGradientFields()Add
DMSwarmSortclassAdd
DMSwarmSortDestroy()andDMSwarmSortView()Allow
DMSwarmCellDMSetSort()to take inNULLand clear the sortAdd
DMSwarmPreallocateMassMatrix()andDMSwarmFillMassMatrix()
DMPlex#
Add
DMPlexDrawCell()Add
DMPlexLabelCompleteStar()Add an extra communicator argument to
DMPlexFilter()to allow extracting local meshesAdd
DMPlexCopyFlags()Add
DMPlexCheckLabel()andDMPlexReconcileLabel()Change CGNS viewer to use multi-component read/write interface for better performance
Add
DMPlexLabelCohesiveCheck()Change
DMPlexLabelCohesiveComplete()to remove split argumentAdd
DM_SHAPE_DIIIDAdd
DMPlexTriangleSetAngleBound(),DMPlexTriangleGetAngleBound(),DMPlexTetgenSetRadiusEdgeBound(),DMPlexTetgenGetRadiusEdgeBound(),DMPlexTetgenSetDihedralBound(),DMPlexTetgenGetDihedralBound()