PETSc
    
    
    
    
    
    
    
      
      General:
      
        - 
          The equivalent of building BOPT=g, BOPT=O versions for
          PETSC_ARCH=linux-gnu is now: config/configure.py [options]
          -PETSC_ARCH=linux-gnu config/configure.py [options]
          --with-debugging=0 -PETSC_ARCH=linux-gnu-opt
        
- 
          Python bindings added to PETSc.  To use, configure with:
          --with-python=1 ---with-shared=1 To build, use: 'make python' after
          building PETSc libraries.  Example in
          src/snes/examples/tutorials/ex1.py
        
- Options database keys -trmalloc[_xxx] are changed to -malloc[_xxx]
- -get_resident_set_size and -trinfo are changed to -memory_info
- PetscTrValid() -> PetscMallocValidate(), PetscTrDebug() -> PetscMallocDebug()
- -trdebug -> -malloc_debug
- 
          PetscGetResidentSetSize() -> PetscMemoryGetCurrentUsage(), added
          PetscMemoryGetMaximumUsage() and PetscMemorySetGetMaximumUsage()
        
- PetscTrSpace() -> PetscMallocGetCurrentUsage() and PetscMallocGetMaximumUsage()
- added PetscOptionsEnum() and PetscOptionsGetEnum()
- 
          added PetscBag object for managing user created structs including
          initializing them and serializing them.
        
- 
          removed PetscSetCommWorld(). Now you can directly assign to
          PETSC_COMM_WORLD before PetscInitialize().
        
Vec:
      
        - Faster generation of VecScatter for many processes when indices are mostly sorted
- 
          Changed BLAS-type interfaces to PETSc-style:
          
            - VecShift
- VecScale
- VecSet
- VecSetRandom
- VecAXPY
- VecAXPBY
- VecAYPX
- VecMAXPY
- VecWAXPY
 
- 
          Changed order of arguments in pointwise routines:
          
            - VecPointwiseMult
- VecPointwiseMax
- VecPointwiseMin
- VecPointwiseMaxAbs
- VecPointwiseDivide
 
Mat:
      
        - Changed MatConvert to require a reuse parameter to denote inplace converstion
- Added Cholesky and ICC support to SeqBAIJ
- Added the argument MatFactorInfo to MatLUFactorNumeric() and MatCholeskyFactorNumeric()
- Faster MatSetValues()
- Faster parallel-matrix vector products
- Changed MatCreate() to take only a communicator
- Added MatSetSize() to specify matrix sizes
- 
          Changed BLAS-type interfaces to PETSc-style:
          
            - MatAXPY
- MatAYPX
- MatScale
- MatShift
 
- Change MatZeroRows() and MatZeroRowsLocal() to use arrays, and added IS versions
PC:
      
        - Added PCILUReorderForNonzeroDiagonal() and PCLUReorderForNonzeroDiagonal()
- 
          Replace PCLUSetDamping(), PCILUSetDamping(), PCCholeskySetDamping()
          and PCICCSetDamping() by PCFactorSetShiftNonzero(). Change the option
          database keys -pc_lu_damping, -pc_ilu_damping, -pc_cholesky_damping
          and -pc_icc_damping to -pc_factor_shift_nonzero
        
- 
          Replace PCLUSetShift(), PCILUSetShift(), PCCholeskySetShift() and
          PCICCSetShift() by PCFactorSetShiftPd().  Change the option database
          keys -pc_lu_shift, -pc_ilu_shift, -pc_cholesky_shift and
          -pc_icc_shift to -pc_factor_shfit_positive_definite
        
- 
          PCMG: will automatically using the outer pmat operator to define the
          finest level operator if not user supplied
        
- 
          PCMG: added MGUseGalerkin(), -pc_mg_galerkin option to have coarser
          grid matrices computed from the finest grid matrix
        
- 
          PCMG: now does referencing counting on set vectors and
          restriction/interpolation matrices so user need not keep reference to
          free later
        
- 
          PCMG: if user does not provide restriction the interpolation is used
          and vis versa
        
- 
          PCMG: if user does not provide Vecs for each level, will
          automatically provide them
        
-  All routines that began with MG now begin with PCMG
- 
          Added PCShellSet/GetContext() and removed the context passed into
          PCSetApply() and PCSetApplyRichardson()
        
KSP:
      
        - 
          -ksp_cg_Hermitian and -ksp_cg_symmetric have been changed to
          -ksp_cg_type Hermitian or symmetric
        
- 
          Changed options for -ksp_gmres_cgs_refinement_type from never or
          ifneeded or always to REFINE_NEVER or REFINE_IFNEEDED or
          REFINE_ALWAYS
        
config/configure.py:
      SNES:
      
        - 
          Changed the name and calling sequence for SNESSetLineSearchCheck() to
          SNESLineSearchSetPostCheck() and added
          a SNESLineSearchSetPreCheck()
        
- 
          Changed the names of all SNESxxxxLineSearchyyyy() to
          SNESLineSearchxxxxyyyy() per PETSc naming standard.
        
- Now allow a constant vector to be specified in SNESSolve()
- Removed the Vec argument from SNESSetUp()
- 
          Corrected the order of function and context arguments in:
          
            - SNESGetFunction()
- SNESGetJacobian()
 
TS:
      DA:
      
        - 
          Added DAVecGet/RestoreArrayDOF() allowing indexing in the dimension
          of degrees of freedom at each point on the lattice.
        
- Faster DAGlobalToLocal() etc for dof > 1.
DMMG:
      
        - Consolidated DMMG functionality into the new header file "petscdmmg.h".
SYS:
      
        - 
          PetscSetCommWorld() removed. [one can directly do PETSC_COMM_WORLD
          = comm - before PetscInitialize()]
        
Fortran:
      ExternalPackages: