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