1*7f296bb3SBarry Smith# Changes: 2.2.1 2*7f296bb3SBarry Smith 3*7f296bb3SBarry Smith```{rubric} General: 4*7f296bb3SBarry Smith``` 5*7f296bb3SBarry Smith 6*7f296bb3SBarry Smith- Introduced 4 new PETSc data types: PetscInt, PetscErrorCode, 7*7f296bb3SBarry Smith PetscMPIInt and PetscBLASInt. For 99% of users these are just int 8*7f296bb3SBarry Smith or integer\*4 and you do **not** need to change your code. 9*7f296bb3SBarry Smith- For users with more than roughly 2 billion unknowns you can run 10*7f296bb3SBarry Smith configure with --with-64-bit-ints and then PetscInt will represent 11*7f296bb3SBarry Smith 64 bit integers, long long int in C and integer\*8 in Fortran. But 12*7f296bb3SBarry Smith the the other 3 types remain 32 bit (i.e. int in C and integer\*4 13*7f296bb3SBarry Smith in Fortran). Now you can index into vectors and matrices with 14*7f296bb3SBarry Smith virtually unlimited sizes. 15*7f296bb3SBarry Smith 16*7f296bb3SBarry Smith```{rubric} Vec: 17*7f296bb3SBarry Smith``` 18*7f296bb3SBarry Smith 19*7f296bb3SBarry Smith- VecSetStashInitialSize() -> VecStashSetInitialSize() 20*7f296bb3SBarry Smith- VecConvertMPIToAll() and VecConvertMPIToZero() have been replaced 21*7f296bb3SBarry Smith with VecScatterCreateToAll() and VecScatterCreateToZero() 22*7f296bb3SBarry Smith 23*7f296bb3SBarry Smith```{rubric} IS: 24*7f296bb3SBarry Smith``` 25*7f296bb3SBarry Smith 26*7f296bb3SBarry Smith- ISSum() now has a throughput argument instead of one in and one 27*7f296bb3SBarry Smith output. 28*7f296bb3SBarry Smith 29*7f296bb3SBarry Smith```{rubric} Mat: 30*7f296bb3SBarry Smith``` 31*7f296bb3SBarry Smith 32*7f296bb3SBarry Smith- MatSetStashInitialSize() -> MatStashSetInitialSize() 33*7f296bb3SBarry Smith- added MatFactorInfoInitialize() 34*7f296bb3SBarry Smith- added MatStashGetInfo() 35*7f296bb3SBarry Smith- added MatGetVecs() 36*7f296bb3SBarry Smith- added MatIsSymmetric(), MatIsTranspose() now take a tolerance flag 37*7f296bb3SBarry Smith for equality (use 0.0 for identical) 38*7f296bb3SBarry Smith- added MatMPIAIJSetPreallocationCSR() and 39*7f296bb3SBarry Smith MatMPIBAIJSetPreallocationCSR() 40*7f296bb3SBarry Smith 41*7f296bb3SBarry Smith```{rubric} PC: 42*7f296bb3SBarry Smith``` 43*7f296bb3SBarry Smith 44*7f296bb3SBarry Smith- ICC now uses Manteuffel shift by default 45*7f296bb3SBarry Smith- If matrix is symmetric, PC defaults to ICC when possible, if you 46*7f296bb3SBarry Smith told with MatSetOption(mat,MAT_SYMMETRIC) 47*7f296bb3SBarry Smith- PCSetVector() is gone (no longer needed) 48*7f296bb3SBarry Smith- PCNullSpaceAttach() is gone, use KSPSetNullSpace() 49*7f296bb3SBarry Smith- MatGetSubmatrices() now preserves symmetric flag of original 50*7f296bb3SBarry Smith matrix 51*7f296bb3SBarry Smith- hypre BoomerAMG (-pc_type hypre -pc_hypre_type boomeramg) now uses 52*7f296bb3SBarry Smith one 1 cycle of multigrid as preconditioner (Previously it used 53*7f296bb3SBarry Smith either a decrease in residual of 10^-7 or a maximum of 20 54*7f296bb3SBarry Smith iterations 55*7f296bb3SBarry Smith 56*7f296bb3SBarry Smith```{rubric} KSP: 57*7f296bb3SBarry Smith``` 58*7f296bb3SBarry Smith 59*7f296bb3SBarry Smith- Note that a relative residual tolerance now means that ||r_k|| \< 60*7f296bb3SBarry Smith tol\*||b|| 61*7f296bb3SBarry Smith- Removed KSPSetRhs() and KSPSetSolution(), pass 62*7f296bb3SBarry Smith- Added KSPSetNullSpace(), KSPGetNullSpace() 63*7f296bb3SBarry Smith 64*7f296bb3SBarry Smith```{rubric} DA: 65*7f296bb3SBarry Smith``` 66*7f296bb3SBarry Smith 67*7f296bb3SBarry Smith- Added DAGetGhostedCoordinates() and DAGetCoordinateDA() (see 68*7f296bb3SBarry Smith src/dm/da/examples/tutorials/ex3.c) 69*7f296bb3SBarry Smith- Added DACoor2d and DACoor3d (see 70*7f296bb3SBarry Smith src/dm/da/examples/tutorials/ex3.c) 71*7f296bb3SBarry Smith- DAGetInterpolation() now provides the correct interpolation for 72*7f296bb3SBarry Smith nonuniform grids using the coordinate information provided with 73*7f296bb3SBarry Smith DASetCoordinates(). (see src/dm/da/examples/tutorials/ex3.c) 74*7f296bb3SBarry Smith 75*7f296bb3SBarry Smith```{rubric} config/configure.py: 76*7f296bb3SBarry Smith``` 77*7f296bb3SBarry Smith 78*7f296bb3SBarry Smith- --with-c/f-blas-lapack -> --download-c/f-blas-lapack=yes 79*7f296bb3SBarry Smith- --with-c/f-blas-lapack-if-needed -> 80*7f296bb3SBarry Smith --download-c/f-blas-lapack=ifneeded 81*7f296bb3SBarry Smith- added --download-mpich=yes,no,ifneeded 82*7f296bb3SBarry Smith- added --download-mpich-device= 83*7f296bb3SBarry Smith- added --download-mpich-machines=[machines] 84*7f296bb3SBarry Smith- added configure including download support for hypre, parmetis 85*7f296bb3SBarry Smith- added configure support (without download) to Mumps, UMF, 86*7f296bb3SBarry Smith Superlu,SuperLU_dist,DSCPACK 87*7f296bb3SBarry Smith- Made configure much more robust 88*7f296bb3SBarry Smith 89*7f296bb3SBarry Smith```{rubric} SNES: 90*7f296bb3SBarry Smith``` 91*7f296bb3SBarry Smith 92*7f296bb3SBarry Smith- Added -snes_converged_reason 93*7f296bb3SBarry Smith- Added SNESSetRhs(snes,rhs) to allow for solving F(x) = rhs 94*7f296bb3SBarry Smith 95*7f296bb3SBarry Smith```{rubric} TS: 96*7f296bb3SBarry Smith``` 97*7f296bb3SBarry Smith 98*7f296bb3SBarry Smith```{rubric} DMMG: 99*7f296bb3SBarry Smith``` 100*7f296bb3SBarry Smith 101*7f296bb3SBarry Smith- Added DMMGSetNullSpace() 102*7f296bb3SBarry Smith 103*7f296bb3SBarry Smith```{rubric} SYS: 104*7f296bb3SBarry Smith``` 105*7f296bb3SBarry Smith 106*7f296bb3SBarry Smith```{rubric} Fortran: 107*7f296bb3SBarry Smith``` 108*7f296bb3SBarry Smith 109*7f296bb3SBarry Smith```{rubric} ExternalPackages: 110*7f296bb3SBarry Smith``` 111