petsc-3.7.7 2017-09-25
   
    Documentation: Changes: 2.2.1
    
    
    
      
      General:
      
        - 
          Introduced 4 new PETSc data types: PetscInt, PetscErrorCode,
          PetscMPIInt and PetscBLASInt. For 99% of users these are just int or
          integer*4 and you do not need to change your code.
        
- 
          For users with more than roughly 2 billion unknowns you can run
          configure with --with-64-bit-ints and then PetscInt will represent 64
          bit integers, long long int in C and integer*8 in Fortran. But the
          the other 3 types remain 32 bit (i.e. int in C and integer*4 in
          Fortran). Now you can index into vectors and matrices with virtually
          unlimited sizes.
        
Vec:
      
        - VecSetStashInitialSize() -> VecStashSetInitialSize()
- 
          VecConvertMPIToAll() and VecConvertMPIToZero() have been replaced
          with VecScatterCreateToAll() and VecScatterCreateToZero()
        
IS:
      
        - ISSum() now has a throughput argument instead of one in and one output.
Mat:
      
        - MatSetStashInitialSize() -> MatStashSetInitialSize()
- added MatFactorInfoInitialize()
- added MatStashGetInfo()
- added MatGetVecs()
- 
          added MatIsSymmetric(), MatIsTranspose() now take a tolerance flag
          for equality (use 0.0 for identical)
        
- added MatMPIAIJSetPreallocationCSR() and MatMPIBAIJSetPreallocationCSR()
PC:
      
        - ICC now uses Manteuffel shift by default
- 
          If matrix is symmetric, PC defaults to ICC when possible, if you told
          with MatSetOption(mat,MAT_SYMMETRIC)
        
- PCSetVector() is gone (no longer needed)
- PCNullSpaceAttach() is gone, use KSPSetNullSpace()
- MatGetSubmatrices() now preserves symmetric flag of original matrix
- 
          hypre BoomerAMG (-pc_type hypre -pc_hypre_type boomeramg) now uses
          one 1 cycle of multigrid as preconditioner (Previously it used either
          a decrease in residual of 10^-7 or a maximum of 20 iterations
        
KSP:
      
        - 
          Note that a relative residual tolerance now means that ||r_k|| <
          tol*||b||
-  Removed KSPSetRhs() and KSPSetSolution(), pass
        
- Added KSPSetNullSpace(), KSPGetNullSpace()
DA:
      
        - Added DAGetGhostedCoordinates() and DAGetCoordinateDA() (see src/dm/da/examples/tutorials/ex3.c)
- Added DACoor2d and DACoor3d (see src/dm/da/examples/tutorials/ex3.c)
- 
          DAGetInterpolation() now provides the correct interpolation for
          nonuniform grids using the coordinate information provided with
          DASetCoordinates(). (see src/dm/da/examples/tutorials/ex3.c)
        
config/configure.py:
      
        - --with-c/f-blas-lapack -> --download-c/f-blas-lapack=yes
- --with-c/f-blas-lapack-if-needed -> --download-c/f-blas-lapack=ifneeded
- added --download-mpich=yes,no,ifneeded
- added --download-mpich-device=
- added --download-mpich-machines=[machines]
- added configure including download support for hypre, parmetis
- added configure support (without download) to Mumps, UMF, Superlu,SuperLU_dist,DSCPACK
- Made configure much more robust
SNES:
      
        - Added -snes_converged_reason
- Added SNESSetRhs(snes,rhs) to allow for solving F(x) = rhs
TS:
      DMMG:
      
      SYS:
      Fortran:
      ExternalPackages: