Changes: 2.3.1#
General:
- -log_info is now just -info; PetscLogInfo…() is now PetscInfo…() 
- Added TOPS solver components. [requires CCA tools like babel] 
- Added supported for IBM BGL with optimzed fortran kernels 
- bin/petscarch is removed. Use can give any name to PETSC_ARCH. [if not - configure picks a default name] 
- PetscMap is no longer a public PETSc object 
Vec:
- Changed prototypes for VecMDotBegin(), VecMDotEnd(), VecMTDotBegin(), VecMTDotEnd() to confirm with PETSc prototype style 
- ISColoringCreate() takes another argument 
Mat:
- MatScaleSystem() and MatUnscaleSystem() now take arguments b,x instead of x,b 
- Added MatSeqAIJSetPreallocationCSR(), MatGetSubMatrixRaw() 
- Added MatSolveTranspose() for superlu 
- Added support for matrix types MATCSRPERM, MATCRL - for vector based machines. 
- Added MatMatMult for seqdense 
- Added MatRealPart, ImaginaryPart for AIJ, BAIJ, SBAIJ matrices 
- Added MatGetRowUpperTriangular() to mpisbaij matrix 
PC:
- PCPrometheusSetCoordinates() changed to PCSetCoordinates() 
- Moved src/ksp/pc/pcimpl.h to include/petsc/private/pcimpl.h 
- PCPreSolve() and PCPostSolve() now consistently take arguments b,x before sometimes they took x,b 
- PCXXXSetYYY() and -pc_xxx_yyyy are now changed to PCFactorSetYYY() and -pc_factor_yyyy for XXX LU, ILU, Cholesky, and ICC 
KSP:
- -ksp_view, -ksp_monitor now take an optional filename argument 
- Added PetscLLAddPerm() to symbolic LU factorization 
config/configure.py:
- Changed –with-64-bit-ints to –with-64-bit-indices 
- config/configure.py now supports the arguments –with-precision=longdouble and –with-precision=int, these currently have limited functionality and certain things like binary IO does not work. 
- Option –LIBS=<extra libs> for some broken compilers that require that require extra system libraries to be linked with 
- Changed –with-fortran-kernels=<0,1> option to –with-fortran-kernels=<none,generic,bgl> 
- Support –with-large-file-io=<bool> which indicates using files larger than 2GB 
- –with-f90-header, –with-f90-source options merged into a single option - for eg: –with-f90-interface=intel8 
- Added –with-is-color-value-type=<char,short>: char gives max of 256 colors, short gives max of 65536 colors 
- Configure always tries to build libraries with PIC [or equivalent flag] To disable this, use: –with-pic=0 
- Added –with-c-language-support for compiling PETSc with ‘c’ linkage - but with a c++ compiler. 
- —download-mpich option now defaults to pm=gforker. To use mpd - use the additional option –download-mpich-pm=mpd 
- –with-timer option is added [if the user knows MPI_Wtime() is accurate/low-overhead on a machine - then use: –with-timer=mpi] 
SNES:
- -snes-view, -snes_monitor now take an optional filename argument 
TS:
- -ts_view, -ts_monitor now take an optional filename argument 
DA:
DMMG:
- Arguments to DMMGSetKSP() changed. Now the callback which forms the linear system matrix can optionally fill also an alternate matrix for the preconditioner. 
SYS:
- PetscViewerFileType changed to PetscFileMode 
- PetscViewerSetFileType() changed to PetscViewerFileSetMode() 
Fortran:
- remove the special libpetscfortran.a [fortran interface & c interface now go into the same library] 
- With some f90 compilers - PETSc datatypes [like PetscScalar,PetscInt] will use f90 KIND declaration - so if this code is in fixed form - there could be errors with lines exceeding 72 char limit 
ExternalPackages:
- PLAPACK support added 
- BLOPEX support added 
- Updated Pvode interface to the newer Sundials package [configure option –download-sundials=1 
- Added –download-mpe=1 
- fblaslapack now has complete blas - as required by some external packages