Docs: Changes: 3.1
CHANGES
in the PETSc 3.1
General:
- PetscOptionsHasName() and PetscOptionsName() now return
PETSC_TRUE if the options are set to any value, include false or 0. You
may need to change some of your PetscOptionsXXName() to
PetscOptionsXXTruth()
- Added configure option --with-single-library that causes
all PETSc code to be compiled into the single library libpetsc.XXX
- PetscMap changed to PetscLayout and PetscMapInitialize()
changed to PetscLayoutCreate() and it now allocates the space of
the object.
- In makefiles include ${PETSC_DIR}/conf/base is replaced
with two lines include ${PETSC_DIR}/conf/variables and include
${PETSC_DIR}/conf/rules
- BlockSolve95 interface is removed
- petsc.h and petscdef.h are replaced with petscsys.h and
petscsysdef.h; while petsc.h now includes ALL PETSc include files.
- win32fe [used for MS/Intel compiler builds on windows] now
defaults to 'noautodetect' mode. However the previous behavior can be
restored by using the option '--autodetect'. For eg: '--withcc=win32fe
cl --autodetect'. This works primarily with old VC6/VC7/Intel8 etc
compilers anyway.
Logging:
- PetscLogFlops(int) ->PetscLogFlops(PetscLogDouble).
[check fortran usage]
config/configure.py:
- All ./configure options that state known values, so that
./configure doesn't try to test for them. Often used with the
--with-batch
option now begin with --known-
IS:
Vec:
VecScatter:
Mat:
- MatGetSubMatrix
Now takes a parallel IS for the columns, the csize argument has been
dropped. The local part of this IS corresponds to the local columns of
the new submatrix.
- MatGetSubMatrixRaw
Removed, use MatGetSubMatrix
- Changed name of option MAT_KEEP_ZEROED_ROWS to
MAT_KEEP_NONZERO_PATTERN to more clearly indicate what it does.
- Added MAT_SHARE_NONZERO_PATTERN as option for
MatDuplicate() this allows several matrices to share the same data
structures for the nonzeros and thus save memory.
- The function provided to MatNullSpaceSetFunction() now
takes a MatNullSpace() as the first argument. Added Fortran interface
for this function as well.
- Removed MatPBRelax() merged its functionality into
MatRelax()
- Changed MatRelax() to MatSOR() to match MatSORType() and
PCSOR
- Removed requirement that rows be sorted in
MatCreateMPIAIJWithArrays() and MatMPIAIJSetPreallocationCSR().
- Changed MATOP_DIAGONAL_SHIFT to MATOP_DIAGONAL_SET to match
function name MatDiagonalSet().
- MATMPIROWBS i.e BlockSolve95 interface is now removed.
PC:
- PCShell All user-provided functions now have PC as first
argument instead of
the
application context. Users should obtain the context with
PCShellGetContext, similar to MatShell.
- Removed -pc_asm_in_place and PCASMSetUseInPlace() since the
option made no sense
- PCApplyRichardson() has an additional argument indicating
if the initial guess being passed in is nonzero. SOR will save some
work if it is zero.
- MatSetBlockSize() is no longer an error for BAIJ matrices,
but the argument must be the same as when the matrix was preallocated.
- PCFactorSetPivoting() renamed to PCFactorSetColumnPivot()
- Replaced PCFactorSetShiftNonzero(), PCFactorSetShiftPd()
and PCFactorSetShiftInBlocks()
with PCFactorSetShiftType() and PCFactorSetShiftAmount(). Replaced
-pc_factor_shift_nonzero, -pc_factor_shift_positive_definite and
-pc_factor_shift_in_blocks
with -pc_factor_shift_type and -pc_factor_shift_amount .
- Added PCREDISTRIBUTE for load balancing and removal of Dirichlet degrees of freedom.
KSP:
- Added KSPCGUseSingleReduction() -ksp_cg_single_reduction ;
recommended for use with many processors when VecDot() starts to take a
large amount of time, Requires 2 extra work vectors.
- Added KSPGCR (Generalized Conjugate Residuals), a flexible
method (like FGMRES) providing inexpensive residuals.
SNES:
TS:
- Rename TS_EULER, TS_BEULER, etc like TSEULER for
consistency with other packages.
- Add Theta and General Linear time integrators (TSTHETA,
TSGL). These can be used for solving differential algebraic equations
(DAE) using the new TSSetIFunction() and TSSetIJacobian().
- Add TSSSP which implements optimal strong stability
preserving time integrators of order 2, 3, and 4 using a low-storage
explicit Runge-Kutta scheme.
- Change TSSetPreStep() and TSSetPostStep() to run before and
after each step instead of before and after each solve.
DA:
- DAGetColoring() now takes a MatType as an additional
argument, should be MATAIJ or MATBAIJ
- Added DARefineHierarchy(), DMMG now always uses
DMRefineHierarchy to generate refined grids. Added options
-da_refine_hierarchy_[xyz] to allow semi-coarsening at some levels of
the hierarchy.
- DASetCoordinates() now references the vector, so the user
should release their reference by calling VecDestroy().
DMMG:
PetscViewer:
SYS:
- PetscSleep(), PetscDrawGetPause(), and PetscDrawSetPause()
now take PetscReal instead of int. Also, -draw_pause takes a real value.
- PetscRandomGetValueImaginary() is removed. To get a complex
number with only a random imaginary part first call
PetscRandomSetInterval() with the same low and high real part.
Similarly one can obtain a complex number with only a random real part
by setting the low and high imaginary part to be the same.
AO:
Sieve:
Fortran:
- Removed the old compiler dependent implementation of f90
interface sources in favor of the new compiler independent
implementation. Consequently the configure option --with-f90-interface
is removed. And the f90 interface is automatically built - if an f90
compiler is detected. [this is the default behavior before this change
aswell]
- use petsc and use petscdef are now use petscsys and use
petscsysdef
ExternalPackages:
- Added MATORDERING_AMD for Tim Davis' Approximate Minimum
Degree package.
|