1*7f296bb3SBarry Smith# Changes: 2.1.1 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- Scalar -> PetscScalar (and added PetscReal) 11*7f296bb3SBarry Smith 12*7f296bb3SBarry Smith- The make files are reorganized. bmake/\$\{PETSC_ARCH}/base_variables 13*7f296bb3SBarry Smith -> variables, and base.site -> packages. base ->rules. 14*7f296bb3SBarry Smith 15*7f296bb3SBarry Smith- If using makefiles from earlier version of PETSc, change 16*7f296bb3SBarry Smith 17*7f296bb3SBarry Smith - `include ${PETSC_DIR}/bmake/${PETSC_ARCH}/base` 18*7f296bb3SBarry Smith 19*7f296bb3SBarry Smith to 20*7f296bb3SBarry Smith 21*7f296bb3SBarry Smith - `include ${PETSC_DIR}/conf/base` 22*7f296bb3SBarry Smith 23*7f296bb3SBarry Smith- The Microsoft Windows build of PETSc with win32_gnu, win32_intel and 24*7f296bb3SBarry Smith win32_mpich now default to using MPICH-1.2.3The complex version of 25*7f296bb3SBarry Smith the PETSc libraries can only be installed with C++ compilers that 26*7f296bb3SBarry Smith provide the std::complex implementation. 27*7f296bb3SBarry Smith 28*7f296bb3SBarry Smith```{rubric} AO (Application Orderings): 29*7f296bb3SBarry Smith``` 30*7f296bb3SBarry Smith 31*7f296bb3SBarry Smith```{rubric} TS (Timestepping Solvers): 32*7f296bb3SBarry Smith``` 33*7f296bb3SBarry Smith 34*7f296bb3SBarry Smith```{rubric} DMMG 35*7f296bb3SBarry Smith``` 36*7f296bb3SBarry Smith 37*7f296bb3SBarry Smith- Default Krylov method on outer linear solver is now FGMRES instead 38*7f296bb3SBarry Smith of GMRES. Also default multigrid type is now full instead of 39*7f296bb3SBarry Smith multiplicative 40*7f296bb3SBarry Smith 41*7f296bb3SBarry Smith```{rubric} SNES (Nonlinear Solvers): 42*7f296bb3SBarry Smith``` 43*7f296bb3SBarry Smith 44*7f296bb3SBarry Smith```{rubric} SLES (Linear Solvers): 45*7f296bb3SBarry Smith``` 46*7f296bb3SBarry Smith 47*7f296bb3SBarry Smith```{rubric} KSP (Krylov Subspace Methods): 48*7f296bb3SBarry Smith``` 49*7f296bb3SBarry Smith 50*7f296bb3SBarry Smith- All KSP methods with left preconditioning use the preconditioned 51*7f296bb3SBarry Smith residual by default (before CG, CR used the unpreconditioned 52*7f296bb3SBarry Smith residual). Use -ksp_norm_type 53*7f296bb3SBarry Smith \<none,preconditioned,unpreconditioned,natural> to change it, see 54*7f296bb3SBarry Smith next bullet. 55*7f296bb3SBarry Smith- `KSPSetInitialGuessNonzero(), KSPSetComputeSingularValues(), KSPSetComputeEigenvalues(),` 56*7f296bb3SBarry Smith all now take a PetscTruth as the second argument allowing them to 57*7f296bb3SBarry Smith each be toggled on or off 58*7f296bb3SBarry Smith- `KSPSetAvoidNorms(), KSPSetUseUnpreconditionedResidual(), KSPSetComputeResidual()` 59*7f296bb3SBarry Smith have all been merged into `KSPSetNormType()` 60*7f296bb3SBarry Smith 61*7f296bb3SBarry Smith```{rubric} PC (Preconditioners): 62*7f296bb3SBarry Smith``` 63*7f296bb3SBarry Smith 64*7f296bb3SBarry Smith```{rubric} MAT (Matrices): 65*7f296bb3SBarry Smith``` 66*7f296bb3SBarry Smith 67*7f296bb3SBarry Smith- Added additional local relaxation argument to `MatRelax()` 68*7f296bb3SBarry Smith 69*7f296bb3SBarry Smith- Added additional argument to `MatAXPY()` 70*7f296bb3SBarry Smith 71*7f296bb3SBarry Smith - MatSNESMFFormJacobian() has been renamed to 72*7f296bb3SBarry Smith MatSNESMFComputeJacobian() 73*7f296bb3SBarry Smith - added another field to MatLUInfo and MatILUInfo 74*7f296bb3SBarry Smith - MatCreate() now requires a call to MatSetType() or 75*7f296bb3SBarry Smith MatSetFromOptions() 76*7f296bb3SBarry Smith - The MatType is assigned in either of these calls. 77*7f296bb3SBarry Smith 78*7f296bb3SBarry Smith```{rubric} DA (Distributed Arrays): 79*7f296bb3SBarry Smith``` 80*7f296bb3SBarry Smith 81*7f296bb3SBarry SmithIn order to set the grid sizes with -da_grid_x, -da_grid_y, 82*7f296bb3SBarry Smith-da_grid_z one must pass in negative values for the M, N, and P 83*7f296bb3SBarry Smitharguments in the call to DACreateXX(). If values are not set from the 84*7f296bb3SBarry Smithoptions database then the absolute value of the M,N,P is used as the 85*7f296bb3SBarry Smithdefault. 86*7f296bb3SBarry Smith 87*7f296bb3SBarry Smith- Changed DAGetColoring() to two routines, DAGetColoring() and 88*7f296bb3SBarry Smith DAGetMatrix() 89*7f296bb3SBarry Smith 90*7f296bb3SBarry Smith```{rubric} VEC (Vectors): 91*7f296bb3SBarry Smith``` 92*7f296bb3SBarry Smith 93*7f296bb3SBarry Smith- Changed VecCreate() to no longer take in size arguments. Use 94*7f296bb3SBarry Smith VecCreate() & VecSetSizes() 95*7f296bb3SBarry Smith 96*7f296bb3SBarry Smith```{rubric} IS (Index Sets): 97*7f296bb3SBarry Smith``` 98*7f296bb3SBarry Smith 99*7f296bb3SBarry Smith- Changed IS_COLORING_LOCAL to IS_COLORING_GHOSTED and 100*7f296bb3SBarry Smith IS_COLORING_GLOBAL to IS_COLORING_LOCAL 101*7f296bb3SBarry Smith 102*7f296bb3SBarry Smith```{rubric} General: 103*7f296bb3SBarry Smith``` 104*7f296bb3SBarry Smith 105*7f296bb3SBarry Smith`PetscOptionsGetDouble()` is now `PetscOptionsGetReal()` 106*7f296bb3SBarry Smith.. rubric:: Draw (Graphics): 107*7f296bb3SBarry Smith 108*7f296bb3SBarry Smith```{rubric} Viewers: 109*7f296bb3SBarry Smith``` 110*7f296bb3SBarry Smith 111*7f296bb3SBarry Smith```{rubric} System: 112*7f296bb3SBarry Smith``` 113*7f296bb3SBarry Smith 114*7f296bb3SBarry Smith```{rubric} Error Handling: 115*7f296bb3SBarry Smith``` 116*7f296bb3SBarry Smith 117*7f296bb3SBarry Smith```{rubric} Event Logging: 118*7f296bb3SBarry Smith``` 119*7f296bb3SBarry Smith 120*7f296bb3SBarry SmithLogging functionality is completely reworked. Now one can register 121*7f296bb3SBarry Smithnew stages, classes and events. Every event is associated with a 122*7f296bb3SBarry Smithclass. So, users would have to create a class for all userevents. 123*7f296bb3SBarry Smith 124*7f296bb3SBarry Smith- `PetscLogStageRegister()` now takes an int * as the first 125*7f296bb3SBarry Smith argument 126*7f296bb3SBarry Smith- `PetscLogEventRegister()` takes an int as the third argument, 127*7f296bb3SBarry Smith not a char \* 128*7f296bb3SBarry Smith 129*7f296bb3SBarry Smith```{rubric} Fortran Interface: 130*7f296bb3SBarry Smith``` 131*7f296bb3SBarry Smith 132*7f296bb3SBarry Smith## Features 133*7f296bb3SBarry Smith 134*7f296bb3SBarry Smith(See [Changes] above) 135*7f296bb3SBarry Smith 136*7f296bb3SBarry Smith```{rubric} General: 137*7f296bb3SBarry Smith``` 138*7f296bb3SBarry Smith 139*7f296bb3SBarry Smith- configure can now be used to build PETSc on some architectures. 140*7f296bb3SBarry Smith Currently tested on Linux, IRIX, Solaris machines.We'd like your 141*7f296bb3SBarry Smith feedback on this feature; please send `configure_petsc.log` and 142*7f296bb3SBarry Smith `config.log`when reporting problems with configure. 143*7f296bb3SBarry Smith- Added support for ESI vectors and matrices. Use BOPT=g_c++ or 144*7f296bb3SBarry Smith O_c++Better 145*7f296bb3SBarry Smith- support for automatic differentiation with ADIC 146*7f296bb3SBarry Smith 147*7f296bb3SBarry Smith```{rubric} AO (Application Orderings): 148*7f296bb3SBarry Smith``` 149*7f296bb3SBarry Smith 150*7f296bb3SBarry Smith```{rubric} TS (Timestepping Solvers): 151*7f296bb3SBarry Smith``` 152*7f296bb3SBarry Smith 153*7f296bb3SBarry Smith```{rubric} SNES (Nonlinear Solvers): 154*7f296bb3SBarry Smith``` 155*7f296bb3SBarry Smith 156*7f296bb3SBarry Smith```{rubric} SLES (Linear Solvers): 157*7f296bb3SBarry Smith``` 158*7f296bb3SBarry Smith 159*7f296bb3SBarry Smith```{rubric} KSP (Krylov Subspace Methods): 160*7f296bb3SBarry Smith``` 161*7f296bb3SBarry Smith 162*7f296bb3SBarry Smith```{rubric} PC (Preconditioners): 163*7f296bb3SBarry Smith``` 164*7f296bb3SBarry Smith 165*7f296bb3SBarry Smith- added -pc_lu_zeropivot and -pc_ilu_zeropivot (still need function 166*7f296bb3SBarry Smith interfaces) 167*7f296bb3SBarry Smith 168*7f296bb3SBarry Smith```{rubric} MAT (Matrices): 169*7f296bb3SBarry Smith``` 170*7f296bb3SBarry Smith 171*7f296bb3SBarry Smith```{rubric} DA (Distributed Arrays): 172*7f296bb3SBarry Smith``` 173*7f296bb3SBarry Smith 174*7f296bb3SBarry SmithAdded DAGetArray() and DARestoreArray() that give workspace 175*7f296bb3SBarry Smithappropriate for a local function. These may be used in routines that 176*7f296bb3SBarry Smithdiverentiated with ADIC:-) 177*7f296bb3SBarry Smith.. rubric:: VEC (Vectors): 178*7f296bb3SBarry Smith 179*7f296bb3SBarry Smith- Added the utility routines which do special cases of vecscatters 180*7f296bb3SBarry Smith VecConvertMPIToSeqAll(),VecConvertMPIToMPIZero() 181*7f296bb3SBarry Smith 182*7f296bb3SBarry Smith```{rubric} IS (Index Sets): 183*7f296bb3SBarry Smith``` 184*7f296bb3SBarry Smith 185*7f296bb3SBarry Smith```{rubric} PF: 186*7f296bb3SBarry Smith``` 187*7f296bb3SBarry Smith 188*7f296bb3SBarry Smith```{rubric} Draw (Graphics): 189*7f296bb3SBarry Smith``` 190*7f296bb3SBarry Smith 191*7f296bb3SBarry Smith- added DrawEllipse() 192*7f296bb3SBarry Smith 193*7f296bb3SBarry Smith```{rubric} Viewers: 194*7f296bb3SBarry Smith``` 195*7f296bb3SBarry Smith 196*7f296bb3SBarry Smith- added PetscViewerASCIISetMode() 197*7f296bb3SBarry Smith 198*7f296bb3SBarry Smith```{rubric} System: 199*7f296bb3SBarry Smith``` 200*7f296bb3SBarry Smith 201*7f296bb3SBarry Smith```{rubric} Error Handling: 202*7f296bb3SBarry Smith``` 203*7f296bb3SBarry Smith 204*7f296bb3SBarry Smith```{rubric} Event Logging: 205*7f296bb3SBarry Smith``` 206*7f296bb3SBarry Smith 207*7f296bb3SBarry Smith```{rubric} Fortran Interface: 208*7f296bb3SBarry Smith``` 209