# Changes: 2.1.0

## Changes

(See Features below)

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:

## Features

(See Changes above)

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, accessible 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:

Changes: 2.1.1 Changes: 2.0.29