Docs: 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() 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 <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.
- TSType is now a string, rather than enum type
SNES (Nonlinear Solvers):
- The calling sequence of SNESSetType() has changed;
see the manual page.
- SNESType is 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.
- KSPType is now a string, rather than enum type.
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.
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.
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.
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.
IS (Index Sets):
- The third argument for the Fortran versions of the routines ISGetIndices()/ISRestoreIndices()
has been changed from integer to PetscOffset.
Draw (Graphics):
Viewers:
System:
Error Handling:
Event Logging:
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.