File: 313.md.txt

package info (click to toggle)
petsc 3.24.1%2Bdfsg1-1exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 524,004 kB
  • sloc: ansic: 762,842; cpp: 52,564; python: 39,546; f90: 17,688; javascript: 3,493; makefile: 3,206; sh: 1,508; xml: 619; objc: 445; java: 13; csh: 1
file content (295 lines) | stat: -rw-r--r-- 10,557 bytes parent folder | download | duplicates (2)
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
# Changes: 3.13

```{rubric} General:
```

- Update `make test` to run the full test suite. Use
  `make check` to run the short test
- Remove last PetscBool argument from PetscBinaryWrite() and
  PetscBinarySynchronizedWrite()
- Change PetscLayoutFindOwner() and PetscLayoutFindOwnerIndex() to
  return a PetscMPIInt instead of a PetscInt
- Support for Compaq F90 is removed along with supporting flags
  PETSC_HAVE_FORTRAN_STDCALL, PETSC_BLASLAPACK_STDCALL,
  HAVE_FORTRAN_MIXED_STR_ARG
- Promote all example directories `examples/tutorials/` and
  `examples/tests/` to `tutorials/` and `tests/` respectively
- Make title argument of PetscOptionsBegin() obligatory

```{rubric} Configure/Build:
```

```{rubric} IS:
```

- Add ISSetInfo(): set local and global properties of an IS (whether
  the IS is sorted, unique, a permutation, an interval, or identity)
- Add ISGetInfo(): query local and global properties of an IS

```{rubric} PetscDraw:
```

```{rubric} PetscSF:
```

- Fix few bugs in PETSCSFWINDOW when using PETSCSF_WINDOW_SYNC_LOCK
  or PETSCSF_WINDOW_SYNC_ACTIVE synchronization types
- Add window reusage for PETSCSFWINDOW and support for different
  creation flavor types. See PetscSFWindowFlavorType man page for
  details
- Set default of -use_gpu_aware_mpi from false to true

```{rubric} PF:
```

```{rubric} Vec:
```

- VecPinToCPU() is deprecated in favor of VecBindToCPU()
- Add Vec{Set|Get}PinnedMemoryMin() and -vec_pinned_memory_min
  option. Note that VECCUDA now defaults to using pinned memory for
  host allocations

```{rubric} VecScatter:
```

```{rubric} PetscSection:
```

```{rubric} PetscPartitioner:
```

- PetscPartitionerPartition() does not longer gets a DM as input.
  Vertex weights can be specified through PetscSection
- Add support for target partition weights for
  PETSCPARTITIONERSIMPLE, PETSCPARTITIONERPARMETIS and
  PETSCPARTITIONERPTSCOTCH

```{rubric} Mat:
```

- Improve the performance of MatConvert_AIJ_BAIJ by preallocating
  the Mat before dispatching to MatConvert_Basic
- Change the behavior of MatConvert_AIJ_SBAIJ for block size greater
  than one, the block structure is now preserved (even for the
  diagonal entries)
- Fix various bugs related with matrix conversions from Hermitian
  SBAIJ matrices with complex numbers
- Add MatPropagateSymmetryOptions to propagate symmetry information
  from one matrix to another
- Fix a bug in MATSUPERLU_DIST interface when MATMPIAIJ with
  commsize 1 is used
- Add MATCHOLMOD support for block solves
- --download-suitesparse now uses the official SuiteSparse
  repository
- MatPinToCPU() is deprecated in favor of MatBindToCPU()
- Fix MatAXPY for MATSHELL
- MatAXPY(Y,0.0,X,DIFFERENT_NONZERO_PATTERN) no longer modifies the
  nonzero pattern of Y to include that of X
- Add support of selective 64-bit MUMPS, i.e., the regular/default
  build of MUMPS. One should still build PETSc --with-64-bit-indices
  to handle matrices with >2G nonzeros
- Add MatProductCreate(), MatProductCreateWithMat(),
  MatProductSetType(), MatProductSetAlgorithm(),
  MatProductSetFill(), MatProductSetFromOptions(),
  MatProductSymbolic(), MatProductNumeric(),
  MatProductReplaceMats(), MatProductClear()
- Deprecate MatMatMultSymbolic(), MatMatMultNumeric()
- Deprecate MatMatTransposeMultSymbolic(),
  MatMatTransposeMultNumeric()
- Deprecate MatPtAPSymbolic(), MatPtAPNumeric()
- Deprecate MatRARtSymbolic(), MatRARtNumeric()
- Fix a deadlock with MATELEMENTAL; if one configures PETSc with
  Elemental *and* has PETSC_COMM_WORLD != MPI_COMM_WORLD, it is now
  one's responsability to explicitly call
  PetscElementalInitializePackage()/PetscElementalFinalizePackage()
  outside of PetscInitialize()/PetscFinalize().
  PetscElementalInitializePackage()/PetscElementalFinalizePackage()
  are collective on MPI_COMM_WORLD.

```{rubric} PC:
```

- Change the default behavior of PCASM and PCGASM to not
  automatically switch to PCASMType BASIC if the matrices are
  symmetric
- Change the default behavior of PCCHOLESKY to use nested dissection
  ordering for AIJ matrix

```{rubric} KSP:
```

- Add KSPHPDDMGetDeflationSpace and KSPHPDDMSetDeflationSpace for
  recycling Krylov methods in KSPHPDDM

```{rubric} SNES:
```

- Deprecate `-snes_test_jacobian_display` and
  `-snes_test_jacobian_display_threshold`. `-snes_test_jacobian`
  accepts an optional threshold parameter (since v3.10) and
  `-snes_test_jacobian_view` should be used in favor of
  `-snes_test_jacobian_display`

```{rubric} SNESLineSearch:
```

- Add SNESLineSearchGetType() in v3.13.1.

```{rubric} TS:
```

```{rubric} TAO:
```

- TAOPDIPM: A new solver in TAO for general NLP problems

```{rubric} DM/DA:
```

- DMCopyLabels(): add two additional input flags
- DMPlexDistribute(): fix a bug associated with vertex partition
  weights and overlapped meshes
- DMPlexDistribute(): vertex partition weights are now computed by
  summing all the local section dofs in the transitive closure of
  each cell
- Add PetscTabulation to hold function tabulation data
- Add DMEnclosureType to describe relations between meshes
- Add DMGetEnclosureRelation() and DMGetEnclosurePoint() to discover
  relations between meshes
- Add DMPolytopeType to describe different cell constructions

```{rubric} DMPlex:
```

- DMPlexInterpolate() now works correctly for distributed DMPlex
- The idea of hybrid and ghost cells has been removed from Plex in
  favor of cell type
- Plex can now classify points by cell type, stored in a DMLabel.
  This is useful for operations that require more than topological
  data, such as mesh interpolation, geometric calculations, and is
  also used an index to avoid repeated topological queries
- Add DMPlexSetCellType() and DMPlexCreateReferenceCellByType()
- Distribution sorts strata by cell type.
- Plex can now allow any number of cell types in a single mesh.
  Interpolation, refinement, and extraction of submeshes mixed
  meshes work smoothly. Both oriented and tensor-product prisms can
  be used in the same mesh
- Cell refiners have been abstracted. Currently there are two
  (regular refinement, and conversion to hexes). The plan is to add
  more, such as local extrusion and conversion to simplices
- Remove SimplexToTensor in favor of DM_REFINER_TO_BOX
- DMForest now responds to DMPlexGetOverlap() and propagates its
  overlap to the underlying Plex
- Add DMPlexGetSimplexOrBoxCells() to replace
  DMPlexGetInteriorCellStratum()
- Add DMPolytopTypeGetDim(), DMPolyTopeTypeGetConeSize(),
  DMPolytopeTypeGetNumVertices()
- Add DMLabelSetStratumBounds()
- Add DMPlexOrientCell() which orients a single cell
- Add DMPlexCompareOrientations() which compares the cone point
  order of a single cell with the given reference cone
- Add DMPlexIsInterpolated() which finds out whether the plex is
  interpolated
- Add DMPlexIsInterpolatedCollective() which finds out whether the
  plex is interpolated on all ranks
- Add DMPlexIsDistributed() which finds out whether the plex is
  distributed

```{rubric} DMNetwork:
```

- Add DMNetworkSetComponentNumVariables(),
  DMNetworkGetComponentVariableOffset(), and
  DMNetworkGetComponentVariableGlobalOffset() to set number of
  variables for a component, and retrieve its local/global offsets.

```{rubric} DT:
```

- All tabulated data is now stored in PetscTabulation structures.
  This changes interfaces in PetscDS, PetscFE, and PetscFV
- Rename DefaultTabulation to CellTabulation everywhere
- PetscDTGaussJacobiQuadrature() is now truly Gauss-Jacobi
  quadrature. The quadrature for the simplex (without weight
  function) is now called PetscDTStroudConicalQuadrature()
- Add PetscDTJacobiEval(), PetscDTGaussLobattoJacobiQuadrature()
- Add PetscDTIndexToBary() and PetscDTBaryToIndex() for barycentric
  lattice calculations
- Add PetscDTNodeType to enumerate methods of defining interpolation
  nodes
- PetscDualSpace now has PetscDualSpaceSetFormDegree() and
  PetscDualSpaceGetFormDegree() for governing functional
  pushforward/pullback behavior
- PETSCDUALSPACELAGRANGE now has PetscDualSpaceGetTrimmed() and
  PetscDualSpaceSetTrimmed() for creating degrees of freedom for
  trimmed polynomial spaces
- PETSCDUALSPACELAGRANGE now has PetscDualSpaceGetNodeType() and
  PetscDualSpaceSetNodType() for controlling the placement of
  interpolation nodes
- PETSCDUALSPACEBDM is no longer a standalone type of
  PetscDualSpace: it is now a constructor alias for
  PETSCDUALSPACELAGRANGE

```{rubric} PetscViewer:
```

- Remove last PetscBool argument from PetscViewerBinaryWrite()
- Add "fieldnum" argument to PetscViewerVTKAddField() to indicate
  only one field of the vector should be viewed

```{rubric} SYS:
```

- Rename PetscSignalSegvCheckPointer() to
  PetscSignalSegvCheckPointerOrMpi()

- Extend -info option controlling PetscInfo(). It now takes takes
  optional arguments
  `-info [filename][:[~]list,of,classnames[:[~]self]]`. See
  PetscInfo() manpage

- Add new API to control PetscInfo() programatically:

  - Add PetscInfoEnabled() - Indicate whether a given PETSc class
    is allowed in PetscInfo()
  - Add PetscInfoSetFile() - Set output destination of PetscInfo()
  - Add PetscInfoGetFile() - Get output destination of PetscInfo()
  - Add PetscInfoSetClasses() - Sets the classes which PetscInfo()
    is filtered for/against
  - Add PetscInfoGetClass() - Indicates whether the provided
    classname is marked as a filter in PetscInfo() as set by
    PetscInfoSetClasses()
  - Add PetscInfoProcessClass() - Activates or deactivates a class
    based on the filtering status of PetscInfo()
  - Add PetscInfoGetInfo() - Returns the current state of several
    indicator flags for PetscInfo()
  - Add PetscInfoSetFilterCommSelf() - Sets PetscInfoCommFlag enum
    to control communicator size filtering for PetscInfo()
  - Add PetscInfoDestroy() - Destroys and resets internal
    PetscInfo() filter options
  - Change PetscInfoAllow() to only activate/deactivate
    PetscInfo(), file setting is now handled separately by
    PetscInfoSetFile()

- Add PetscSubcommGetParent() - Gets the communicator that was used
  to create the PetscSubcomm

- Add PetscSubcommGetContiguousParent() - Gets a communicator that
  that is a duplicate of the parent but has the ranks reordered by
  the order they are in the children

- Add PetscSubcommGetChild() - Gets the communicator created by the
  PetscSubcomm

- Change the default option of -build_twosided from ibarrier to
  allreduce for communicators with no more than 1024 ranks

```{rubric} AO:
```

```{rubric} Sieve:
```

```{rubric} Fortran:
```