Changes: 3.24#
General:
Add
PETSCPYTHONPATHto the generated$PETSC_DIR/$PETSC_ARCH/lib/petsc/conf/petscvariablesfile so it is available to users through the makefile systemAdd
PETSCPYTHONPATHto the generated$PETSC_DIR/$PETSC_ARCH/lib/pkgconfig/PETSc.pcfile so it is available to users withPKG_CONFIG_PATH=$PETSC_DIR/$PETSC_ARCH/lib/pkgconfig pkg-config --variable=PETSCPYTHONPATH PETSc.pcAdd
EXTRA_OPTIONS_INITIALto the test system, which prepends options
Configure/Build:
Change
make sphinxhtmlin thedocdirectory to bemake docsChange
make docsto put all its artifacts in${PETSC_ARCH}-docinstead ofdocAdd support for
--download-xxx,--with-xxx, and-with-xxx-dirfor Python packages that install with pip. Seepackages.pyChange
make alletagstomake etagsDeactivate Fortran bindings of SuperLU_DIST and ExodusII by default, but they can still be built with the configure options
--with-superlu_dist-fortran-bindingsand--with-exodusii-fortran-bindings, respectivelyAdd
--with-python-exec-from-env=pythonto allow providing the Python to be used by mpi4py and petsc4py without hard-wiring the full path at ./configure time
Sys:
Add
PetscOptionsBool3()Add
PETSC_EDeprecate
PetscSSEIsEnabled()Add
PetscBTCopy()Change
PetscBoolto be a C bool. It now has a size of one byte, when previously it had a size of four bytesDeprecate
MPIU_BOOLin favor ofMPI_C_BOOL. This is now possible sincePetscBoolis now a C boolAdd
PetscStackView()to the public APIChange the default file pointer used in
PetscStackView()ifNULLis used toPETSC_STDERRAdd
-petsc_viewer_stdout_format formatnameto allow initializing the format ofPETSC_VIEWER_STDOUT_()
Event Logging:
PetscViewer:
Add
PetscViewerHDF5SetCompress()andPetscViewerHDF5GetCompress()
PetscDraw:
Add
PetscDrawLGGetData()
AO:
IS:
VecScatter / PetscSF:
Change
VecSetOperation()andVecGetOperation()so that their final argument must be casted withPetscErrorCodeFn *andPetscErrorCodeFn **
PF:
Vec:
PetscSection:
Add
PetscSectionArrayView()
PetscPartitioner:
Add
PETSCPARTITIONERMULTISTAGEfor improved load balance, edge cut, and performances of large scale unstructured mesh partitioning.
Mat:
Add
MatNullSpaceRemoveFntype definitionAdd
MatMFFDFn,MatMFFDiFn,MatMFFDiBaseFn, andMatMFFDCheckhFntype definitionsAdd
MatFDColoringFntype definitionAdd support for
-mat_mumps_icntl_15 1with the companion functionMatMumpsSetBlk()Change
MatSetOperation()andMatGetOperation()so that their final argument must be casted withPetscErrorCodeFn *andPetscErrorCodeFn **Change
MatShellSetOperation()andMatShellGetOperation()so that their final argument must be casted withPetscErrorCodeFn *andPetscErrorCodeFn **
MatCoarsen:
PC:
Add
PCMatApplyTranspose()andPCShellSetMatApplyTranspose()Remove
PC_ApplyMultipleAdd
PCShellPSolveFnRemove
PCSetPreSolve()andPCSetPostSolve(). SeePCSetPostSetUp()
KSP:
Add
MatLMVMGetLastUpdate()Add
MatLMVMMultAlgorithm,MatLMVMSetMultAlgorithm(), andMatLMVMGetMultAlgorithm()Add
MatLMVMSymBroydenGetPhi()andMatLMVMSymBroydenSetPhi()Add
MatLMVMSymBadBroydenGetPsi()andMatLMVMSymBadBroydenSetPsi()Deprecate
KSP_CONVERGED_RTOL_NORMALin favor ofKSP_CONVERGED_RTOL_NORMAL_EQUATIONSandKSP_CONVERGED_ATOL_NORMALin favor ofKSP_CONVERGED_ATOL_NORMAL_EQUATIONSAdd
KSPFlexibleSetModifyPC()to provide a common API for setting the modification function for all flexibleKSPmethodsAdd
KSPFlexibleModifyPCFnfunction prototypeChange the function signature of the
destroy()argument toKSPSetConvergenceTest()toPetscCtxDestroyFn*. If you provide custom destroy functions toKSPSetConvergenceTest()you must change them to expect avoid **argument and immediately dereference the inputAdd
KSPPSolveFnChange
KSPMonitorResidualDraw()toKSPMonitorResidualView()Change
KSPMonitorTrueResidualDraw()toKSPMonitorTrueResidualView()
SNES:
Change
SNESTestJacobian()to report the normsAdd
SNESNormSchedulesupport toSNESKSPONLY
SNESLineSearch:
Rename option
snes_linesearch_maxsteptosnes_linesearch_maxlambdato better coincide with its purpose in the variousSNESLineSearchesRename
SNESLineSearchL2toSNESLineSearchSecant(and hence its option entrysnes_linesearch_typeforml2tosecant) to better represent the underlying approach
TS:
Add
TSSetRunSteps()and-ts_run_stepsfor better control of restarted jobsAdd
-ts_monitor_solution_skip_initialto skip first call to the solution monitorAdd
-ts_monitor_wall_clock_timeto display the elapsed wall-clock time for every stepChange
TSDiscGradIsGonzalez(),TSDiscGradUseGonzalez()toTSDiscGradSetType(),TSDiscGradGetType()
TAO:
Add
TaoBRGNSetRegularizationType(),TaoBRGNGetRegularizationType()Add
TaoGetInequalityConstraintsRoutine(),TaoGetEqualityConstraintsRoutine(),TaoGetJacobianInequalityRoutine()andTaoGetJacobianEqualityRoutine()
PetscRegressor:
Add new component to support regression and classification machine learning tasks: PetscRegressor: Regression Solvers
Add
PetscRegressortypePETSCREGRESSORLINEARfor solving linear regression problems with optional regularization
DM/DA:
Add
DMHasBound(),DM_BC_LOWER_BOUNDandDM_BC_LOWER_BOUNDAdd
DMSetCellCoordinateField()Add
localizedargument toDMSetCoordinateDisc()andDMCreateAffineCoordinates_Internal()Add
DMCreateGradientMatrix()
DMSwarm:
Add
DMSwarmProjectFields()andDMSwarmProjectGradientFields()
DMPlex:
Add
DMPlexGetTransform(),DMPlexSetTransform(),DMPlexGetSaveTransform(), andDMPlexSetSaveTransform()Add
DMPlexGetCoordinateMap()andDMPlexSetCoordinateMap()Rename
DMPlexComputeResidual_Internal()toDMPlexComputeResidualForKey()Rename
DMPlexComputeJacobian_Internal()toDMPlexComputeJacobianByKey()Rename
DMPlexComputeJacobian_Action_Internal()toDMPlexComputeJacobianActionByKey()Rename
DMPlexComputeResidual_Hybrid_Internal()toDMPlexComputeResidualHybridByKey()Rename
DMPlexComputeJacobian_Hybrid_Internal()toDMPlexComputeJacobianHybridByKey()Add
DMPlexInsertBounds()Change argument order for
DMPlexComputeBdResidualSingle()andDMPlexComputeBdJacobianSingle()to match domain functionsAdd
DMPlexComputeBdResidualSingleByKey()andDMPlexComputeBdJacobianSingleByLabel()Add
localizedargument toDMPlexCreateCoordinateSpace()Remove
coordFuncargument fromDMPlexCreateCoordinateSpace()Change
DMPlexExtrude()to take a label argumentRename
DMPlexVecGetOrientedClosure_Internal()toDMPlexVecGetOrientedClosure()Correctly handle
Matpreallocation for isoperiodic boundary conditions
FE/FV:
Add
PetscFEExpandFaceQuadrature()Change
PetscFEIntegrateJacobian()signature to allow rectangular operators
DMNetwork:
DMStag:
DT:
Deprecate
PetscSimplePointFuncin favor ofPetscSimplePointFn *Deprecate
PetscPointFuncin favor ofPetscPointFn *Deprecate
PetscPointJacin favor ofPetscPointJacFn *Deprecate
PetscBdPointFuncin favor ofPetscBdPointFn *Deprecate
PetscBdPointJacin favor ofPetscBdPointJacFn *Deprecate
PetscRiemannFuncin favor ofPetscRiemannFn *Deprecate
PetscProbFuncin favor ofPetscProbFn *
Fortran:
Add
PetscObjectNullify()Require Fortran compiler to have
.true.=b00000001and.false.=b00000000forlogical(C_BOOL). Thus require the compiler flags-fpscomp logicalsfor Intel and-Munixlogicalfor NVIDIA compilersChange
PetscBoolto belogical(C_BOOL)(equivalent to alogical(kind=1)). It now has a size of one byte, previously it was alogical(kind=4)and had a size of four bytesRemove the
./configureoption-with-fortran-type-initialize=0. Hence, it is now not possible to include PETSc objects in common blocks