xref: /petsc/doc/changes/37.md (revision 7f296bb328fcd4c99f2da7bfe8ba7ed8a4ebceee)
1# Changes: 3.7
2
3```{rubric} General:
4```
5
6- -log_summary is deprecated, you should use -log_view
7
8- PetscViewerSetFormat() is deprecated, you should use
9  PetscViewerPushFormat() followed after the viewing with
10  PetscViewerPopFormat()
11
12- PetscMemoryShowUsage() and -memory_info changed to
13  PetscMemoryView() and -memory_view
14
15- PetscOptionsSetValue() may now be called BEFORE PetscInitialize()
16  and any options set then will be used in the initialization
17  process. These options are overwritten by command line options.
18
19- The following routines now take an optional *PetscOptions* object
20  as the first argument, use NULL to get the previous behavior.
21
22  ```
23  PetscOptionsHasName(PetscOptions,const char[],const char[],PetscBool *);
24  PetscOptionsGetInt(PetscOptions,const char[],const char [],PetscInt *,PetscBool *);
25  PetscOptionsGetBool(PetscOptions,const char[],const char [],PetscBool  *,PetscBool *);
26  PetscOptionsGetReal(PetscOptions,const char[],const char[],PetscReal *,PetscBool *);
27  PetscOptionsGetScalar(PetscOptions,const char[],const char[],PetscScalar *,PetscBool *);
28  PetscOptionsGetIntArray(PetscOptions,const char[],const char[],PetscInt[],PetscInt *,PetscBool *);
29  PetscOptionsGetRealArray(PetscOptions,const char[],const char[],PetscReal[],PetscInt *,PetscBool *);
30  PetscOptionsGetScalarArray(PetscOptions,const char[],const char[],PetscScalar[],PetscInt *,PetscBool *);
31  PetscOptionsGetBoolArray(PetscOptions,const char[],const char[],PetscBool [],PetscInt *,PetscBool *);
32  PetscOptionsGetString(PetscOptions,const char[],const char[],char[],size_t,PetscBool *);
33  PetscOptionsGetStringArray(PetscOptions,const char[],const char[],char*[],PetscInt*,PetscBool *);
34  PetscOptionsGetEList(PetscOptions,const char[],const char[],const char*const*,PetscInt,PetscInt*,PetscBool *);
35  PetscOptionsGetEnum(PetscOptions,const char[],const char[],const char*const*,PetscEnum*,PetscBool *);
36  PetscOptionsGetEnumArray(PetscOptions,const char[],const char[],const char*const*,PetscEnum*,PetscInt *,PetscBool *);
37  PetscOptionsSetAlias(PetscOptions,const char[],const char[]);
38  PetscOptionsSetValue(PetscOptions,const char[],const char[]);
39  PetscOptionsClearValue(PetscOptions,const char[]);
40  PetscOptionsAllUsed(PetscOptions,PetscInt*);
41  PetscOptionsUsed(PetscOptions,const char *,PetscBool*);
42  PetscOptionsView(PetscOptions,PetscViewer);
43  PetscOptionsInsert(PetscOptions,int*,char ***,const char[]);
44  PetscOptionsInsertFile(MPI_Comm,PetscOptions,const char[],PetscBool );
45  PetscOptionsInsertString(PetscOptions,const char[]);
46  PetscOptionsPrefixPush(PetscOptions,const char[]);
47  PetscOptionsReject(PetscOptions,const char[],const char[]);
48  PetscOptionsGetAll(PetscOptions,char*[]);
49  ```
50
51- PetscLogBegin() is now PetscLogDefaultBegin().
52
53```{rubric} Configure/Build:
54```
55
56- Added --download-packages-dir=directory to support easy use of
57  --download-xxx behind firewalls
58- --download-package for externalpackage with a gitrepo will never
59  be stale. Each time configure is invoked - it will do a 'git
60  fetch' and 'git checkout commit-id'. And if the commit-id changes
61  from the previous build - the package will be rebuilt. To prevent
62  this sync [and use previous snapshot] - one can use
63  --download-package-commit=HEAD
64- Added --with-libpng/--with-giflib/--with-libjpeg and corresponding
65  --download versions to support PNG/GIF/JPEG image generation
66- Removed support for AfterImage in favor of libpng/GIFLIB/libjpeg
67
68```{rubric} IS:
69```
70
71```{rubric} PetscDraw:
72```
73
74- Added option -draw_cmap to use a named colormap (e.g., hue
75  (default), jet, coolwarm, parula, viridis) in the drawing of
76  contour plots.
77- Support for saving images and movies was improved. Support for
78  generating binary PPM images is built-in, but the format is
79  uncompressed and images are large (640x480 pixels ~ 900 KiB).
80  PETSc can optionally generate PNG/GIF/JPEG images using the
81  libpng/GIFLIB/libjpeg packages (configure
82  --with-package/--download-package). These libraries are popular,
83  well maintained, and available through most packages managers
84  (dnf/yum, apt, brew). For most users, PNG images should be enough.
85- Added routine PetscDrawSave(), users should explicitly call it to
86  save images after configuring with PetscDrawSetSave().
87- The PetscDrawSynchronizedXXX() routines were removed, the
88  corresponding PetscDrawXXX() are now collective.
89
90```{rubric} PF:
91```
92
93```{rubric} Vec:
94```
95
96- For complex numbers VecNorm(v,NORM_1,) will return the traditional
97  1 norm of the 2 norm of the complex numbers; that is the 1 norm of
98  the absolute values of the complex entries. Previously it returned
99  the 1 norm of the 1 norm of the complex entries (what is returned
100  by the BLAS routine asum()). Both are valid norms but most people
101  expect the former.
102
103```{rubric} VecScatter:
104```
105
106```{rubric} PetscSection:
107```
108
109```{rubric} Mat:
110```
111
112```{rubric} PC:
113```
114
115- If the DM has a CreateRestriction() function the PCMG
116  automatically uses that to create the restriction operator instead
117  of defaulting to using the transpose of the interpolation
118- Added -pc_hypre_boomeramg_nodal_coarsen - where n is from 1 to 6
119  (see HYPRE_BOOMERAMGSetNodal())
120- Added -pc_hypre_boomeramg_vec_interp_variant where v is from 1 to
121  4 (see HYPRE_BoomerAMGSetInterpVecVariant())
122- see PCHYPRE to allow taking advantage of MatSetNearNullSpace() for
123  hypre BoomerAMG
124- Added PCTelescope which supports running solvers on
125  sub-communicators. This PC allows re-partitioning of coarse levels
126  solves within PCMG when using Galerkin coarse level operators.
127
128```{rubric} KSP:
129```
130
131- KSPSetMonitor(KSPMonitorXXX, calls now require passing a viewer as
132  the final argument, you can no longer pass a NULL)
133- -ksp_monitor_solution now takes arguments of the form
134  \[viewertype\[:filename[:formatoption]\]\] allowing viewing the
135  solution in many ways. To get back the previous behavior use
136  -ksp_monitor_solution draw
137- A Flexible Conjugate Gradient (FCG) implementation has been added
138  as KSPFCG.
139- New implementations for pipelined, flexible Krylov methods have
140  been added as KSPPIPEFGMRES, KSPPIPEFCG, and KSPPIPEGCR.
141
142```{rubric} SNES:
143```
144
145- SNESSetMonitor(SNESMonitorXXX, calls now require passing a viewer
146  as the final argument, you can no longer pass a NULL)
147- -snes_monitor_solution/residual/solution_update now takes
148  arguments of the form \[viewertype\[:filename[:formatoption]\]\]
149  allowing viewing the solution in many ways. To get back the
150  previous behavior use -ksp_monitor_solution draw
151
152```{rubric} SNESLineSearch:
153```
154
155- -snes_linesearch_monitor now takes an optional [:filename]
156  argument, changed SNESLineSearchSet/GetMonitor to
157  SNESLineSearchSet/GetDefaultMonitor
158- Added SNESLineSearchMonitorSet()
159- Partial support for -snes_linesearch_monitor_solution_update
160
161```{rubric} TS:
162```
163
164- You must call TSSetExactFinalTime() or use the option
165  -ts_exact_final_time before calling TSSolve()
166- TSSetMonitor(TSMonitorXXX, calls now require passing a viewer as
167  the final argument, you can no longer pass a NULL)
168- -ts_monitor_solution now takes arguments of the form
169  \[viewertype\[:filename[:formatoption]\]\] allowing viewing the
170  solution in many ways. To get back the previous behavior use
171  -ksp_monitor_solution draw
172- -ts_monitor_binary_solution filename should now be written as
173  -ts_monitor_solution binary:filename
174- Renamed TSSetEventMonitor() to TSSetEventHandler(). Updated many
175  TS implementations to support event detection.
176- Updated TSTHETA, TSBEULER, and TSCN to support time adaptivity by
177  estimating the local truncation error with a BDF-2 formula.
178- Updated TSALPHA implementation. Removed TSAlphaSetAdapt() and
179  TSAlphaAdaptDefault(), use TSAlphaUseAdapt() instead.
180- Added TSBDF, an implementation of backward difference formulas
181  using constant order (1 to 6) and supporting time adaptivity.
182- Implemented new interface for second-order systems to avoid using
183  a first-order system formulation. Added TSALPHA2 implementation
184  (generalized-alpha, Chung & Hubert 1993) featuring user-controlled
185  damping of high-frequency modes and time adaptivity through a
186  BDF-2 formula.
187
188```{rubric} DM/DA:
189```
190
191- Added DMShellSetCreateRestriction
192- Added the generic option prefix interfaces: DMGetOptionsPrefix(),
193  DMAppendOptionsPrefix()
194- DMLabel labels are now available to all DM objects, not just
195  DMPlex object
196- DMClone() now handles copying the coordinates, so that
197  DMCopyCoordinates() is no longer necessary
198
199```{rubric} DMPlex:
200```
201
202```{rubric} PetscViewer:
203```
204
205- Replaced PetscViewerASCIISynchronizedAllow() with
206  PetscViewerASCIIPushSynchronized()
207  PetscViewerASCIIPopSynchronized()
208
209```{rubric} SYS:
210```
211
212```{rubric} Tao:
213```
214
215- Removed convergence tolerances -tao_fatol and tao_frtol also
216  remove these two parameters from TAOSetTolerance() and
217  TaoGetTolerance()
218
219```{rubric} AO:
220```
221
222```{rubric} Sieve:
223```
224
225```{rubric} Fortran:
226```
227