# Docs: Changes: 2.1

CHANGES in PETSc 2.1 (see new features)

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:

New Features in PETSc 2.1 (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, 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: