1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
|
=============
Changes: 3.22
=============
..
STYLE GUIDELINES:
* Capitalize sentences
* Use imperative, e.g., Add, Improve, Change, etc.
* Don't use a period (.) at the end of entries
* If multiple sentences are needed, use a period or semicolon to divide sentences, but not at the end of the final sentence
.. rubric:: 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
.. rubric:: 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 with ``PetscCallMPI()``
- Add ``PetscCallReturnMPI()``, ``PetscCallMPIReturnMPI()``, and ``PetscCheckReturnMPI()`` to check for in PETSc provided MPI callbacks
.. rubric:: Sys:
- Add ``PetscPragmaUseOMPKernels``
- Deprecate ``PetscOptionsRestoreViewer()`` in favor of ``PetscViewerDestroy()``
- Deprecate ``PetscOptionsGetViewer()`` and ``PetscOptionsGetViewers()`` in favor of ``PetscOptionsCreateViewer()`` and ``PetscOptionsCreateViewers()``
- Deprecate ``PetscOptionsPushGetViewerOff()``, ``PetscOptionsPopGetViewerOff()``, and ``PetscOptionsGetViewerOff()`` in favor of
``PetscOptionsPushCreateViewerOff()``, ``PetscOptionsPopCreateViewerOff()``, and ``PetscOptionsGetCreateViewerOff()``
- Add ``PetscObjectContainerCompose()`` and ``PetscObjectContainerQuery()``
- Add ``size_t`` argument to ``PetscMPIErrorString()``
- Add ``PetscCallExternalAbort()`` for calling external library functions from functions not returning ``PetscErrorCode``
- Add ``PetscRandomSetOptionsPrefix()``
- Add ``PetscOptionsGetBool3()`` to get a ternary logical value from a command line option
.. rubric:: Event Logging:
.. rubric:: PetscViewer:
- Add ``PetscViewerASCIIStdoutSetFileUnit()``
- Add ``PetscShmgetAllocateArrayScalar()``, ``PetscShmgetDeallocateArrayScalar()``, ``PetscShmgetAllocateArrayInt()``, and ``PetscShmgetDeallocateArrayInt()`` for Fortran
.. rubric:: PetscDraw:
.. rubric:: AO:
.. rubric:: IS:
.. rubric:: VecScatter / PetscSF:
- Add ``PetscSFRegisterPersistent()`` and ``PetscSFDeregisterPersistent()`` for safe optimization of persistent communication
.. rubric:: PF:
.. rubric:: Vec:
- The ``IS`` passed to ``VecISAXPY()`` and ``VecISCopy()``. ``VecISSet()`` and ``VecISShift()`` must have the same communicator of the vectors used
- Make ``VecLock`` API active in optimized mode
- ``VecNestSetSubVec()`` and ``VecNestSetSubVecs()`` now take references to input vectors rather than creating duplicates
- Deprecate ``VecSetInf()`` with ``VecFlag()``
.. rubric:: PetscSection:
.. rubric:: PetscPartitioner:
.. rubric:: Mat:
- Change ``MatProductSetFill()`` to support ``PETSC_DETERMINE`` and ``PETSC_CURRENT``. ``MatMatMult()`` and its friends and relations now accept
``PETSC_DETERMINE`` and ``PETSC_CURRENT`` in the ``fill`` argument. ``PETSC_DEFAULT`` is deprecated for those functions
- Change the default ``MatType`` of the output ``Mat`` of ``MatSchurComplementComputeExplicitOperator()`` to be ``MATDENSE``. It may be changed from the command line, e.g., ``-fieldsplit_1_explicit_operator_mat_type aij``
- Add ``MATOP_GET_BLOCK_DIAGONAL`` and ``MATOP_GET_VBLOCK_DIAGONAL`` to set methods returning the diagonal point blocks of a matrix
.. rubric:: MatCoarsen:
.. rubric:: PC:
- Add support in ``PCFieldSplitSetFields()`` including with ``-pc_fieldsplit_%d_fields fields`` for ``MATNEST``, making it possible to
utilize multiple levels of ``PCFIELDSPLIT`` with ``MATNEST`` from the command line
- Add ``PCCompositeSpecialSetAlphaMat()`` API to use a matrix other than the identity in
preconditioners based on an alternating direction iteration, e.g., setting :math:`M` for
:math:`P = (A + alpha M) M^{-1} (alpha M + B)`
- Reuse the result of :math:`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 graph
- Add ``-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``
.. rubric:: KSP:
- Add support for ``PETSC_DETERMINE`` as an argument to ``KSPSetTolerances()`` to set the parameter back to its initial value when the object's type was set
- Deprecate ``PETSC_DEFAULT`` in favor of ``PETSC_CURRENT`` for ``KSPSetTolerances()``
.. rubric:: SNES:
- Add support for ``PETSC_DETERMINE`` as an argument to ``SNESSetTolerances()`` to set the parameter back to its initial value when the object's type was set
- Deprecate ``PETSC_DEFAULT`` in favor of ``PETSC_CURRENT`` for ``SNESSetTolerances()``
- Add ``DMAdaptorMonitor()``, ``DMAdaptorMonitorSet()``, ``DMAdaptorMonitorCancel()``, and ``DMAdaptorMonitorSetFromOptions()``
- Add ``DMAdaptorMonitorSize()``, ``DMAdaptorMonitorError()``, ``DMAdaptorMonitorErrorDraw()``, ``DMAdaptorMonitorErrorDrawLGCreate()``, and ``DMAdaptorMonitorErrorDrawLG()``
- Add ``DMAdaptorMonitorRegister()``, ``DMAdaptorMonitorRegisterAll()``, and ``DMAdaptorMonitorRegisterDestroy()``
- Add ``DMAdaptorGetCriterion()`` and ``DMAdaptorSetCriterion()``
- Add ``DMAdaptorSetOptionsPrefix()``
- Add Newton's method with arc length continuation: ``SNESNEWTONAL`` with ``SNESNewtonALSetFunction()``, ``SNESNewtonALGetFunction()``, ``SNESNewtonALComputeFunction()``, ``SNESNewtonALGetLoadParameter()``, and ``SNESNewtonALSetCorrectionType()``
- Add ``SNESNewtonTRSetTolerances()`` and ``SNESNewtonTRSetUpdateParameters()`` to programmatically set trust region parameters
- Deprecate ``SNESSetTrustRegionTolerance()`` in favor of ``SNESNewtonTRSetTolerances()``
- Add ``SNESResetCounters()`` to reset counters for linear iterations and function evaluations
.. rubric:: SNESLineSearch:
.. rubric:: TS:
- Add Rosenbrock-W methods from :cite:`rang2015improved` with :math:`B_{PR}` stability: ``TSROSWR34PRW``, ``TSROSWR3PRL2``, ``TSROSWRODASPR``, and ``TSROSWRODASPR2``
- Add support for ``PETSC_DETERMINE`` as an argument to ``TSSetTolerances()`` to set the parameter back to its initial value when the object's type was set
- Deprecate ``PETSC_DEFAULT`` in favor of ``PETSC_CURRENT`` for ``TSSetTolerances()``
- Add support for ``PETSC_DETERMINE`` as an argument to ``TSSetMaxSteps()`` and ``TSSetMaxTime()``
- Deprecate ``PETSC_DEFAULT`` in favor of ``PETSC_CURRENT`` for ``TSAdaptSetSafety()``
- Deprecate ``PETSC_DEFAULT`` in favor of ``PETSC_CURRENT`` for ``TSAdaptSetClip()``
- Deprecate ``PETSC_DEFAULT`` in favor of ``PETSC_CURRENT`` for ``TSAdaptSetStepLimits()``
- Add ``TSGetStepResize()``
- Add ``-ts_monitor_solution_vtk_interval`` to control the interval for dumping files
- Add 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()``, and ``TSARKIMEXGetFastSlowSplit()`` to support the new solver
.. rubric:: TAO:
- Add support for ``PETSC_DETERMINE`` as an argument to ``TaoSetTolerances()`` and ``TaoSetConstraintTolerances()`` to set the parameter back to its initial value when the object's type was set
- Deprecate ``PETSC_DEFAULT`` in favor of ``PETSC_CURRENT`` for ``TaoSetTolerances()`` and ``TaoSetConstraintTolerances()``
.. rubric:: DM/DA:
- Add ``DMGetSparseLocalize()`` and ``DMSetSparseLocalize()``
- Add ``DMGeomModelRegister()``, ``DMGeomModelRegisterAll()``, ``DMGeomModelRegisterDestroy()``, ``DMSnapToGeomModel()``, and ``DMSetSnapToGeomModel()`` to support registering geometric models
- Add ``DMGetOutputSequenceLength()``
- Add an additional return vector to ``DMCreateMassMatrixLumped()`` to retrieve the local mass lumping
- Add ``DMPlexMigrateGlobalToNaturalSF()`` modifies the NaturalSF to map from the SF's old global section to the new global section
.. rubric:: DMSwarm:
.. rubric:: DMPlex:
- Add ``DMLabelGetValueBounds()``
- Add ``DMPlexOrientLabel()``
- Add an argument to ``DMPlexLabelCohesiveComplete()`` in order to change behavior at surface boundary
- Remove ``DMPlexSnapToGeomModel()``
- Add refinement argument to ``DMPlexCreateHexCylinderMesh()``
- Now ``DMPlexComputeBdIntegral()`` takes one function per field
- Add ``DMPlexCreateEdgeNumbering()``
- Add ``DMPlexComputeL2FluxDiffVec()`` and ``DMPlexComputeL2FluxDiffVecLocal()``
- Add ``DMAdaptorSetType()``, ``DMAdaptorGetType()``, ``DMAdaptorRegister()``, ``DMAdaptorRegisterAll()``, and ``DMAdaptorRegisterDestroy()``
- Add ``DMAdaptorGetMixedSetupFunction()`` and ``DMAdaptorSetMixedSetupFunction()``
- Add ``DMPlexCreateCellNumbering()``
- Add ``DMPlexBuildFromCellSectionParallel()`` and ``DMPlexCreateFromCellSectionParallel()``
- Add ``-dm_plex_box_label`` to add "Face Sets" label with current "box" conventions
- Add "Face Sets" label to simplex meshes using current "box" conventions
- Update ``PetscViewerExodusII`` object to cache variable names for faster and more robust look-ups
- Add ``PetscViewerExodusIISetNodalVariable()``, ``PetscViewerExodusIISetZonalVariable()``, ``PetscViewerExodusIIGetNodalVariable()``, and ``PetscViewerExodusIIGetZonalVariable()`` to set or get the number of variables in a file
- Add ``PetscViewerExodusIISetNodalVariableName()``, ``PetscViewerExodusIISetZonalVariableName()``, ``PetscViewerExodusIIGetNodalVariableName()``, and ``PetscViewerExodusIIGetZonalVariableName()`` to set or get a single variable name
- Add ``PetscViewerExodusIISetNodalVariablesNames()``, ``PetscViewerExodusIISetZonalVariablesNames()``, ``PetscViewerExodusIIGetNodalVariablesNames()``, and ``PetscViewerExodusIIGetZonalVariablesNames()`` to set or get all variable names at the same time (not available in Fortran)
- Add degree bounds to ``DMCopyFields()``, ``DMCopyDS()``, ``PetscDSCopy()``, and ``PetscDSSelectDiscretizations()``
- Add ``PetscFELimitDegree()``
- Add localizationHeight and sparseLocalize arguments to ``DMPlexCreateBoxMesh()`` for coordinate localization on periodic meshes
- Add 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 function
- Add ``PetscViewerCGNSGetSolutionTime()``, ``PetscViewerCGNSGetSolutionName()``, ``PetscViewerCGNSSetSolutionIndex()``, and ``PetscViewerCGNSGetSolutionIndex()``
- Add ``DMPlexGetDepthStratumGlobalSize()``
.. rubric:: FE/FV:
.. rubric:: DMNetwork:
.. rubric:: DMStag:
.. rubric:: DT:
- Add ``PetscDSSetIntegrationParameters()`` and ``PetscDSSetCellParameters()``
.. rubric:: Fortran:
- Add ``PETSC_NULL_ENUM`` to be used instead of ``PETSC_NULL_INTEGER`` when a pointer to an ``enum`` is expected in a PETSc function call
- Add ``PETSC_NULL_INTEGER_ARRAY``, ``PETSC_NULL_SCALAR_ARRAY``, and ``PETSC_NULL_REAL_ARRAY`` for use instead of
``PETSC_NULL_INTEGER``, ``PETSC_NULL_SCALAR``, and ``PETSC_NULL_REAL`` when an array is expected in a PETSc function call
- Add 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 is ``NULL``
- 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
|