Changes: Development#
General:
Configure/Build:
Add
--download-cutestand--download-sifdecodefor the CUTEst optimization testing environment and SIF problem decoderAdd Meson package builds,
--download-meson, and--download-package-meson-argumentsfor additional Meson setup argumentsAdd
--download-ninjaand--with-ninja-execfor the Ninja backend used by Meson package buildsAdd
--with-meson-execto select an existing Meson executable
Sys:
Add
PETSC_TLSto declare a variable thread-local when configured with--with-threadsafety=1Maintain a separate
PetscStackfor each thread when configured with--with-debugging=1 --with-threadsafety=1Add
PetscCommCreateNonempty()andPetscCommDestroyNonempty()for external libraries, such as ParMETIS and PT-SCOTCH, that require every process of their communicator to own data
Event Logging:
Change the
CpuToGpu CountandGpuToCpu Countcolumns of-log_viewto report the maximum over the processes instead of the average, which rounded to 0 whenever the total number of copies was less than half the number of processes; the size columns remain averages
PetscViewer:
PetscDraw:
AO:
IS:
VecScatter / PetscSF:
PF:
Vec:
Add a device implementation of
VecSqrtAbs()forVECKOKKOS; previously it copied the vector to the host
PetscSection:
PetscPartitioner:
Mat:
Add device implementations of
MatNorm()withNORM_1,NORM_FROBENIUS, andNORM_INFINITYforMATAIJKOKKOS; previously all norms copied the matrix values to the hostAdd
-mat_spdto setMAT_SPDfrom the options database inMatSetFromOptions()Change
MatSetOption()to error when a symmetry-related option contradicts an already known propertyAdd support for
MatZeroRows()andMatZeroRowsColumns()with a nonzero diagonal value on aMATISwhose local matrix does not implementMatSetValues(), such asMATSHELLChange
MatSetValuesCOO()forMATAIJand its device subtypes to generate an error when the nonzero pattern has changed sinceMatSetPreallocationCOO(), for example becauseMatSetValues()inserted a new nonzero; values were previously written into wrong locations in such a sequence of eventsChange
MatAXPY()withDIFFERENT_NONZERO_PATTERNforMATSEQAIJandMATMPIAIJto add in place when the nonzeros ofXare a subset of those ofY, keeping the nonzero pattern and nonzero state ofY, as well as the options that survive assembly, such asMAT_SYMMETRY_ETERNALAdd
MatGetRowSumAbs()forMATHYPRE, on the host and the device, and device implementations ofMatGetRowSumAbs()forMATAIJCUSPARSE,MATAIJHIPSPARSE, andMATAIJKOKKOS; previously the AIJ device types copied the matrix values to the hostChange
MatSetRandom()to no longer assemble at the interface;MATOP_SETRANDOMimplementations must leave the matrix assembled with increased state
MatCoarsen:
PC:
Add
PCHPDDMSetScaling()to supply a diagonal scalingVecfor the deflation space set withPCHPDDMSetDeflationMat(). If the fine level is aPCASM, its defaultPCASMTypeis set toPC_ASM_WEIGHTED, in which case the scaling is forwarded accordingly
KSP:
Add
KSPCGTRNormType,KSPCGSetTRNormType(), andKSPCGGetTRNormType()to select the trust-region norm inKSPCG,KSPSTCG,KSPNASH, andKSPGLTRDeprecate
KSPCGGetNormD()in favor ofKSPCGGetTRSolutionNorm()and-ksp_cg_dtypein favor of-ksp_cg_tr_norm_typeImplement
KSPSTCGas a specialization ofKSPCG, sharing trust-region norms, feasible Euclidean initial guesses, and objective targetsAdd
-ksp_cg_radius radiusandKSPCGGetTRSolutionNorm()support toKSPCG
SNES:
SNESLineSearch:
TS:
TAO:
Add support for CUTEst unconstrained problems in TAO tutorials and tests
Map
TAOSNESconvergence and divergence reasons with the publicTaoConvergedReasonFromSNES(), and addTaoSNESGetSNES()to access the underlying solver
TaoTerm:
PetscRegressor:
PetscDA:
DM:
DMSwarm:
DMPlex:
FE/FV:
DMNetwork:
DMStag:
DT:
Fortran: