PETSc: Documentation: Changes: 2.1.0

# PETSc

# Documentation: Changes: 2.1.0

## CHANGES in PETSc 2.1.0 (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 PetscLogDefaultBegin().
- 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.0 (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: