xref: /petsc/doc/changes/2016.md (revision d000e8ac2eed99d0cf14796aab94de0aed57fd8b)
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