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