1# Changes: 2.1.6 2 3```{rubric} General: 4``` 5 6- Added support for Cray X1 7- Added option '-suggest' to petscarch script. It suggests some 8 possible PETSC_ARCHes to use 9- Installation instructions are rewritten 10 11```{rubric} Vec: 12``` 13 14- VecNorm now caches NORM_2 15- Added VecStrideScale(), VecStrideGather(), VecStrideScatter() 16- Added VecBlockNorm(),VecBlockMax(),VecBlockMin(),VecBlockScale() 17 18```{rubric} Mat: 19``` 20 21- The interface to external packages that support direct solvers has 22 been reorganized. This is implemented using new matrix types 23 MATSEQAIJSPOOLES, MATMPIAIJSPOOLES, MATSEQSBAIJSPOOLES, 24 MATMPISBAIJSPOOLES, MATSUPERLU, MATSUPERLU_DIST, 25 MATUMFPACK,MATESSL, MATLUSOL, MATAIJMUMPS, MATSBAIJMUMPS, 26 MATDSCPACK 27- Added new convenience matrix types which automatically switch 28 between Seq and MPI implementations depending on the size of the 29 communicator used during creation: MATAIJ, MATBAIJ, MATSBAIJ, 30 MATMAIJ, MATDENSE, MATBDIAG 31- Changed default matrix-free compute h to use WP since it uses 32 fewer reductions 33- Replace the datatypes MatLUInfo and MatILUInfo by MatFactorInfo 34- Added cholesky support to SeqAIJ 35- Added support for SUBSET_NONZERO_PATTERN with MatAXPY for AIJ & 36 BAIJ 37- Added MatIsSymmetric() for AIJ 38- Added LDA support in SeqDense 39- The ncols argument made optional in MatGetRow() 40- Added MAT_KEEP_ZEROED_ROWS for MPIROWBS 41- Removed -aij_oneindex support from AIJ code 42- Added MatPartitioningSetPartitionWeights() - usable with ParMetis 43- MatGetSubMatrices() now works for ROWBS 44 45```{rubric} PC: 46``` 47 48- Added PCICCSetDamping() or -pc_icc_damping 49- Added -pc_constant_null_space 50- Added PCILUSetShift() or -pc_ilu_shift to support damping using 51 the identity 52- Added PCLUSetShift() or -pc_lu_shift to support damping using the 53 identity 54- Added PCICCSetShift() or -pc_icc_shift to support damping using 55 the identity 56 57```{rubric} KSP: 58``` 59 60- Added a new ksp_type LGMRES 61- Added KSPSetComputeSingularValues() support to ksp_type FGMRES 62 63```{rubric} TS: 64``` 65 66- Added support for Runge-Kutta using ts_type TS_RUNGE_KUTTA 67 68```{rubric} DMMG: 69``` 70 71- -dmmg_jacobian_period -1 => jacobian is frozen after initial 72 construction 73 74```{rubric} DA: 75``` 76 77- Allow user preallocation of jacobian using DASetGetMatrix() 78- DAGetMatrix now correctly returns the requested type. 79- -mat_type typename overloads the requested type for DAGetMatrix 80 81```{rubric} SYS: 82``` 83 84- Added new viewer_type PETSC_VIEWER_NETCDF, PETSC_VIEWER_HDF4 85- PETSc error handlers now trap many more signals. 86 87```{rubric} Fortran: 88``` 89 90- PetscPushErrorHandler() and PetscPopErrorHandler() now supported 91- PetscPrintf() and PetscSynchronizedPrintf() now work in fortran 92 with a single string 93 94```{rubric} External Packages: 95``` 96 97- Added TSPVodeGetParameters() 98- Parmetis-3 support added using MatPartitionSetNParts(), 99 ISPartitionCount() 100- MUMPS support added, including complex (using mat_type 101 MATAIJMUMPS, MATSBAIJMUMPS) 102- Updated SuperLU_DIST interface to SuperLU_DIST_2.0 103- Added Spooles complex support 104- Added Spooles cholesky for SeqAIJ 105- ADIC: ad_GRAD_MAX is now set in the application and compiled into 106 code when compiling appplication 107- The following variable names - in the buildsystem are changed - 108 that correspond with SuperLU_DIST SUPERLUDIST_INCLUDE -> 109 SUPERLU_DIST_INCLUDE SUPERLUDIST_LIB -> SUPERLU_DIST_LIB 110 PETSCHAVE_SUPERLU -> PETSC_HAVE_SUPERLU 111