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