=============== Changes: 2.0.22 =============== .. rubric:: 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()`` and ``DAGetGlobalIndices()`` has been changed from ``integer`` to ``PetscOffset``. 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.html`` and ``docs/manualpages``. - The location of the mpiuni include files (used in the base.site file when not compiling with an MPI) has moved from ``src/mpiuni`` to ``src/sys/src/mpiuni`` - Added the option ``-log_summary_exclude `` to limit the information printed in the summary table - Added the option ``-log_info_exclude `` - 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. .. rubric:: AO (Application Orderings): .. rubric:: TS (Timestepping Solvers): - The calling sequence of ``TSSetType()`` has changed; see the manual page. - ``TSType`` is now a string, rather than enum type .. rubric:: SNES (Nonlinear Solvers): - The calling sequence of ``SNESSetType()`` has changed; see the manual page. - ``SNESType`` is now a string, rather than enum type .. rubric:: SLES (Linear Solvers): - See PC and KSP .. rubric:: KSP (Krylov Subspace Methods): - The calling sequence of ``KSPSetType()`` has changed; see the manual page. - ``KSPType`` is now a string, rather than enum type. .. rubric:: PC (Preconditioners): - Added two new PC classes, ``PCSLES`` and ``PCCOMPOSITE`` that allow use of any ``SLES`` object as a preconditioner and enable combining several preconditioners. - The calling sequence of ``PCSetType()`` has changed; see the manual page. - ``PCType`` is now a string, rather than enum type. .. rubric:: 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()`` and ``MatILUFactorSymbolic()`` based on a suggestion by David Hysom of ODU. - The third argument for the Fortran version of the routines ``MatGetArray()/MatRestoreArray()`` has been changed from ``integer`` to ``PetscOffset``. .. rubric:: DA (Distributed Arrays): - Changed ``DAGetDistributedVector()`` and ``DAGetLocalVector()`` to ``DACreateGlobalVector()`` and ``DACreateLocalVector()``. You should destroy these vectors with a usual call to ``VecDestroy()``. - The third argument for the Fortran version of the routine ``DAGetGlobalIndices()`` has been changed from ``integer`` to ``PetscOffset``. .. rubric:: 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_ENTRIES`` to ``VEC_IGNORE_OFF_PROC_ENTRIES`` - The third argument for the Fortran versions of the routines ``VecGetArray()/VecRestoreArray(),`` has been changed from ``integer`` to ``PetscOffset``. 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. .. rubric:: IS (Index Sets): - The third argument for the Fortran versions of the routines ``ISGetIndices()/ISRestoreIndices()`` has been changed from ``integer`` to ``PetscOffset``. .. rubric:: Draw (Graphics): .. rubric:: Viewers: .. rubric:: System: .. rubric:: Error Handling: .. rubric:: Event Logging: .. rubric:: Fortran Interface: - ``PETSC_NULL`` has been replaced with ``PETSC_NULL_INTEGER``, ``PETSC_NULL_SCALAR``, ``PETSC_NULL_DOUBLE`` or ``PETSC_NULL_CHARACTER`` depending 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) = vec`` you have to declare those arrays to be of type ``PetscFortranAddr`` instead of as integer. Note that ``PetscFortranAddr`` is 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()`` and ``PetscFortranObjectToCObject()`` to translate the objects between languages. - Changed Fortran object argument from type int to type PetscFortranAddr in the routines ``PetscCObjectToFortranObject()`` and ``PetscFortranObjectToCObject().`` - Added the routine ``PetscInitializeFortran()`` to assist in mixed-language use of PETSc. See the manual page for details.