Changes: 2.1.1#

Changes#

(See Features below)

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.

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() .. rubric:: 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.

Fortran Interface:

Features#

(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.logwhen 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:-) .. rubric:: 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: