1*7f296bb3SBarry Smith# Changes: 2.1.0 2*7f296bb3SBarry Smith 3*7f296bb3SBarry Smith## Changes 4*7f296bb3SBarry Smith 5*7f296bb3SBarry Smith(See [Features] below) 6*7f296bb3SBarry Smith 7*7f296bb3SBarry Smith```{rubric} General: 8*7f296bb3SBarry Smith``` 9*7f296bb3SBarry Smith 10*7f296bb3SBarry Smith- Simpler interface for structured grids, see 11*7f296bb3SBarry Smith src/snes/examples/tutorials/ex5.c 12*7f296bb3SBarry Smith- "System routines" including PLog..., Options..., Viewer..., 13*7f296bb3SBarry Smith Draw...., FList...,OList... now all begin with the string Petsc. 14*7f296bb3SBarry Smith For example, PetscOptionsGetInt() and PetscLogBegin(). 15*7f296bb3SBarry Smith- The calling sequence for PetscMalloc() was changed to return and 16*7f296bb3SBarry Smith error code and deliver the pointer as a new final argument. Due to 17*7f296bb3SBarry Smith this change, the macros CHKPTRA() and CHKPTRQ() were dropped. 18*7f296bb3SBarry Smith 19*7f296bb3SBarry Smith```{rubric} AO (Application Orderings): 20*7f296bb3SBarry Smith``` 21*7f296bb3SBarry Smith 22*7f296bb3SBarry Smith```{rubric} TS (Timestepping Solvers): 23*7f296bb3SBarry Smith``` 24*7f296bb3SBarry Smith 25*7f296bb3SBarry Smith```{rubric} SNES (Nonlinear Solvers): 26*7f296bb3SBarry Smith``` 27*7f296bb3SBarry Smith 28*7f296bb3SBarry Smith```{rubric} SLES (Linear Solvers): 29*7f296bb3SBarry Smith``` 30*7f296bb3SBarry Smith 31*7f296bb3SBarry Smith```{rubric} KSP (Krylov Subspace Methods): 32*7f296bb3SBarry Smith``` 33*7f296bb3SBarry Smith 34*7f296bb3SBarry Smith```{rubric} PC (Preconditioners): 35*7f296bb3SBarry Smith``` 36*7f296bb3SBarry Smith 37*7f296bb3SBarry Smith```{rubric} MAT (Matrices): 38*7f296bb3SBarry Smith``` 39*7f296bb3SBarry Smith 40*7f296bb3SBarry Smith- When using MatCreate(), you must follow with a MatSetType() or 41*7f296bb3SBarry Smith MatSetFromOptions() before using the matrix. 42*7f296bb3SBarry Smith- Changed 43*7f296bb3SBarry Smith `int MatShellSetOperation(Mat,MatOperation,void*);` 44*7f296bb3SBarry Smith to 45*7f296bb3SBarry Smith `int MatShellSetOperation(Mat,MatOperation,void(*)());` 46*7f296bb3SBarry Smith- Changed 47*7f296bb3SBarry Smith `int MatShellGetOperation(Mat,MatOperation,void**);` 48*7f296bb3SBarry Smith to 49*7f296bb3SBarry Smith `int MatShellGetOperation(Mat,MatOperation,void(**)());` 50*7f296bb3SBarry Smith- Changed IncompleteCholesky to ICC 51*7f296bb3SBarry Smith 52*7f296bb3SBarry Smith```{rubric} DA (Distributed Arrays): 53*7f296bb3SBarry Smith``` 54*7f296bb3SBarry Smith 55*7f296bb3SBarry Smith- Changed the DAMG routines to DMMG routines. 56*7f296bb3SBarry Smith- DAGetColoring() now has new second argument that takes either 57*7f296bb3SBarry Smith IS_COLORING_GLOBAL or IS_COLOR_GLOBAL and a new third argument 58*7f296bb3SBarry Smith that takes the matrix type of either MATMPIAIJ or MATMPIBAIJ. 59*7f296bb3SBarry Smith 60*7f296bb3SBarry Smith```{rubric} VEC (Vectors): 61*7f296bb3SBarry Smith``` 62*7f296bb3SBarry Smith 63*7f296bb3SBarry Smith- Changed `int VecSetOperation(Vec,VecOperation,void*);` to 64*7f296bb3SBarry Smith `int VecSetOperation(Vec,VecOperation,void(*)());` 65*7f296bb3SBarry Smith 66*7f296bb3SBarry Smith```{rubric} IS (Index Sets): 67*7f296bb3SBarry Smith``` 68*7f296bb3SBarry Smith 69*7f296bb3SBarry Smith```{rubric} General: 70*7f296bb3SBarry Smith``` 71*7f296bb3SBarry Smith 72*7f296bb3SBarry Smith```{rubric} Draw (Graphics): 73*7f296bb3SBarry Smith``` 74*7f296bb3SBarry Smith 75*7f296bb3SBarry Smith```{rubric} Viewers: 76*7f296bb3SBarry Smith``` 77*7f296bb3SBarry Smith 78*7f296bb3SBarry Smith```{rubric} System: 79*7f296bb3SBarry Smith``` 80*7f296bb3SBarry Smith 81*7f296bb3SBarry Smith```{rubric} Error Handling: 82*7f296bb3SBarry Smith``` 83*7f296bb3SBarry Smith 84*7f296bb3SBarry Smith- CHKERRA() is now obselete; use CHKERRQ() instead. Changed the 85*7f296bb3SBarry Smith calling sequence of SETERRQ() to eliminate the second input 86*7f296bb3SBarry Smith parameter. 87*7f296bb3SBarry Smith 88*7f296bb3SBarry Smith```{rubric} Event Logging: 89*7f296bb3SBarry Smith``` 90*7f296bb3SBarry Smith 91*7f296bb3SBarry Smith```{rubric} Fortran Interface: 92*7f296bb3SBarry Smith``` 93*7f296bb3SBarry Smith 94*7f296bb3SBarry Smith## Features 95*7f296bb3SBarry Smith 96*7f296bb3SBarry Smith(See [Changes] above) 97*7f296bb3SBarry Smith 98*7f296bb3SBarry Smith```{rubric} General: 99*7f296bb3SBarry Smith``` 100*7f296bb3SBarry Smith 101*7f296bb3SBarry Smith- Simpler interface for structured grids, see 102*7f296bb3SBarry Smith src/snes/examples/tutorials/ex5.c 103*7f296bb3SBarry Smith- Complete infrastructure for parallel multigrid for linear and 104*7f296bb3SBarry Smith nonlinear problems on structured grids. See 105*7f296bb3SBarry Smith src/snes/examples/tutorials/ex19.c 106*7f296bb3SBarry Smith- Added manual pages for PETSc objects, enums etc. 107*7f296bb3SBarry Smith- Added html version of all source code and examples, accessible 108*7f296bb3SBarry Smith from docs/index.html and the manual pages. 109*7f296bb3SBarry Smith 110*7f296bb3SBarry Smith```{rubric} AO (Application Orderings): 111*7f296bb3SBarry Smith``` 112*7f296bb3SBarry Smith 113*7f296bb3SBarry Smith```{rubric} TS (Timestepping Solvers): 114*7f296bb3SBarry Smith``` 115*7f296bb3SBarry Smith 116*7f296bb3SBarry Smith```{rubric} SNES (Nonlinear Solvers): 117*7f296bb3SBarry Smith``` 118*7f296bb3SBarry Smith 119*7f296bb3SBarry Smith```{rubric} SLES (Linear Solvers): 120*7f296bb3SBarry Smith``` 121*7f296bb3SBarry Smith 122*7f296bb3SBarry Smith```{rubric} KSP (Krylov Subspace Methods): 123*7f296bb3SBarry Smith``` 124*7f296bb3SBarry Smith 125*7f296bb3SBarry Smith- Added support for "diagonal scaling" of preconditioned system as 126*7f296bb3SBarry Smith required by most ODE integrators via PCDiagonalScaleSet(). 127*7f296bb3SBarry Smith 128*7f296bb3SBarry Smith```{rubric} PC (Preconditioners): 129*7f296bb3SBarry Smith``` 130*7f296bb3SBarry Smith 131*7f296bb3SBarry Smith```{rubric} MAT (Matrices): 132*7f296bb3SBarry Smith``` 133*7f296bb3SBarry Smith 134*7f296bb3SBarry Smith- Added the Henry Tufo/Paul Fischer libtfs scalable parallel direct 135*7f296bb3SBarry Smith solver for MPIAIJ matrices. 136*7f296bb3SBarry Smith- Added routine MatFDColoringSetRecompute(). 137*7f296bb3SBarry Smith 138*7f296bb3SBarry Smith```{rubric} DA (Distributed Arrays): 139*7f296bb3SBarry Smith``` 140*7f296bb3SBarry Smith 141*7f296bb3SBarry Smith- Added DAVecGetArray() to access the multidimensional arrays 142*7f296bb3SBarry Smith directly in the global parallel indexing. See 143*7f296bb3SBarry Smith src/snes/examples/tutorials/ex5.c and ex19.c 144*7f296bb3SBarry Smith- Add DAGetLocalVector()/DARestoreLocalVector() for inexpensive 145*7f296bb3SBarry Smith access to local work vectors. 146*7f296bb3SBarry Smith 147*7f296bb3SBarry Smith```{rubric} VEC (Vectors): 148*7f296bb3SBarry Smith``` 149*7f296bb3SBarry Smith 150*7f296bb3SBarry Smith- Added DMComposite routines to help with PDE optimization and 151*7f296bb3SBarry Smith multicomponent PDEs. 152*7f296bb3SBarry Smith 153*7f296bb3SBarry Smith```{rubric} IS (Index Sets): 154*7f296bb3SBarry Smith``` 155*7f296bb3SBarry Smith 156*7f296bb3SBarry Smith```{rubric} PF: 157*7f296bb3SBarry Smith``` 158*7f296bb3SBarry Smith 159*7f296bb3SBarry Smith```{rubric} Draw (Graphics): 160*7f296bb3SBarry Smith``` 161*7f296bb3SBarry Smith 162*7f296bb3SBarry Smith```{rubric} Viewers: 163*7f296bb3SBarry Smith``` 164*7f296bb3SBarry Smith 165*7f296bb3SBarry Smith```{rubric} System: 166*7f296bb3SBarry Smith``` 167*7f296bb3SBarry Smith 168*7f296bb3SBarry Smith```{rubric} Error Handling: 169*7f296bb3SBarry Smith``` 170*7f296bb3SBarry Smith 171*7f296bb3SBarry Smith```{rubric} Event Logging: 172*7f296bb3SBarry Smith``` 173*7f296bb3SBarry Smith 174*7f296bb3SBarry Smith```{rubric} Fortran Interface: 175*7f296bb3SBarry Smith``` 176