File: 315.rst.txt

package info (click to toggle)
petsc 3.22.5%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 516,740 kB
  • sloc: ansic: 814,333; cpp: 50,948; python: 37,416; f90: 17,187; javascript: 3,493; makefile: 3,198; sh: 1,502; xml: 619; objc: 445; java: 13; csh: 1
file content (298 lines) | stat: -rw-r--r-- 13,195 bytes parent folder | download
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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
=============
Changes: 3.15
=============

.. rubric:: General:

-  Add ``PetscKokkosInitializeCheck()``, which initializes Kokkos if it
   is not yet initialized
-  Add support for ``-debug_terminal`` Terminal to use Apple's Terminal
   instead of xterm, allowing use of cut-paste
-  Make Terminal the default device to display the debugger on Apple
   instead of xterm
-  Add PetscHasExternalPackage() determining whether PETSc has been
   configured with the given external package such as "hdf5"

.. rubric:: Configure/Build:

-  On macOS, ``MACOS_FIREWALL=1`` or ``MACOS_FIREWALL_REFRESH=1`` can
   be passed to make to automatically add firewall rules preventing
   firewall popups during testing. See
   ``make -f gmakefile.test help`` for details
-  ``./configure --with-macos-firewall-rules`` makes
   ``MACOS_FIREWALL=1`` the default
-  Change ``--download-petsc4py`` to ``--with-petsc4py`` to have PETSc build
   and use petsc4py
-  Add ``--download-mmg`` and ``--download-parmmg``, 3D unstructured mesh
   adaptation package (interaction with DMPlex not available yet)
-  Improve detection of Git repositories when a ``--download-package``
   option is used

   -  Support ``ssh://*.git`` and ``https://*.git`` URLs without the
      additional ``git://`` prefix
   -  Local directories can be specified without the ``git://``
      prefix as well
   -  Any valid Git repository (including bare and with
      ``--separate-git-dir``) is now correctly detected

-  ``--download-yaml`` or ``--with-yaml`` are no longer required for
   YAML support (but can still be used to avoid compiling source
   included with PETSc)

.. rubric:: Sys:

-  Add ``PETSCRANDOMCURAND`` to support CURAND random number generator
-  Add ``PetscRandomGetValues()`` and ``PetscRandomGetValuesReal()`` to retrieve
   an array of random numbers
-  Add ``PetscOptions`` argument to ``PetscOptionsInsertFileYAML()``
-  Add ``PetscCalloc()`` to allocate zeroed memory
-  Automatically detect YAML and JSON option files by extension or
   particular first line
-  Update YAML options file processing to ignore keys starting with
   ``$``, Add some special processing
-  Add ``PetscBagViewFromOptions()``
-  Add ``PetscLogEventDeactivatePush()``, ``PetscLogEventDeactivatePop()``
-  Add new option to ``-log_view`` to view nested event timing
   information as a flame graph

.. rubric:: PetscViewer:

-  ``PetscViewerAndFormat`` now allows a payload
-  Change ``PetscViewerFlowControlStepMaster()``,
   ``PetscViewerFlowControlEndMaster()`` to
   ``PetscViewerFlowControlStepMain()``, ``PetscViewerFlowControlEndMain()``
- HDF5: ``FILE_MODE_APPEND`` (= ``FILE_MODE_UPDATE``) now creates a new file if it does not exist yet
- VU: ``PetscViewerVUSetMode()`` is now deprecated;
  please use standard ``PetscViewerFileSetMode()`` instead

.. rubric:: PetscDraw:

.. rubric:: AO:

.. rubric:: IS:

.. rubric:: VecScatter / PetscSF:

-  ``VecScatter`` is now the same type as ``PetscSF``, in other words, we
   have ``typedef PetscSF VecScatter``
-  Remove ``VecScatter`` types ``VECSCATTER{SEQ,MPI1,MPI3,MPI3NODE,SF}``. One
   can use all ``PetscSF`` types as ``VecScatter`` types
