1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
# Changes: 2.2.1
```{rubric} 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.
```{rubric} Vec:
```
- VecSetStashInitialSize() -> VecStashSetInitialSize()
- VecConvertMPIToAll() and VecConvertMPIToZero() have been replaced
with VecScatterCreateToAll() and VecScatterCreateToZero()
```{rubric} IS:
```
- ISSum() now has a throughput argument instead of one in and one
output.
```{rubric} 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()
```{rubric} 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
```{rubric} KSP:
```
- Note that a relative residual tolerance now means that ||r_k|| \<
tol\*||b||
- Removed KSPSetRhs() and KSPSetSolution(), pass
- Added KSPSetNullSpace(), KSPGetNullSpace()
```{rubric} 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)
```{rubric} 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
```{rubric} SNES:
```
- Added -snes_converged_reason
- Added SNESSetRhs(snes,rhs) to allow for solving F(x) = rhs
```{rubric} TS:
```
```{rubric} DMMG:
```
- Added DMMGSetNullSpace()
```{rubric} SYS:
```
```{rubric} Fortran:
```
```{rubric} ExternalPackages:
```
|