petsc-3.7.7 2017-09-25
   
    Documentation: Changes: 2.0.22
    
    
    
      
        NEW FEATURES and CHANGES in PETSc 2.0.22
       
      General:
      
        - 
          The Fortran90-specific routines such as VecGetArrayF90()now work with the IBM Fortran compiler, the SGI Fortran 90 compiler,
          and the Cray T3E Fortran compiler.
- 
          The third argument for the Fortran versions of the routines
          VecGetArray()/VecRestoreArray(),ISGetIndices()/ISRestoreIndices(),
            MatGetArray()/MatRestoreArray()andDAGetGlobalIndices()has been changed fromintegertoPetscOffset.  See
          src/snes/examples/tutorials/ex5f.F for example usage.
- 
          Changed the location of the manual pages from docs/www/www.html and
          docs/www to docs/manualpages/manualpages.htmlanddocs/manualpages.
- 
          The location of the mpiuni include files (used in the base.site file
          when not compiling with an MPI) has moved from
          src/mpiunitosrc/sys/src/mpiuni
- 
          Added the option -log_summary_exclude <vec,mat,sles,snes>to
          limit the information printed in the summary table
- Added the option -log_info_exclude <vec,mat,sles,snes>
- 
          Changed the calling sequences of PetscGetTime(),
            PetscGetCPUTime(), PetscGetFlops()to return error codes
          like all other PETSc functions.
- 
          Changed the internal structure of the PETSc objects. This will not
          effect most users but makes PETSc more extensible for the
          future.
        
- 
          Removed the PETSc object child support and replaced it with
          
            - PetscObjectCompose(PetscObject,char *name,PetscObject);
- PetscObjectQuery(PetscObject,char *name,PetscObject *);
- PetscObjectComposeFunction(PetscObject,char *name, void *);
- PetscObjectQueryFunction(PetscObject,char *name,void **);
 These allow the user to attach objects and functions to any PETSc object.
- 
          Added a feeble example that demonstrates how to manage partitioning
          a grid in parallel in src/mat/examples/tutorials/ex2.c
- 
          The build command 'make all' in ${PETSC_DIR} will build the PETSc
          libraries, including the fortran interface.
        
AO (Application Orderings):
      TS (Timestepping Solvers):
      
        - The calling sequence of TSSetType()has changed; see the manual page.
- TSTypeis now a string, rather than enum type
SNES (Nonlinear Solvers):
      
        - The calling sequence of SNESSetType()has changed; see the manual page.
- SNESTypeis now a string, rather than enum type
SLES (Linear Solvers):
      
      KSP (Krylov Subspace Methods):
      
        - The calling sequence of KSPSetType()has changed; see the manual page.
- KSPTypeis now a string, rather than enum type.
PC (Preconditioners):
      
        - 
          Added two new PC classes, PCSLESandPCCOMPOSITEthat allow use of anySLESobject as a preconditioner and enable combining
          several preconditioners.
- The calling sequence of PCSetType()has changed; see the manual page.
- PCTypeis now a string, rather than enum type.
MAT (Matrices):
      
        - 
          Added support for partitioning using the ParMETIS parallel
          partitioning package, see the manual page for
          PartitioningCreate()
- Added MatGetColumnVector()
- Added argument column size to MatGetSubMatrix()
- 
          Changed the memory allocation algorithm in
          MatLUFactorSymbolic()andMatILUFactorSymbolic()based on a suggestion by David
          Hysom of ODU.
- 
          The third argument for the Fortran version of the routines
          MatGetArray()/MatRestoreArray()has been changed fromintegertoPetscOffset.
DA (Distributed Arrays):
      
        - 
          Changed DAGetDistributedVector()andDAGetLocalVector()toDACreateGlobalVector()andDACreateLocalVector(). You should destroy these
          vectors with a usual call toVecDestroy().
- 
          The third argument for the Fortran version of the routine
          DAGetGlobalIndices()has been changed fromintegertoPetscOffset.
VEC (Vectors):
      
        - 
          Added VecSetBlockSize(), VecSetValuesBlocked(),
            VecSetValuesBlockedLocal(),
            VecSetLocalToGlobalMappingBlocked()
- 
          Added VecCreatedShared(),which creates
          a parallel vector in shared memory on the SGI machines
- 
          Changed
          VEC_IGNORE_OFF_PROCESSOR_ENTRIEStoVEC_IGNORE_OFF_PROC_ENTRIES
- 
          The third argument for the Fortran versions of the routines
          VecGetArray()/VecRestoreArray(),has been changed fromintegertoPetscOffset. See
          src/snes/examples/tutorials/ex5f.F for example usage.
- 
          VecGetArray(), VecRestoreArray()now work from Fortran on
          all machines, finally after 3 long years!
- 
          Changed the calling sequence of
          VecCreate(), now takes both local and global size,
          see the manual page.
IS (Index Sets):
      
        - 
          The third argument for the Fortran versions of the routines
          ISGetIndices()/ISRestoreIndices()has been changed fromintegertoPetscOffset.
Draw (Graphics):
      Viewers:
      System:
      Error Handling:
      Event Logging:
      Fortran Interface:
      
        - 
          PETSC_NULLhas been replaced withPETSC_NULL_INTEGER,PETSC_NULL_SCALAR,PETSC_NULL_DOUBLEorPETSC_NULL_CHARACTERdepending on the context for
          usage. If the function expects an integer, a scalar (double or
          complex depending if you compile with BOPT=*_complex), a double
          precision array, or a string.
- 
          The Fortran include files are now located in the
          directory "include/finclude/*.", rather than
          "include/FINCLUDE/*.h". The include files that used to be
          in "include/finclude/*.h" (not recommended) are now in
          "include/foldinclude/*.h"
        
- 
          If you have stored PETSc objects in Fortran integer
          arrays, such as user(3) = vecyou have
          to declare those arrays to be of typePetscFortranAddrinstead of as integer. Note thatPetscFortranAddris simply integer on 32 bit
          machines and integer*8 on 64 bit machines.
- 
          The Fortran90-specific routines such as
          VecGetArrayF90()now work with the IBM Fortran
          compiler, the SGI Fortran 90 compiler, and the Cray T3E Fortran
          compiler.
- 
          PETSc objects can now be passed between C and Fortran directly. You do
          not have to use the commands
          PetscCObjectToFortranObject()andPetscFortranObjectToCObject()to translate the objects
          between languages.
- 
          Changed Fortran object argument from type int to type PetscFortranAddr
          in the routines PetscCObjectToFortranObject()andPetscFortranObjectToCObject().
- 
          Added the routine PetscInitializeFortran()to assist
          in mixed-language use of PETSc. See the manual page for details.