-  Rename ``PetscLayoutsCreateSF()`` to ``PetscSFCreateFromLayouts()`` and
   move its declaration from ``petscis.h`` to ``petscsf.h``
-  Deprecate ``MPIU_REPLACE``; Use ``MPI_REPLACE`` instead
-  Deprecate ``PetscSFBcastAndOp`` variants; Use ``PetscSFBcast`` instead
-  Deprecate ``PetscSFCreateEmbeddedSF``; Use ``PetscSFCreateEmbeddedRootSF``
   instead
-  Add experimental NVIDIA NVSHMEM support; For details on how to use
   it, contact petsc-maint@mcs.anl.gov
-  Add ``PetscSFCreateByMatchingIndices()`` to create SF by matching root
   and leaf indices

.. rubric:: PF:

.. rubric:: Vec:

-  Change ``Vec{Get,Restore}Array{Read}Inplace`` to
   ``Vec{Get,Restore}Array{Read}AndMemType()`` and add an extra argument
   to also return the memory type of the array
-  Remove vector type ``VECNODE``
-  Add ``VecConcatenate()`` function for vertically concatenating an
   array of vectors into a single vector. Also returns an array of
   index sets to access the original components within the
   concatenated final vector

.. rubric:: PetscSection:

.. rubric:: PetscPartitioner:

.. rubric:: Mat:

-  Add ``MatSetPreallocationCOO()`` and ``MatSetValuesCOO()`` to preallocate and
   set values in a matrix using COO format. Currently efficiently
   implemented only for ``MATCUSPARSE``
-  Add the option ``MAT_FORCE_DIAGONAL_ENTRIES`` for ``MatSetOption()``. It
   forces allocation of all diagonal entries
-  Remove ``MAT_NEW_DIAGONALS`` from ``MatOption``
-  Add ``UNKNOW_NONZERO_PATTERN`` as new value for ``MatStructure``. It
   indicates that the relationship is unknown, when set the AIJ
   matrices check if the two matrices have identical patterns and if
   so use the faster code
-  Add ``MAT_FACTOR_QR``, ``MatQRFactor()``, ``MatQRFactorSymbolic()``, and
   ``MatQRFactorNumeric()`` for QR factorizations. Currently the only
   built-in implementation uses LAPACK on sequential dense matrices
- Change option ``-mat_cusparse_transgen`` to ``-mat_form_explicit_transpose`` to hint PETSc to form an explicit transpose for repeated operations like MatMultTranspose. Currently implemented only for ``AIJCUSPARSE`` and ``AIJKOKKOS``
- Add a ``MatOption`` ``MAT_FORM_EXPLICIT_TRANSPOSE``

.. rubric:: PC:

-  Add ``PCGAMGSetRankReductionFactors()``, provide an array,
   ``-pc_gamg_rank_reduction_factors factors``, tp specify factor by
   which to reduce active processors on coarse grids in ``PCGAMG`` that
   overrides default heuristics
-  Change ``PCCompositeAddPC()`` to ``PCCompositeAddPCType()``, now
   ``PCCompositeAddPC()`` adds a specific ``PC`` object
-  Add a Compatible Relaxation (CR) viewer ``PCMG`` with ``-pc_mg_adapt_cr``
-  Experimental: Add support for assembling AIJ (CUSPARSE and KOKKOS)
   matrix on the Cuda device with ``MatSetValuesDevice()``,
   ``MatCUSPARSEGetDeviceMatWrite()``, and Kokkos with
   ``MatKokkosGetDeviceMatWrite``
-  Add ``PCMGSetResidualTranspose()`` to support transposed linear solve
   using ``PCMG`` and ``PCGAMG``

.. rubric:: KSP:

-  Add ``-all_ksp_monitor`` which turns on monitoring for all KSP
   solvers regardless of their prefix. This is useful for monitoring
   solvers with inner solvers such as ``PCMG``, ``PCGAMG``, ``PCFIELDSPLIT``.
-  Add support for monitor ``KSPPREONLY``. This is useful for monitoring
   solvers with inner solvers such as ``PCMG``, ``PCGAMG``, ``PCFIELDSPLIT``.
