File: 312.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 (243 lines) | stat: -rw-r--r-- 9,817 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
=============
Changes: 3.12
=============


.. rubric:: General:

-  PetscRoundReal() has been removed, since the math routine round()
   is not supported on all systems: perhaps use PetscCeilReal() or
   PetscFloorReal()<\li>
-  The legacy and CMake compile systems (make all-legacy and
   all-cmake) are removed
-  make gnumake is now make libs
-  PetscArraycmp() should be used instead of PetscMemcmp(), it takes
   a count argument instead of a byte argument
-  PetscArraycpy() should be used instead of PetscMemcpy(), it takes
   a count argument instead of a byte argument
-  PetscArrayzero() should be used instead of PetscMemzero(), it
   takes a count argument instead of a byte argument
-  PetscArraymove() should be used instead of PetscMemmove(), it
   takes a count argument instead of a byte argument
-  The ./configure options -with-gnu-compilers and
   -with-vendor-compilers are removed
-  The ./configure option --with-avx512-kernels defaults to true now
   so the manually optimized AVX-512 kernels are used by default
-  The order ./configure tests compilers has changed so there may be
   a different compiler selected if you do not provide them
-  Added --with-64-bit-blas-indices that will switch to 64-bit
   indices when using MKL libraries for BLAS/LAPACK and build
   OpenBLAS with this support
-  Changed PETSC_DEPRECATED() to PETSC_DEPRECATED_FUNCTION() and
   PETSC_DEPRECATED_TYPEDEF() to match naming of
   PETSC_DEPRECATED_ENUM() and PETSC_DEPRECATED_MACRO
-  -help now causes the printing of the current value and the newly
   set value for PetscOptionsInt(), etc
-  PetscFunctionListPrintTypes() takes an additional final argument
   after the current value, the set value
-  PetscCalloc*() now calls the system calloc() routine instead of
   malloc() plus memzero()
-  -malloc is now marked as deprecated, use -malloc_debug instead
-  -malloc_log and -malloc_log_threshold are now -malloc_view and
   -malloc_view_threshold
-  PetscMallocDebug() is now PetscMallocSetDebug()
-  PetscMallocDumpLog() is now PetscMallocView(), see also
   PetscMallocViewSet()
-  PetscMallocSetDumpLogThreshold() and PetscMallocSetDumpLog() are
   now PetscMallocViewSet()
-  With -malloc_test or -malloc_debug allocated memory is initialized
   with NaN to detect use of uninitialized numerical arrays
-  PetscMallocSet() now takes three arguments instead of two
-  Moved PetscCUBLASGetHandle() to a separate header file
   petscublas.h
-  Moved VecCUDA*-routines from petsccuda.h into petscvec.h. Removed
   petsccuda.h

.. rubric:: Configure/Build:

-  C++ dialect is now auto-detected (C++14 first and then C++11). One
   can disable this check using --with-cxx-dialect=0, or force it to
   only check for C++11 using --with-cxx-dialect=C++11
-  New option --download-hpddm to enable PCHPDDM and KSPHPDDM

.. rubric:: IS:

.. rubric:: PetscDraw:

.. rubric:: PF:

.. rubric:: Vec:

-  VecCUDAGet/RestoreArrayReadWrite() changed to
   VecCUDAGet/RestoreArray()
-  VecViennaCLGet/RestoreArrayReadWrite() changed to
   VecViennaCLGet/RestoreArray()
-  Added VecGet/RestoreArray/ReadInPlace() to get array of a vector
   where it is without copying from GPU to CPU.

.. rubric:: PetscLayout:

-  Added PetscLayoutCreateFromSizes()
-  Added PetscLayoutCreateFromRanges()
-  Calling PetscLayoutSetUp() twice with different sizes is now
   forbidden

.. rubric:: PetscSection:

.. rubric:: VecScatter & PetscSF:

-  The default VecScatter implementation is changed to PetscSF. In
   other words, the default VecScatter shares PetscSF's MPI
   communication code. One can use -vecscatter_type mpi1 to go back
   to the old implementation.
-  Added new InsertMode MAX_VALUES and MIN_VALUES support in
   VecScatterBegin/End and VecGhostUpdateBegin/End.
-  PetscSFComputeMultiRootOriginalNumbering: add output argument with
   the number of multiroots for convenience
-  Added an enum type PetscSFPattern for SF graph patterns. Valid
   values include PETSCSF_PATTERN_ALLGATHER, PETSCSF_PATTERN_GATHER
   and PETSCSF_PATTERN_ALLTOALL.
-  Added PetscSFSetGraphWithPattern() to set SF graphs with
   predefined patterns.
-  Added PetscSFComposeInverse() to compose a new SF by putting the
   inverse of an SF under the another SF.
-  Added MPI-3.0 neighborhood collectives support. One can use
   command line option -sf_type neighbor to let SF use MPI-3.0
   neighborhood collectives for communication instead of the default
   MPI_Send/Recv.
-  PetscSF is now CUDA-aware. The rootdata, leafdata arguments passed
   to SF routines can be either GPU pointers or CPU pointers. Use a
   CUDA-aware MPI and option -use_gpu_aware_mpi to enable it.
-  VecScatter is also CUDA-aware. You can do VecScatter on CUDA
   vectors without copying them from GPU to CPU. Again, you need a
   CUDA-aware MPI and option -use_gpu_aware_mpi.
-  Removed PetscSFCreateFromZero. Instead, users should use
   PetscSFCreate() to create an SF, and then set its graph with
   PetscSFSetGraphWithPattern(..,PETSCSF_PATTERN_GATHER).
