PETSc
NEW FEATURES
and CHANGES in PETSc 2.0.16
General:
- Added the option -compare option for incremental debugging; see the users manual for
more details.
- Added tags file so that vi users can easily browse PETSc source files (just as emacs
users already can by using etags). See the users manual subsection "VI users"
for details.
- We have stopped distributing the UNIX-style manpages with PETSc. Instead, we now only
distribute the HTML version. You can still access the man pages with the command
$PETSC_DIR/bin/petscman. Alternatively, you can directly view
$PETSC_DIR/docs/www/www.html.
TS (Timestepping Solvers):
SNES (Nonlinear Solvers):
- You can now attach several SNES monitoring routines with SNESSetMonitor() instead of
only one as previously allowed. Similarly, multiple monitors can be used from the options
database (e.g., -snes_monitor and -snes_xmonitor).
SLES (Linear Solvers):
KSP (Krylov Subspace Methods):
- You can now attach several KSP monitoring routines with KSPSetMonitor() instead of only
one as previously allowed. Similarly, multiple monitors can be used from the options
database (e.g., -ksp_monitor and -ksp_xmonitor).
PC (Preconditioners):
MAT (Matrices):
- Added the routines MatSetValuesLocal(), MatZeroRowsLocal() and
MatSetLocalToGlobalMapping() to enable the user to set values in a matrix using a local
numbering of the nodes rather than a global numbering.
- Added the option MAT_IGNORE_OFF_PROC_ENTRIES for MatSetOptions(), which causes all
entries on any processor destined to be stored on a different processor to be dropped
instead. This is useful if you know that the "owning" processor is also always
generating the correct entries, so PETSc need not ship over the duplicate entry generated
on another processor. -
- Added options MAT_COLUMNS_UNSORTED and MAT_ROWS_UNSORTED for MatSetOptions() to enable
switching betwen sorted and unsorted input.
DA (Distributed Arrays):
VEC (Vectors):
- Changed the SCATTER_ALL argument in VecScatterXXX() routines to SCATTER_FORWARD.
- Added the routines VecSetValuesLocal() and VecSetLocalToGlobalMapping() to allow the
user to set values into a vector using a local numbering of the nodes rather than a global
numbering.
- Added the routine VecSetOption(Vec,VEC_IGNORE_OFF_PROCESSOR_ENTRIES), which causes all
entries on any processor destined to be stored on a different processor to be dropped
instead. This is useful if you know that the "owning" processor is also always
generating the correct entries, so PETSc need not transfer the duplicate entries generated
on another processor.
IS (Index Sets):
Draw (Graphics):
- The numbers on the axis plots are much improved.
- You can now pass PETSC_DECIDE as the x and y arguments in DrawOpenX() and
ViewerDrawOpenX() to let PETSc place non-overlapping windows on the display.
Viewers:
System Routines:
- Added routines PetscSynchronizedPrintf(MPI_Comm,format,args) and
PetscSynchronizedFlush(MPI_Comm), which allow groups of processes to print to stdout as
one would expect. I.e., the output from processor 0 is followed by the output from
processor 1, etc. Very useful during code development. This can often be a substitute for
attempting to sequentialize printf() statements via PetscSequentialPhaseBegin() and
PetscSequentialPhaseEnd(). -
- Added the command line option -options_file <file> that causes all options in the
specified file to be treated as if they were typed on the command line.
- Added the option -log_trace [filename] (and the corresponding routine PLogTraceBegin())
that allows tracing of all PETSc calls; useful to see where a program is hanging without
running in the debugger. Can be used in conjunction with the -log_info option.
- Added PetscRandomSetInterval() to enable the user to set an interval over which random
numbers will be uniformly distributed.
Event Logging:
Fortran Interface:
- Added the Fortran interface for VecDuplicateVecs(), VecDestroyVecs(), VecMAXPY(),
VecMDot(), and VecMTDot().