-  Add ``KSPConvergedReasonViewSet()`` to set an ADDITIONAL function that
   is to be used at the end of the linear solver to display the
   convergence reason of the linear solver
-  Add ``KSPConvergedReasonViewCancel()`` to remove all user-added
   converged reason view functions
-  Add ``KSPGetConvergedReasonString()`` to retrieve a human readable
   string for ksp converged reason
-  Change ``KSPReasonView()`` to ``KSPConvergenceReasonView()``
-  Change ``KSPReasonViewFromOptions()`` to
   ``KSPConvergedReasonViewFromOptions()``
-  Add ``KSPConvergedDefaultSetConvergedMaxits()`` to declare convergence
   when the maximum number of iterations is reached
-  Fix many ``KSP`` implementations to actually perform the number of
   iterations requested
-  Chebyshev uses ``MAT_SPD`` to default to CG for the eigen estimate
-  Add ``KSPPIPECG2``, a pipelined solver that reduces the number of
   allreduces to one per two iterations and overlaps it with two PCs
   and SPMVs using non-blocking allreduce
-  Add ``KSPConvergedRateView()`` and ``KSPComputeConvergenceRate()`` to
   check the convergence rate of a linear solve
-  Add ``KSPSetUseExplicitTranspose()`` to explicitly transpose the
   system in ``KSPSolveTranspose()``
-  Add ``KSPMonitorLGCreate()``, and remove ``KSPMonitorLGResidualNorm*()``
   and ``KSPMonitorLGTrueResidualNorm*()``
-  Add ``KSPMonitorError()``, used by ``-ksp_monitor_error``
-  Add arguments to ``KSPMonitorSetFromOptions()`` to allow line graphs
   to be configured
-  Deprecate ``KSP{Set|Get}MatSolveBlockSize()``, use
   ``KSP{Set|Get}MatSolveBatchSize()`` instead
-  Reduce default ``KSPView()`` ASCII output to a single subdomain's
   KSP/PC information for ``PCASM``, resp. ``PCBJacobi``. Use
   ``-ksp_view ::ascii_info_detail`` to output KSP/PC information for all
   subdomains

.. rubric:: SNES:

-  Add ``SNESConvergedCorrectPressure()``, which can be selected using
   ``-snes_convergence_test correct_pressure``
-  Remove ``SNESMonitorLGCreate()`` and ``SNESMonitorLGResidualNorm()`` which
   are now handled by the default monitor
-  Add ``SNESConvergedReasonViewSet()`` to set an ADDITIONAL function
   that is to be used at the end of the nonlinear solver to display
   the convergence reason of the nonlinear solver
-  Add ``SNESConvergedReasonViewCancel()`` to remove all user-added
   converged reason view functions
-  Add ``SNESGetConvergedReasonString()`` to retrieve a human readable
   string for snes converged reason
-  Add ``SNESFASFullSetTotal()`` to use total residual restriction and
   total solution interpolation in the initial cycle of full FAS
   multigrid
-  Deprecate ``-snes_nasm_sub_view``, use ``-snes_view ::ascii_info_detail`` instead


.. rubric:: SNESLineSearch:

.. rubric:: TS:

-  Change to ``--download-sundials2`` to indicate the version of SUNDIALS
   PETSc downloads, which is very old and out-dated
-  Add forward and adjoint sensitivity support for cases that involve
   parameterized mass matrices
-  Add ``TSGetNumEvents()`` to retrieve the number of events
-  Add ``-ts_monitor_cancel``
-  Now ``-ts_view_solution`` respects the TS prefix
-  Add ``TSSetMatStructure()`` to indicate the relationship between the
   nonzero structures of the I Jacobian and the RHS Jacobian
-  Automatically set the ``MatStructure`` flag of TS to
   ``SAME_NONZERO_PATTERN`` if the RHS matrix is obtained with a
   ``MatDuplicate()`` from the I Jacobian

.. rubric:: TAO:

-  Add ``TaoSetRecycleFlag()`` and ``TaoGetRecycleFlag()`` interfaces to
   enable some Tao algorithms to re-use iterate information from the
   previous ``TaoSolve()`` call
-  Add new Augmented Lagrangian Multiplier Method (``TAOALMM``) for
   solving optimization problems with general nonlinear constraints

.. rubric:: DM/DA:

-  Remove unneeded ``Vec`` argument from ``DMPatchZoom()``
-  Change ``DMDACreatePatchIS()`` to collective operation and add an
   extra argument to indicate whether off processor values will be
   returned
-  Add ``DMComputeError()``, which uses ``PetscDS`` information for the exact
   solution
-  Add ``DMShellGetGLobalVector()``
-  Add ``DMInterpolateSolution()`` for interpolating solutions between
   meshes in a potentially nonlinear way
-  ``DMInterpolationSetUp()`` now can drop points outside the domain

.. rubric:: DMSwarm:

-  ``DMSwarmViewXDMF()`` can now use a full path for the filename
-  Add ``DMSwarmSetPointCoordinatesRandom()``
-  Add ``-dm_view_radius`` to set size of drawn particles

.. rubric:: DMPlex:

-  Using ``-petscpartitioner_simple_node_grid`` and
   ``-petscpartitioner_simple_process_grid``, the Simple partitioner can
   now make grid partitions
-  Add ``DMGet/SetFieldAvoidTensor()`` to allow fields to exclude tensor
   cells in their definition
-  Remove regular refinement and marking from ``DMPlexCreateDoublet()``
-  Add high order FEM interpolation to ``DMInterpolationEvaluate()``

.. rubric:: FE/FV:

-  Add ``PetscDualSpaceTransformHessian()``,
   ``PetscDualSpacePushforwardHessian()``, and
   ``PetscFEPushforwardHessian()``
-  Now ``PetscFEGetCellTabulation()`` and ``PetscFEGetFaceTabulation()`` ask
   for the number of derivatives
-  Add ``PetscDualSpaceLagrangeGet/SetUseMoments()`` and
   ``PetscDualSpaceLagrangeGet/SetMomentOrder()`` to allow a moment
   integral for P0

.. rubric:: DMNetwork:

-  Add ``DMNetworkAddSubnetwork()`` for network of subnetworks
-  Add ``DMNetworkAdd/GetSharedVertices()``, ``DMNetworkIsSharedVertex()``
-  Remove ``DMNetworkSetEdgeList()``,
   ``DMNetworkSet/GetComponentNumVariables()``,
   ``DMNetworkSet/Add/GetNumVariables()``,
   ``DMNetworkGetComponentKeyOffset()``, ``DMNetworkGetVariableOffset()``,
   ``DMNetworkGetVariableGlobalOffset()``
-  Change the prototypes for ``DMNetworkAdd/GetComponent()``
-  Rename ``DMNetworkSet/GetSizes()`` to ``DMNetworkSet/GetNumSubNetworks()``
-  Rename ``DMNetworkGetComponentVariableOffset()`` to
   ``DMNetworkGetLocalVecOffset()``,
   ``DMNetworkGetComponentVariableGlobalOffset()`` to
   ``DMNetworkGetGlobalVecOffset()``
-  Rename ``DMNetworkGetSubnetworkInfo()`` to ``DMNetworkGetSubnetwork()``

.. rubric:: DT:

-  ``PetscDSCopyBoundary()`` now takes a list of fields for which
   boundary copying is done
-  Add ``PetscDSGet/SetJetDegree()``, and ``-dm_ds_jet_degree`` is needed to
   enable it under a DM
-  Add ``PetscWeakForm`` class to manage function pointers for problem
   assembly

.. rubric:: Fortran:

-  Add configure option ``--with-mpi-f90module-visibility``
   [default=``1``]. With ``0``, ``mpi.mod`` will not be visible in use code
   (via ``petscsys.mod``) - so ``mpi_f08`` can now be used
-  Add ``PetscDLAddr()`` to get name for a symbol