petsc3.9.0 20180407
Documentation: Changes: 2.1.0
General:

Simpler interface for structured grids, see
src/snes/examples/tutorials/ex5.c

"System routines" including PLog..., Options..., Viewer...,
Draw...., FList...,OList... now all begin with the string Petsc. For
example, PetscOptionsGetInt() and PetscLogBegin().

The calling sequence for PetscMalloc() was changed to return and error
code and deliver the pointer as a new final argument. Due to this
change, the macros CHKPTRA() and CHKPTRQ() were dropped.
AO (Application Orderings):
TS (Timestepping Solvers):
SNES (Nonlinear Solvers):
SLES (Linear Solvers):
KSP (Krylov Subspace Methods):
PC (Preconditioners):
MAT (Matrices):

When using MatCreate(), you must follow with a MatSetType() or
MatSetFromOptions() before using the matrix.

Changed
int
MatShellSetOperation(Mat,MatOperation,void*);
to int
MatShellSetOperation(Mat,MatOperation,void(*)());

Changed
int
MatShellGetOperation(Mat,MatOperation,void**);
to int
MatShellGetOperation(Mat,MatOperation,void(**)());
 Changed IncompleteCholesky to ICC
DA (Distributed Arrays):
 Changed the DAMG routines to DMMG routines.

DAGetColoring() now has new second argument that takes either
IS_COLORING_GLOBAL or IS_COLOR_GLOBAL and a new third argument that
takes the matrix type of either MATMPIAIJ or MATMPIBAIJ.
VEC (Vectors):

Changed
int VecSetOperation(Vec,VecOperation,void*);
to
int VecSetOperation(Vec,VecOperation,void(*)());
IS (Index Sets):
General:
Draw (Graphics):
Viewers:
System:
Error Handling:

CHKERRA() is now obselete; use CHKERRQ() instead. Changed the calling
sequence of SETERRQ() to eliminate the second input parameter.
Event Logging:
Fortran Interface:
General:
 Simpler interface for structured grids, see src/snes/examples/tutorials/ex5.c

Complete infrastructure for parallel multigrid for linear and
nonlinear problems on structured grids. See
src/snes/examples/tutorials/ex19.c
 Added manual pages for PETSc objects, enums etc.

Added html version of all source code and examples, accessable from
docs/index.html and the manual pages.
AO (Application Orderings):
TS (Timestepping Solvers):
SNES (Nonlinear Solvers):
SLES (Linear Solvers):
KSP (Krylov Subspace Methods):

Added support for "diagonal scaling" of preconditioned
system as required by most ODE integrators via
PCDiagonalScaleSet().
PC (Preconditioners):
MAT (Matrices):

Added the Henry Tufo/Paul Fischer libtfs scalable parallel direct
solver for MPIAIJ matrices.
 Added routine MatFDColoringSetRecompute().
DA (Distributed Arrays):

Added DAVecGetArray() to access the multidimensional arrays directly in
the global parallel indexing. See src/snes/examples/tutorials/ex5.c and
ex19.c

Add DAGetLocalVector()/DARestoreLocalVector() for inexpensive access
to local work vectors.
VEC (Vectors):
 Added DMComposite routines to help with PDE optimization and multicomponent PDEs.
IS (Index Sets):
PF:
Draw (Graphics):
Viewers:
System:
Error Handling:
Event Logging:
Fortran Interface: