PETSc

Docs: Changes: 2.1.6


CHANGES in PETSc 2.1.6

General:

  • Added support for Cray X1
  • Added option '-suggest' to petscarch script. It suggests some possible PETSC_ARCHes to use
  • Installation instructions are rewritten

Vec:

  • VecNorm now caches NORM_2
  • Added VecStrideScale(), VecStrideGather(), VecStrideScatter()
  • Added VecBlockNorm(),VecBlockMax(),VecBlockMin(),VecBlockScale()

Mat:

  • The interface to external packages that support direct solvers has been reorganized.  This is implemented using new matrix types MATSEQAIJSPOOLES, MATMPIAIJSPOOLES, MATSEQSBAIJSPOOLES, MATMPISBAIJSPOOLES, MATSUPERLU, MATSUPERLU_DIST, MATUMFPACK,MATESSL, MATLUSOL, MATAIJMUMPS, MATSBAIJMUMPS, MATDSCPACK
  • Added new convenience matrix types which automatically switch between Seq and MPI implementations depending on the size of the communicator used during creation: MATAIJ, MATBAIJ, MATSBAIJ, MATMAIJ, MATDENSE, MATBDIAG
  • Changed default matrix-free compute h to use WP since it uses fewer reductions
  • Replace the datatypes MatLUInfo and MatILUInfo by MatFactorInfo
  • Added cholesky support to SeqAIJ
  • Added support for SUBSET_NONZERO_PATTERN with MatAXPY for AIJ & BAIJ
  • Added MatIsSymmetric() for AIJ
  • Added LDA support in SeqDense
  • The ncols argument made optional in MatGetRow()
  • Added MAT_KEEP_ZEROED_ROWS for MPIROWBS
  • Removed -aij_oneindex support from AIJ code
  • Added MatPartitioningSetPartitionWeights() - useable with ParMetis
  • MatGetSubMatrices() now works for ROWBS

PC:

  • Added PCICCSetDamping() or -pc_icc_damping
  • Added -pc_constant_null_space
  • Added PCILUSetShift() or -pc_ilu_shift to support damping using the identity
  • Added PCLUSetShift()  or -pc_lu_shift to support damping using the identity
  • Added PCICCSetShift() or -pc_icc_shift to support damping using the identity

KSP:

  • Added a new ksp_type LGMRES
  • Added KSPSetComputeSingularValues() support to ksp_type FGMRES

TS:

  • Added support for Runge-Kutta using ts_type TS_RUNGE_KUTTA

DMMG:

  • -dmmg_jacobian_period -1 => jacobian is frozen after initial construction

DA:

  • Allow user preallocation of jacobian using DASetGetMatrix()
  • DAGetMatrix now correctly returns the requested type.
  • -mat_type typename overloads the requested type for DAGetMatrix

SYS:

  • Added new viewer_type PETSC_VIEWER_NETCDF, PETSC_VIEWER_HDF4
  • PETSc error handlers now trap many more signals.

Fortran:

  • PetscPushErrorHandler() and PetscPopErrorHandler() now supported
  • PetscPrintf() and PetscSynchronizedPrintf() now work in fortran with a single string


External Packages:

  • Added TSPVodeGetParameters()
  • Parmetis-3 support added using MatPartitionSetNParts(), ISPartitionCount()
  • MUMPS support added, including complex (using mat_type  MATAIJMUMPS, MATSBAIJMUMPS)
  • Updated SuperLU_DIST interface to SuperLU_DIST_2.0
  • Added Spooles complex support
  • Added Spooles cholesky for SeqAIJ
  • ADIC: ad_GRAD_MAX is now set in the application and compiled into code when compiling appplication
  • The following variable names - in the buildsystem are changed - that correspond with SuperLU_DIST
      SUPERLUDIST_INCLUDE  ->  SUPERLU_DIST_INCLUDE
      SUPERLUDIST_LIB  ->  SUPERLU_DIST_LIB
      PETSCHAVE_SUPERLU  ->  PETSC_HAVE_SUPERLU