# Changes: 2.1.1 ## Changes (See [Features] below) ```{rubric} General: ``` - Scalar -> PetscScalar (and added PetscReal) - The make files are reorganized. bmake/\$\{PETSC_ARCH}/base_variables -> variables, and base.site -> packages. base ->rules. - If using makefiles from earlier version of PETSc, change - `include ${PETSC_DIR}/bmake/${PETSC_ARCH}/base` to - `include ${PETSC_DIR}/conf/base` - The Microsoft Windows build of PETSc with win32_gnu, win32_intel and win32_mpich now default to using MPICH-1.2.3The complex version of the PETSc libraries can only be installed with C++ compilers that provide the std::complex implementation. ```{rubric} AO (Application Orderings): ``` ```{rubric} TS (Timestepping Solvers): ``` ```{rubric} DMMG ``` - Default Krylov method on outer linear solver is now FGMRES instead of GMRES. Also default multigrid type is now full instead of multiplicative ```{rubric} SNES (Nonlinear Solvers): ``` ```{rubric} SLES (Linear Solvers): ``` ```{rubric} KSP (Krylov Subspace Methods): ``` - All KSP methods with left preconditioning use the preconditioned residual by default (before CG, CR used the unpreconditioned residual). Use -ksp_norm_type \ to change it, see next bullet. - `KSPSetInitialGuessNonzero(), KSPSetComputeSingularValues(), KSPSetComputeEigenvalues(),` all now take a PetscTruth as the second argument allowing them to each be toggled on or off - `KSPSetAvoidNorms(), KSPSetUseUnpreconditionedResidual(), KSPSetComputeResidual()` have all been merged into `KSPSetNormType()` ```{rubric} PC (Preconditioners): ``` ```{rubric} MAT (Matrices): ``` - Added additional local relaxation argument to `MatRelax()` - Added additional argument to `MatAXPY()` - MatSNESMFFormJacobian() has been renamed to MatSNESMFComputeJacobian() - added another field to MatLUInfo and MatILUInfo - MatCreate() now requires a call to MatSetType() or MatSetFromOptions() - The MatType is assigned in either of these calls. ```{rubric} DA (Distributed Arrays): ``` In order to set the grid sizes with -da_grid_x, -da_grid_y, -da_grid_z one must pass in negative values for the M, N, and P arguments in the call to DACreateXX(). If values are not set from the options database then the absolute value of the M,N,P is used as the default. - Changed DAGetColoring() to two routines, DAGetColoring() and DAGetMatrix() ```{rubric} VEC (Vectors): ``` - Changed VecCreate() to no longer take in size arguments. Use VecCreate() & VecSetSizes() ```{rubric} IS (Index Sets): ``` - Changed IS_COLORING_LOCAL to IS_COLORING_GHOSTED and IS_COLORING_GLOBAL to IS_COLORING_LOCAL ```{rubric} General: ``` `PetscOptionsGetDouble()` is now `PetscOptionsGetReal()` .. rubric:: Draw (Graphics): ```{rubric} Viewers: ``` ```{rubric} System: ``` ```{rubric} Error Handling: ``` ```{rubric} Event Logging: ``` Logging functionality is completely reworked. Now one can register new stages, classes and events. Every event is associated with a class. So, users would have to create a class for all userevents. - `PetscLogStageRegister()` now takes an int * as the first argument - `PetscLogEventRegister()` takes an int as the third argument, not a char \* ```{rubric} Fortran Interface: ``` ## Features (See [Changes] above) ```{rubric} General: ``` - configure can now be used to build PETSc on some architectures. Currently tested on Linux, IRIX, Solaris machines.We'd like your feedback on this feature; please send `configure_petsc.log` and `config.log`when reporting problems with configure. - Added support for ESI vectors and matrices. Use BOPT=g_c++ or O_c++Better - support for automatic differentiation with ADIC ```{rubric} AO (Application Orderings): ``` ```{rubric} TS (Timestepping Solvers): ``` ```{rubric} SNES (Nonlinear Solvers): ``` ```{rubric} SLES (Linear Solvers): ``` ```{rubric} KSP (Krylov Subspace Methods): ``` ```{rubric} PC (Preconditioners): ``` - added -pc_lu_zeropivot and -pc_ilu_zeropivot (still need function interfaces) ```{rubric} MAT (Matrices): ``` ```{rubric} DA (Distributed Arrays): ``` Added DAGetArray() and DARestoreArray() that give workspace appropriate for a local function. These may be used in routines that diverentiated with ADIC:-) .. rubric:: VEC (Vectors): - Added the utility routines which do special cases of vecscatters VecConvertMPIToSeqAll(),VecConvertMPIToMPIZero() ```{rubric} IS (Index Sets): ``` ```{rubric} PF: ``` ```{rubric} Draw (Graphics): ``` - added DrawEllipse() ```{rubric} Viewers: ``` - added PetscViewerASCIISetMode() ```{rubric} System: ``` ```{rubric} Error Handling: ``` ```{rubric} Event Logging: ``` ```{rubric} Fortran Interface: ```