1*7f296bb3SBarry Smith# Changes: 2.0.16 2*7f296bb3SBarry Smith 3*7f296bb3SBarry Smith```{rubric} General: 4*7f296bb3SBarry Smith``` 5*7f296bb3SBarry Smith 6*7f296bb3SBarry Smith- Added the option -compare option for incremental debugging; see 7*7f296bb3SBarry Smith the users manual for more details. 8*7f296bb3SBarry Smith- Added tags file so that vi users can easily browse PETSc source 9*7f296bb3SBarry Smith files (just as emacs users already can by using etags). See the 10*7f296bb3SBarry Smith users manual subsection "VI users" for details. 11*7f296bb3SBarry Smith- We have stopped distributing the Unix-style manpages with PETSc. 12*7f296bb3SBarry Smith Instead, we now only distribute the HTML version. You can still 13*7f296bb3SBarry Smith access the man pages with the command \$PETSC_DIR/bin/petscman. 14*7f296bb3SBarry Smith Alternatively, you can directly view \$PETSC_DIR/docs/www/www.html. 15*7f296bb3SBarry Smith 16*7f296bb3SBarry Smith```{rubric} TS (Timestepping Solvers): 17*7f296bb3SBarry Smith``` 18*7f296bb3SBarry Smith 19*7f296bb3SBarry Smith```{rubric} SNES (Nonlinear Solvers): 20*7f296bb3SBarry Smith``` 21*7f296bb3SBarry Smith 22*7f296bb3SBarry Smith- You can now attach several SNES monitoring routines with 23*7f296bb3SBarry Smith SNESMonitorSet() instead of only one as previously allowed. 24*7f296bb3SBarry Smith Similarly, multiple monitors can be used from the options database 25*7f296bb3SBarry Smith (e.g., -snes_monitor and -snes_xmonitor). 26*7f296bb3SBarry Smith 27*7f296bb3SBarry Smith```{rubric} SLES (Linear Solvers): 28*7f296bb3SBarry Smith``` 29*7f296bb3SBarry Smith 30*7f296bb3SBarry Smith- See PC and KSP 31*7f296bb3SBarry Smith 32*7f296bb3SBarry Smith```{rubric} KSP (Krylov Subspace Methods): 33*7f296bb3SBarry Smith``` 34*7f296bb3SBarry Smith 35*7f296bb3SBarry Smith- You can now attach several KSP monitoring routines with 36*7f296bb3SBarry Smith KSPSetMonitor() instead of only one as previously allowed. 37*7f296bb3SBarry Smith Similarly, multiple monitors can be used from the options database 38*7f296bb3SBarry Smith (e.g., -ksp_monitor and -ksp_xmonitor). 39*7f296bb3SBarry Smith 40*7f296bb3SBarry Smith```{rubric} PC (Preconditioners): 41*7f296bb3SBarry Smith``` 42*7f296bb3SBarry Smith 43*7f296bb3SBarry Smith```{rubric} MAT (Matrices): 44*7f296bb3SBarry Smith``` 45*7f296bb3SBarry Smith 46*7f296bb3SBarry Smith- Added the routines MatSetValuesLocal(), MatZeroRowsLocal() and 47*7f296bb3SBarry Smith MatSetLocalToGlobalMapping() to enable the user to set values in a 48*7f296bb3SBarry Smith matrix using a local numbering of the nodes rather than a global 49*7f296bb3SBarry Smith numbering. 50*7f296bb3SBarry Smith- Added the option MAT_IGNORE_OFF_PROC_ENTRIES for MatSetOption(), 51*7f296bb3SBarry Smith which causes all entries on any processor destined to be stored on 52*7f296bb3SBarry Smith a different processor to be dropped instead. This is useful if you 53*7f296bb3SBarry Smith know that the "owning" processor is also always generating the 54*7f296bb3SBarry Smith correct entries, so PETSc need not ship over the duplicate entry 55*7f296bb3SBarry Smith generated on another processor. - 56*7f296bb3SBarry Smith- Added options MAT_COLUMNS_UNSORTED and MAT_ROWS_UNSORTED for 57*7f296bb3SBarry Smith MatSetOption() to enable switching betwen sorted and unsorted 58*7f296bb3SBarry Smith input. 59*7f296bb3SBarry Smith 60*7f296bb3SBarry Smith```{rubric} DA (Distributed Arrays): 61*7f296bb3SBarry Smith``` 62*7f296bb3SBarry Smith 63*7f296bb3SBarry Smith```{rubric} VEC (Vectors): 64*7f296bb3SBarry Smith``` 65*7f296bb3SBarry Smith 66*7f296bb3SBarry Smith- Changed the SCATTER_ALL argument in VecScatterXXX() routines to 67*7f296bb3SBarry Smith SCATTER_FORWARD. 68*7f296bb3SBarry Smith- Added the routines VecSetValuesLocal() and 69*7f296bb3SBarry Smith VecSetLocalToGlobalMapping() to allow the user to set values into 70*7f296bb3SBarry Smith a vector using a local numbering of the nodes rather than a global 71*7f296bb3SBarry Smith numbering. 72*7f296bb3SBarry Smith- Added the routine 73*7f296bb3SBarry Smith VecSetOption(Vec,VEC_IGNORE_OFF_PROCESSOR_ENTRIES,PETSC_TRUE), 74*7f296bb3SBarry Smith which causes all entries on any processor destined to be stored on 75*7f296bb3SBarry Smith a different processor to be dropped instead. This is useful if you 76*7f296bb3SBarry Smith know that the "owning" processor is also always generating the 77*7f296bb3SBarry Smith correct entries, so PETSc need not transfer the duplicate entries 78*7f296bb3SBarry Smith generated on another processor. 79*7f296bb3SBarry Smith 80*7f296bb3SBarry Smith```{rubric} IS (Index Sets): 81*7f296bb3SBarry Smith``` 82*7f296bb3SBarry Smith 83*7f296bb3SBarry Smith```{rubric} Draw (Graphics): 84*7f296bb3SBarry Smith``` 85*7f296bb3SBarry Smith 86*7f296bb3SBarry Smith- The numbers on the axis plots are much improved. 87*7f296bb3SBarry Smith- You can now pass PETSC_DECIDE as the x and y arguments in 88*7f296bb3SBarry Smith DrawOpenX() and ViewerDrawOpenX() to let PETSc place 89*7f296bb3SBarry Smith non-overlapping windows on the display. 90*7f296bb3SBarry Smith 91*7f296bb3SBarry Smith```{rubric} Viewers: 92*7f296bb3SBarry Smith``` 93*7f296bb3SBarry Smith 94*7f296bb3SBarry Smith```{rubric} System Routines: 95*7f296bb3SBarry Smith``` 96*7f296bb3SBarry Smith 97*7f296bb3SBarry Smith- Added routines PetscSynchronizedPrintf(MPI_Comm,format,args) and 98*7f296bb3SBarry Smith PetscSynchronizedFlush(MPI_Comm), which allow groups of processes 99*7f296bb3SBarry Smith to print to stdout as one would expect. I.e., the output from 100*7f296bb3SBarry Smith processor 0 is followed by the output from processor 1, etc. Very 101*7f296bb3SBarry Smith useful during code development. This can often be a substitute for 102*7f296bb3SBarry Smith attempting to sequentialize printf() statements via 103*7f296bb3SBarry Smith PetscSequentialPhaseBegin() and PetscSequentialPhaseEnd(). - 104*7f296bb3SBarry Smith- Added the command line option -options_file \<file> that causes all 105*7f296bb3SBarry Smith options in the specified file to be treated as if they were typed 106*7f296bb3SBarry Smith on the command line. 107*7f296bb3SBarry Smith- Added the option -log_trace [filename] (and the corresponding 108*7f296bb3SBarry Smith routine PLogTraceBegin()) that allows tracing of all PETSc calls; 109*7f296bb3SBarry Smith useful to see where a program is hanging without running in the 110*7f296bb3SBarry Smith debugger. Can be used in conjunction with the -log_info option. 111*7f296bb3SBarry Smith- Added PetscRandomSetInterval() to enable the user to set an 112*7f296bb3SBarry Smith interval over which random numbers will be uniformly distributed. 113*7f296bb3SBarry Smith 114*7f296bb3SBarry Smith```{rubric} Event Logging: 115*7f296bb3SBarry Smith``` 116*7f296bb3SBarry Smith 117*7f296bb3SBarry Smith```{rubric} Fortran Interface: 118*7f296bb3SBarry Smith``` 119*7f296bb3SBarry Smith 120*7f296bb3SBarry Smith- Added the Fortran interface for VecDuplicateVecs(), 121*7f296bb3SBarry Smith VecDestroyVecs(), VecMAXPY(), VecMDot(), and VecMTDot(). 122