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