# Docs: Changes: 2.1.1

CHANGES in PETSc 2.1.1 (see new features)

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}/bmake/common/base

The windows build of PETSc with win32_gnu, win32_intel and win32_mpich now default to using MPICH-1.2.3

The complex version of the PETSc libraries can only be installed with C++ compilers that provide the std::complex implementation.

AO (Application Orderings):

TS (Timestepping Solvers):

DMMG

Default Krylov method on outer linear solver is now FGMRES instead of GMRES. Also default multigrid type is now full instead of multiplicative

SNES (Nonlinear Solvers):

SLES (Linear Solvers):

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 <none,preconditioned,unpreconditioned,natural> 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()

PC (Preconditioners):

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.

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()

VEC (Vectors):

Changed VecCreate() to no longer take in size arguments. Use VecCreate() & VecSetSizes()
IS (Index Sets):

Changed IS_COLORING_LOCAL to IS_COLORING_GHOSTED and IS_COLORING_GLOBAL to IS_COLORING_LOCAL

General:

PetscOptionsGetDouble() is now PetscOptionsGetReal()

Draw (Graphics):

Viewers:

System:

Error Handling:

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 *

Fortran Interface:

New Features in PETSc 2.1.1 (see changes above)

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

AO (Application Orderings):

TS (Timestepping Solvers):

SNES (Nonlinear Solvers):

SLES (Linear Solvers):

KSP (Krylov Subspace Methods):

PC (Preconditioners):

added -pc_lu_zeropivot and -pc_ilu_zeropivot (still need function interfaces)

MAT (Matrices):

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:-)

VEC (Vectors):

Added the utility routines which do special cases of vecscatters VecConvertMPIToSeqAll(),VecConvertMPIToMPIZero()

IS (Index Sets):

PF:

Draw (Graphics):

added DrawEllipse()

Viewers:

added PetscViewerASCIISetMode()

System:

Error Handling:

Event Logging:

Fortran Interface: