Changes: 3.24#
General:
Add
PETSCPYTHONPATH
to the generated$PETSC_DIR/$PETSC_ARCH/lib/petsc/conf/petscvariables
file so it is available to users through the makefile systemAdd
PETSCPYTHONPATH
to the generated$PETSC_DIR/$PETSC_ARCH/lib/pkgconfig/PETSc.pc
file so it is available to users withPKG_CONFIG_PATH=$PETSC_DIR/$PETSC_ARCH/lib/pkgconfig pkg-config --variable=PETSCPYTHONPATH PETSc.pc
Add
EXTRA_OPTIONS_INITIAL
to the test system, which prepends options
Configure/Build:
Change
make sphinxhtml
in thedoc
directory to bemake docs
Change
make docs
to put all its artifacts in${PETSC_ARCH}-doc
instead ofdoc
Add support for
--download-xxx
,--with-xxx
, and-with-xxx-dir
for Python packages that install with pip. Seepackages.py
Change
make alletags
tomake etags
Deactivate Fortran bindings of SuperLU_DIST and ExodusII by default, but they can still be built with the configure options
--with-superlu_dist-fortran-bindings
and--with-exodusii-fortran-bindings
, respectivelyAdd
--with-python-exec-from-env=python
to 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_E
Deprecate
PetscSSEIsEnabled()
Add
PetscBTCopy()
Change
PetscBool
to be a C bool. It now has a size of one byte, when previously it had a size of four bytesDeprecate
MPIU_BOOL
in favor ofMPI_C_BOOL
. This is now possible sincePetscBool
is now a C boolAdd
PetscStackView()
to the public APIChange the default file pointer used in
PetscStackView()
ifNULL
is used toPETSC_STDERR
Add
-petsc_viewer_stdout_format formatname
to 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
PETSCPARTITIONERMULTISTAGE
for improved load balance, edge cut, and performances of large scale unstructured mesh partitioning.
Mat:
Add
MatNullSpaceRemoveFn
type definitionAdd
MatMFFDFn
,MatMFFDiFn
,MatMFFDiBaseFn
, andMatMFFDCheckhFn
type definitionsAdd
MatFDColoringFn
type definitionAdd support for
-mat_mumps_icntl_15 1
with 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_ApplyMultiple
Add
PCShellPSolveFn
Remove
PCSetPreSolve()
andPCSetPostSolve()
. SeePCSetPostSetUp()
KSP:
Add
MatLMVMGetLastUpdate()
Add
MatLMVMMultAlgorithm
,MatLMVMSetMultAlgorithm()
, andMatLMVMGetMultAlgorithm()
Add
MatLMVMSymBroydenGetPhi()
andMatLMVMSymBroydenSetPhi()
Add
MatLMVMSymBadBroydenGetPsi()
andMatLMVMSymBadBroydenSetPsi()
Deprecate
KSP_CONVERGED_RTOL_NORMAL
in favor ofKSP_CONVERGED_RTOL_NORMAL_EQUATIONS
andKSP_CONVERGED_ATOL_NORMAL
in favor ofKSP_CONVERGED_ATOL_NORMAL_EQUATIONS
Add
KSPFlexibleSetModifyPC()
to provide a common API for setting the modification function for all flexibleKSP
methodsAdd
KSPFlexibleModifyPCFn
function 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
KSPPSolveFn
Change
KSPMonitorResidualDraw()
toKSPMonitorResidualView()
Change
KSPMonitorTrueResidualDraw()
toKSPMonitorTrueResidualView()
SNES:
Change
SNESTestJacobian()
to report the normsAdd
SNESNormSchedule
support toSNESKSPONLY
SNESLineSearch:
Rename option
snes_linesearch_maxstep
tosnes_linesearch_maxlambda
to better coincide with its purpose in the variousSNESLineSearch
esRename
SNESLineSearchL2
toSNESLineSearchSecant
(and hence its option entrysnes_linesearch_type
forml2
tosecant
) to better represent the underlying approach
TS:
Add
TSSetRunSteps()
and-ts_run_steps
for better control of restarted jobsAdd
-ts_monitor_solution_skip_initial
to skip first call to the solution monitorAdd
-ts_monitor_wall_clock_time
to 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
PetscRegressor
typePETSCREGRESSORLINEAR
for solving linear regression problems with optional regularization
DM/DA:
Add
DMHasBound()
,DM_BC_LOWER_BOUND
andDM_BC_LOWER_BOUND
Add
DMSetCellCoordinateField()
Add
localized
argument 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
localized
argument toDMPlexCreateCoordinateSpace()
Remove
coordFunc
argument fromDMPlexCreateCoordinateSpace()
Change
DMPlexExtrude()
to take a label argumentRename
DMPlexVecGetOrientedClosure_Internal()
toDMPlexVecGetOrientedClosure()
Correctly handle
Mat
preallocation for isoperiodic boundary conditions
FE/FV:
Add
PetscFEExpandFaceQuadrature()
Change
PetscFEIntegrateJacobian()
signature to allow rectangular operators
DMNetwork:
DMStag:
DT:
Deprecate
PetscSimplePointFunc
in favor ofPetscSimplePointFn *
Deprecate
PetscPointFunc
in favor ofPetscPointFn *
Deprecate
PetscPointJac
in favor ofPetscPointJacFn *
Deprecate
PetscBdPointFunc
in favor ofPetscBdPointFn *
Deprecate
PetscBdPointJac
in favor ofPetscBdPointJacFn *
Deprecate
PetscRiemannFunc
in favor ofPetscRiemannFn *
Deprecate
PetscProbFunc
in favor ofPetscProbFn *
Fortran:
Add
PetscObjectNullify()
Require Fortran compiler to have
.true.=b00000001
and.false.=b00000000
forlogical(C_BOOL)
. Thus require the compiler flags-fpscomp logicals
for Intel and-Munixlogical
for NVIDIA compilersChange
PetscBool
to 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
./configure
option-with-fortran-type-initialize=0
. Hence, it is now not possible to include PETSc objects in common blocks