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