1# Changes: 3.11 2 3```{rubric} General: 4``` 5 6```{rubric} Configure/Build: 7``` 8 9- Configure now supports Python 3.4+ in addition to Python 2.6+. 10 11```{rubric} IS: 12``` 13 14```{rubric} PetscDraw: 15``` 16 17```{rubric} PF: 18``` 19 20```{rubric} Vec: 21``` 22 23```{rubric} VecScatter: 24``` 25 26- Removed VecScatterCreateEmpty(MPI_Comm,VecScatter\*) 27- Added a PetscSF implementation of VecScatter. One can enable it 28 with -vecscatter_type sf 29 30```{rubric} PetscSection: 31``` 32 33```{rubric} Mat: 34``` 35 36- MatRegisterBaseName() changed to MatRegisterRootName() 37- Added -mat_mffd_complex to use complex number trick instead of 38 differencing to evaluate product; requires real functions but 39 complex configuration 40- Added initial support for HDF5 files I/O, particularly MATLAB 41 MAT-File Version 7.3, currently only for reading. See also 42 documentation of MatLoad(). 43 44```{rubric} PC: 45``` 46 47- PCGetSetUpFailedReason is now PCGetFailedReason() 48 49```{rubric} KSP: 50``` 51 52- KSP_DIVERGED_PCSETUP_FAILED replaced with KSP_DIVERGED_PC_FAILED 53- Previously the KSP Chebyshev implementation always did one more 54 iteration than requested. For example -ksp_max_it 2 resulted in 3 55 Chebyshev iterations. This has been corrected. Due to this 56 correction your solver may seem to converge more slowely than it 57 previous has. Note that the multigrid solvers (PCMG, PCGAMG, PCML) 58 used by default Chebyshev (with 3 actual steps) in their smoother, 59 thus the multigrid solvers will now have seemingly different 60 convergence rates since they will now use only 2 actual steps. To 61 reproduce previous behavior change the number of smoother 62 iterations to match the previous actual amount, this can be done 63 with for example -mg_levels_ksp_max_it 3 (or 64 -prefix_mg_levels_ksp_max_it 3 if the KSP object has a prefix). 65 66```{rubric} SNES: 67``` 68 69- Added SNESKSPTRANSPOSEONLY: a linear solver only SNES that solves 70 the transposed linear system. 71 72```{rubric} SNESLineSearch: 73``` 74 75```{rubric} TS: 76``` 77 78- Added TSADAPTHISTORY: a new TSAdapt implementation that follows a 79 given time history, that can set with TSAdaptHistorySetHistory(). 80- Added TSTrajectoryGetVecs() to reconstructs states and time 81 derivative vectors from a TSTrajectory. 82 83```{rubric} TAO: 84``` 85 86- Added extra void\* (context) pointer to the function prototype to 87 be passed as user-defined update function to TaoSetUpdate(). 88 89```{rubric} DM/DA: 90``` 91 92- Added DMStag and associated functions, for working with quantities 93 on regular staggered grids, in a manner similar to the usage of 94 DMDA for colocated quantities. 95- Added DMLocalToGlobal() and DMLocalToGlobal() 96 97```{rubric} DMPlex: 98``` 99 100- Reorganized PetscDS handling completely in order to support 101 multiple subdomains. DMSetDS() was removed in favor of 102 DMSetField()+DMCreateDS(). 103- Added additional PetscSF\* return argument to DMPlexGetGatherDM() 104 (made public) and DMPlexGetRedundantDM(). 105 106```{rubric} PetscViewer: 107``` 108 109- Added new command line options to GLVis viewer, see 110 PetscViewerGLVisOpen() manual page for details. 111 112- PetscViewerHDF5{Has,Read,Write}Attribute(): 113 114 - take the input path as relative to the current (pushed) group 115 - support not only dataset attributes but also group attributes 116 - PetscViewerHDF5WriteAttribute() creates the group if it doesn't 117 exist 118 - PetscViewerHDF5HasAttribute() returns false if the parent path 119 doesn’t exist instead of failing 120 121- Added PetscViewerHDF5Has{Group,Object}() 122 123- Added PetscViewerHDF5{Has,Write,Read}ObjectAttribute() 124 125- PetscViewerHDF5OpenGroup() opens the root group (/) if none is 126 pushed 127 128```{rubric} SYS: 129``` 130 131PetscOptionsGetViewer() takes a NULL or PetscOptions object as the 132second argument. 133.. rubric:: AO: 134 135```{rubric} Sieve: 136``` 137 138```{rubric} Fortran: 139``` 140