-  Renamed PetscSFGetRanks() to PetscSFGetRootRanks().

.. rubric:: Mat:

-  MatShift(Mat,0); will no longer silently insure there are no
   missing diagonal entries. (Previously it would put 0 into any
   diagonal entry that was missing)
-  Renamed MatComputeExplicitOperator() into MatComputeOperator() and
   MatComputeExplicitOperatorTranspose() into
   MatComputeOperatorTranspose(). Added extra argument to select the
   desired matrix type
-  MatLoad() now supports loading dense matrices from HDF5/MAT files.
-  Added new Mat type, MATKAIJ, for matrices that can be expressed in
   a particular Kronecker (tensor) product form.
-  Added MatCompositeSetScalings() to set separate scaling factors
   for component matrices.
-  Added a Boolean option -mat_composite_merge_mvctx to merge Mvctx
   of component matrices to optimize communication in MatMult() for
   ADDITIVE matrices. Default is true.
-  Added MATSEQDENSECUDA class to use GPUs for dense linear algebra.

.. rubric:: PC:

-  Renamed PCComputeExplicitOperator() into PCComputeOperator().
   Added extra argument to select the desired matrix type
-  Added support for PCCHOLESKY with MATSOLVERMUMPS and SBAIJ
   matrices with bs greater than 1
-  Added support for PCLU with MATSOLVERMKL_PARDISO (resp.
   MATSOLVERMKL_CPARDISO) and SEQBAIJ (resp. MPIBAIJ) matrices
-  Added support for PCCHOLESKY with MATSOLVERMKL_PARDISO (resp.
   MATSOLVERMKL_CPARDISO) and SEQSBAIJ (resp. MPISBAIJ) matrices
-  Added new preconditioner PCHPDDM, cf.
   src/ksp/ksp/examples/tutorials/ex71.c or
   src/snes/examples/tutorials/ex56.c

.. rubric:: KSP:

-  Renamed KSPComputeExplicitOperator() into KSPComputeOperator().
   Added extra argument to select the desired matrix type
-  KSPCGGLTRGetMinEig(KSP,PetscReal*) ->
   KSPGLTRGetMinEig(KSP,PetscReal*)
-  KSPCGGLTRGetLambda(KSP,PetscReal*) ->
   KSPGLTRGetLambda(KSP,PetscReal*)
-  KSPCGNASH, KSPCGSTCG, KSPCGGLTR -> KSPNASH, KSPSTCG, KSPGLTR
-  Added new Krylov solver KSPHPDDM, cf.
   src/ksp/ksp/examples/tutorials/ex75.c or
   src/ksp/ksp/examples/tutorials/ex9.c

.. rubric:: SNES:

-  Changed SNES_CONVERGED_TR_DELTA to SNES_DIVERGED_TR_DELTA with a
   negative value to indicate diverged, unclear why it was ever
   positive since tiny trust region would indicate trouble, not
   converged

.. rubric:: SNES:

-  -snes_mf no longer turns the preconditioner to none; to use it
   generally you will also need -pc_type none

.. rubric:: SNESLineSearch:

.. rubric:: TS:

-  Added tangent linear models for Runge-Kutta methods
-  Added second-order adjoint solvers based on Runge-Kutta methods
   and Theta methods
-  Improved the usage of first-order adjoint solvers in an
   optimization context. (The TS object can be reused in the
   optimization loop)
-  Changed the APIs for integrand evaluations and corresponding
   derivative evaluations. TSSetCostIntegrand() is deprecated.
   (Instead a quadrature TS is used to handle the callbacks)
-  TSTrajectory creates a unique name for folders that store the
   checkpoint data. Users can rerun adjoint codes without worrying
   about the folder names, and run multiple codes under the same
   directory.
-  Added support for using finite-differencing (and coloring) to
   approximate the Jacobians needed by the adjoint solvers.
   -snes_fd_color can be used for both implicit and explicit methods.

.. rubric:: DM/DA:

-  Add DMGetLocalSection() to be used in preference to
   DMGetSection().
-  Add DMSetLocalSection() to be used in preference to
   DMSetSection().
-  DMGetDefaultSF() replaced with DMGetSectionSF().
-  DMSetDefaultSF() replaced with DMSetSectionSF().
-  DMCreateDefaultSF() replaced with DMCreateSectionSF().
-  DMAddLabel() now increments the reference count of the DMLabel.
-  DMRemoveLabel() now destroys the DMLabel if the output argument is
   NULL.
-  Add DMRemoveLabelBySelf() which looks up the DMLabel by itself,
   removes from DM and destroys.

.. rubric:: DMPlex:

-  Rename DMPlexCreateSpectralClosurePermutation() to
   DMPlexSetClosurePermutationTensor()
-  Add DMPlexFindVertices() for vertex coordinates -> DAG point
   lookup
-  Add DMPlexGetOverlap() to get the partition overlap

.. rubric:: DMNetwork:

-  Changed prototypes for DMNetworkSetSizes()

.. rubric:: PetscViewer:

-  Removed PetscViewerHDF5{Get,Set}AIJNames() which are likely not
   really needed
-  PetscViewerHDF5SetCollective() and -viewer_hdf5_collective can be
   used to switch between independent and collective transfer mode.
   Defaults now to false (independent).

.. rubric:: SYS:

-  Added PetscCheckDupsInt() to check if a PetscInt array has dups.
-  Added an argument to PetscBinaryRead() and
   PetscBinarySynchronizedRead() to return the number of items read.

.. rubric:: AO:

.. rubric:: Sieve:

.. rubric:: Fortran: