File: 36.md.txt

package info (click to toggle)
petsc 3.23.1%2Bdfsg1-1exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 515,576 kB
  • sloc: ansic: 751,607; cpp: 51,542; python: 38,598; f90: 17,352; javascript: 3,493; makefile: 3,157; sh: 1,502; xml: 619; objc: 445; java: 13; csh: 1
file content (201 lines) | stat: -rw-r--r-- 6,978 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
# Changes: 3.6

```{rubric} General:
```

- User makefiles must be updated. You must change the lines

  - include \$\{PETSC_DIR}/conf/variables and
  - include \$\{PETSC_DIR}/conf/rules

  to

  - include \$\{PETSC_DIR}/lib/petsc/conf/variables and
  - include \$\{PETSC_DIR}/lib/petsc/conf/rules

- PetscOptionsBool() no longer sets the value of the boolean based
  on the value passed in

- Script for running MPIUni jobs is now bin/petsc-mpiexec.uni

- Removed all threadcomm support including --with-pthreadclasses and
  --with-openmpclasses configure arguments

- Updated MUMPS version to 5.0.0 - and updated metis to 5.1.0,
  parmetis to 4.0.3-p1 - in sync with MUMPS.

- Updated to hypre-2.10.0b, scotch_6.0.3, Elemental-0.85

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

- Add toplevel makefile targets *clean* and *distclean*. Target
  *clean* deletes PETSc libraries built by makefile target *all*.
  Target *distclean* deletes all build files created by *configure*
  and \[*make all*\]. Target *clean* in example directories continues
  to work as before [deletes object files and executables]

```{rubric} IS:
```

```{rubric} PetscDraw:
```

- PetscDrawBoxedString() changed to PetscDrawStringBoxed() added
  PetscDrawBar object for drawing bar graphs added
  PetscDrawStringCentered()

```{rubric} PF:
```

```{rubric} Vec:
```

```{rubric} VecScatter:
```

```{rubric} PetscSection:
```

```{rubric} Mat:
```

- MatGetVecs() replaced with MatCreateVecs() because it actually
  does create the Vecs that need to be destroyed
- MatCreateMPIAIJConcatenateSeqAIJ and
  MatCreateMPIBAIJConcatenateSeqBAIJ replaced with
  MatCreateMPIMatConcatenateSeqMat
- MatGetRedundantMatrix() replaced with MatCreateRedundantMatrix()
- Added support for MUMPS sequential solver in Schur complement mode
- MatGetSubMatricesMPI() will extract parallel submatrices on
  subcommunicators of the supplied IS objects. Unsorted, but not
  repeated indices are okay.
- Removed MatMFFDAddNullSpace() just use MatSetNullSpace()

```{rubric} PC:
```

- Removed -pc_hypre_type euclid due to bit-rot
- Upgraded to SuiteSparse 4.4.1; Cholmod supports using GPUs
  (developer repository only feature) --with-cuda
  --download-suitesparse-gpu --with-64-bit-indices;
  -mat_cholmod_useGPU 1 or 0; 1 by default when configured for it
- Upgraded to Superlu_DIST 4.0; Superlu_DIST supports using GPUs
  (developer repository only feature) --with-cuda --with-openmp
  --download-superlu_dist-gpu (developer repository only feature)
  --with-64-bit-indices -mat_cholmod_useGPU 1 or 0; 1 by default
  when configured for it
- Added PCBDDCSetChangeOfBasisMat for user defined change of basis
- PCBDDC: added adaptive selection of constraints: it is available
  by command line options
- PCJacobiSetUseAbs() now takes a PetscBool argument allowing
  toggling the option
- PCJacobiSetUseRowMax() and PCJacobiSetUseRowSum() have been merged
  into PCJacobiSetType()
- PCFactorSetUseInplace() now takes a PetscBool argument. Added
  PCFactorGetUseInplace()
- PCFactorSetAllowDiagonalFill() now takes a PetscBool argument.
  Added PCFactorGetAllowDiagonalFill()
- PCEisenstatNoDiagonalScaling() changed to
  PCEisenstatSetNoDiagonalScaling() and takes a boolean
- Added Interface to AMS solver from HYPRE for Nedelec
  discretizations (-pc_hypre_type ams)
- Added Interface to ADS solver from HYPRE for Raviart-Thomas
  discretizations (-pc_hypre_type ads)
- Contributed MKL PARDISO interface providing PCCholesky support.
  Useable with: -pc_type cholesky -mat_type sbaij
  -pc_factor_mat_solver_package mkl_pardiso
- PCGASMSetTotalSubdomains() can now create multirank subdomains if
  their number is less than comm size.
- PCGAMGSetReuseProl() is changed to PCGAMGSetReuseInterpolation()

```{rubric} KSP:
```

- Removed KSPSetNullSpace() always use MatSetNullSpace() provided to
  the FIRST matrix argument to KSPSetOperators(), or
  SNESSetJacobian(), or TSSetIJacobian()
- Added MatSetTransposeNullSpace() to indicate the null space of the
  transpose operator
- Removed KSPSPECEST since its functionality is replaced by the
  esteig functionality within KSPChebyshev
- Unified KSPChebyshev routines that work with estimating
  eigenvalues with the prefix name KSPChebyshevEstEig... For example
  KSPChebyshevSetEstimateEigenvalues() is now
  KSPChebyshevEstEigSet() and
  KSPChebyshevSetEstimateEigenvaluesRandom() is now
  KSPChebyshevEstEigSetRandom() similarly
  -ksp_chebyshev_estimate_eigenvalues_random is
  -ksp_chebyshev_esteig_random. The previous for the (GMRES) KSP
  used to estimate the eigenvalues is now esteig\_ not est\_
- KSPGetVecs() replaced with KSPCreateVecs() because it actually
  does create the Vecs that need to be destroyed

```{rubric} SNES:
```

- Added KSPMonitorSNES() with command line option -ksp_monitor_snes
  and -ksp_monitor_snes_lg to monitor SNES residual norm at each
  linear iteration SNESMonitorVI() becomes SNESVIMonitor()
- Added SNESVIMonitorResidual() and -snes_vi_monitor_residual

```{rubric} SNESLineSearch:
```

```{rubric} TS:
```

- The postevent routine set with TSSetEventMonitor() now takes an
  additional PetscBool argument 'forwardsolve'. The forwardsolve
  flag is used to distinguish between a TS forward solve
  (forwardsolve = 1) and adjoint solve (forwardsolve = 0).
- Added TSAdjointSolve() for adjoint sensitivity analysis
- EquationType is introduced to distinguish between ODEs and DAEs.
  It needs to be set accordingly before solving the problem through
  TSSetEquationType(). It currently only affects arkimex methods.

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

- DMCreateInjection() now returns a Mat, rather than a VecScatter
- The MatType argument is removed from DMCreateMatrix(), you can use
  DMSetMatType() to indicate the type you want used with a DM,
  defaults to MATAIJ
- You can now use DMDASetAOType() to indicate the type of AO you
  want used with a DMDA (defaults to AOBASIC)

```{rubric} DMPlex:
```

- Can now redistribute parallel meshes
- Can now increase the overlap of parallel meshes
- Added new mesh formats, Fluent CAS and Gmsh

```{rubric} PetscViewer:
```

- HDF5 viewer will save Vecs and DMDA Vecs with a dimension of 1 if
  the bs/dof of the vector is 1. To always include this dimension as
  a specific dimension in the HDF5 file even if it is of size 1
  use PetscViewerHDF5SetBaseDimension2() or
  -viewer_hdf5_base_dimension2 true

```{rubric} SYS:
```

- PetscOptionsHead() now takes a PetscOptions argument.
- PetscObjectAddOptionsHandler() now takes an event handler that
  includes a PetscOptions argument.
  PetscObjectProcessOptionsHandlers() requires this as input.

```{rubric} AO:
```

```{rubric} Fortran:
```

- Fortran include files are now in include/petsc/finclude instead of
  include/finclude. Thus replace uses of #include "finclude/xxx.h"
  with #include "petsc/finclude/xxx.h". Reason for change: to
  namespace the finclude directory with PETSc for --prefix installs
  of PETSc and for packaging systems