# Changes: 2.1.0 ## Changes (See [Features] below) ```{rubric} 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. ```{rubric} AO (Application Orderings): ``` ```{rubric} TS (Timestepping Solvers): ``` ```{rubric} SNES (Nonlinear Solvers): ``` ```{rubric} SLES (Linear Solvers): ``` ```{rubric} KSP (Krylov Subspace Methods): ``` ```{rubric} PC (Preconditioners): ``` ```{rubric} 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 ```{rubric} 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. ```{rubric} VEC (Vectors): ``` - Changed `int VecSetOperation(Vec,VecOperation,void*);` to `int VecSetOperation(Vec,VecOperation,void(*)());` ```{rubric} IS (Index Sets): ``` ```{rubric} General: ``` ```{rubric} Draw (Graphics): ``` ```{rubric} Viewers: ``` ```{rubric} System: ``` ```{rubric} Error Handling: ``` - CHKERRA() is now obselete; use CHKERRQ() instead. Changed the calling sequence of SETERRQ() to eliminate the second input parameter. ```{rubric} Event Logging: ``` ```{rubric} Fortran Interface: ``` ## Features (See [Changes] above) ```{rubric} 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. ```{rubric} AO (Application Orderings): ``` ```{rubric} TS (Timestepping Solvers): ``` ```{rubric} SNES (Nonlinear Solvers): ``` ```{rubric} SLES (Linear Solvers): ``` ```{rubric} KSP (Krylov Subspace Methods): ``` - Added support for "diagonal scaling" of preconditioned system as required by most ODE integrators via PCDiagonalScaleSet(). ```{rubric} PC (Preconditioners): ``` ```{rubric} MAT (Matrices): ``` - Added the Henry Tufo/Paul Fischer libtfs scalable parallel direct solver for MPIAIJ matrices. - Added routine MatFDColoringSetRecompute(). ```{rubric} 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. ```{rubric} VEC (Vectors): ``` - Added DMComposite routines to help with PDE optimization and multicomponent PDEs. ```{rubric} IS (Index Sets): ``` ```{rubric} PF: ``` ```{rubric} Draw (Graphics): ``` ```{rubric} Viewers: ``` ```{rubric} System: ``` ```{rubric} Error Handling: ``` ```{rubric} Event Logging: ``` ```{rubric} Fortran Interface: ```