1*7f296bb3SBarry Smith# Changes: 3.6 2*7f296bb3SBarry Smith 3*7f296bb3SBarry Smith```{rubric} General: 4*7f296bb3SBarry Smith``` 5*7f296bb3SBarry Smith 6*7f296bb3SBarry Smith- User makefiles must be updated. You must change the lines 7*7f296bb3SBarry Smith 8*7f296bb3SBarry Smith - include \$\{PETSC_DIR}/conf/variables and 9*7f296bb3SBarry Smith - include \$\{PETSC_DIR}/conf/rules 10*7f296bb3SBarry Smith 11*7f296bb3SBarry Smith to 12*7f296bb3SBarry Smith 13*7f296bb3SBarry Smith - include \$\{PETSC_DIR}/lib/petsc/conf/variables and 14*7f296bb3SBarry Smith - include \$\{PETSC_DIR}/lib/petsc/conf/rules 15*7f296bb3SBarry Smith 16*7f296bb3SBarry Smith- PetscOptionsBool() no longer sets the value of the boolean based 17*7f296bb3SBarry Smith on the value passed in 18*7f296bb3SBarry Smith 19*7f296bb3SBarry Smith- Script for running MPIUni jobs is now bin/petsc-mpiexec.uni 20*7f296bb3SBarry Smith 21*7f296bb3SBarry Smith- Removed all threadcomm support including --with-pthreadclasses and 22*7f296bb3SBarry Smith --with-openmpclasses configure arguments 23*7f296bb3SBarry Smith 24*7f296bb3SBarry Smith- Updated MUMPS version to 5.0.0 - and updated metis to 5.1.0, 25*7f296bb3SBarry Smith parmetis to 4.0.3-p1 - in sync with MUMPS. 26*7f296bb3SBarry Smith 27*7f296bb3SBarry Smith- Updated to hypre-2.10.0b, scotch_6.0.3, Elemental-0.85 28*7f296bb3SBarry Smith 29*7f296bb3SBarry Smith```{rubric} Configure/Build: 30*7f296bb3SBarry Smith``` 31*7f296bb3SBarry Smith 32*7f296bb3SBarry Smith- Add toplevel makefile targets *clean* and *distclean*. Target 33*7f296bb3SBarry Smith *clean* deletes PETSc libraries built by makefile target *all*. 34*7f296bb3SBarry Smith Target *distclean* deletes all build files created by *configure* 35*7f296bb3SBarry Smith and \[*make all*\]. Target *clean* in example directories continues 36*7f296bb3SBarry Smith to work as before [deletes object files and executables] 37*7f296bb3SBarry Smith 38*7f296bb3SBarry Smith```{rubric} IS: 39*7f296bb3SBarry Smith``` 40*7f296bb3SBarry Smith 41*7f296bb3SBarry Smith```{rubric} PetscDraw: 42*7f296bb3SBarry Smith``` 43*7f296bb3SBarry Smith 44*7f296bb3SBarry Smith- PetscDrawBoxedString() changed to PetscDrawStringBoxed() added 45*7f296bb3SBarry Smith PetscDrawBar object for drawing bar graphs added 46*7f296bb3SBarry Smith PetscDrawStringCentered() 47*7f296bb3SBarry Smith 48*7f296bb3SBarry Smith```{rubric} PF: 49*7f296bb3SBarry Smith``` 50*7f296bb3SBarry Smith 51*7f296bb3SBarry Smith```{rubric} Vec: 52*7f296bb3SBarry Smith``` 53*7f296bb3SBarry Smith 54*7f296bb3SBarry Smith```{rubric} VecScatter: 55*7f296bb3SBarry Smith``` 56*7f296bb3SBarry Smith 57*7f296bb3SBarry Smith```{rubric} PetscSection: 58*7f296bb3SBarry Smith``` 59*7f296bb3SBarry Smith 60*7f296bb3SBarry Smith```{rubric} Mat: 61*7f296bb3SBarry Smith``` 62*7f296bb3SBarry Smith 63*7f296bb3SBarry Smith- MatGetVecs() replaced with MatCreateVecs() because it actually 64*7f296bb3SBarry Smith does create the Vecs that need to be destroyed 65*7f296bb3SBarry Smith- MatCreateMPIAIJConcatenateSeqAIJ and 66*7f296bb3SBarry Smith MatCreateMPIBAIJConcatenateSeqBAIJ replaced with 67*7f296bb3SBarry Smith MatCreateMPIMatConcatenateSeqMat 68*7f296bb3SBarry Smith- MatGetRedundantMatrix() replaced with MatCreateRedundantMatrix() 69*7f296bb3SBarry Smith- Added support for MUMPS sequential solver in Schur complement mode 70*7f296bb3SBarry Smith- MatGetSubMatricesMPI() will extract parallel submatrices on 71*7f296bb3SBarry Smith subcommunicators of the supplied IS objects. Unsorted, but not 72*7f296bb3SBarry Smith repeated indices are okay. 73*7f296bb3SBarry Smith- Removed MatMFFDAddNullSpace() just use MatSetNullSpace() 74*7f296bb3SBarry Smith 75*7f296bb3SBarry Smith```{rubric} PC: 76*7f296bb3SBarry Smith``` 77*7f296bb3SBarry Smith 78*7f296bb3SBarry Smith- Removed -pc_hypre_type euclid due to bit-rot 79*7f296bb3SBarry Smith- Upgraded to SuiteSparse 4.4.1; Cholmod supports using GPUs 80*7f296bb3SBarry Smith (developer repository only feature) --with-cuda 81*7f296bb3SBarry Smith --download-suitesparse-gpu --with-64-bit-indices; 82*7f296bb3SBarry Smith -mat_cholmod_useGPU 1 or 0; 1 by default when configured for it 83*7f296bb3SBarry Smith- Upgraded to Superlu_DIST 4.0; Superlu_DIST supports using GPUs 84*7f296bb3SBarry Smith (developer repository only feature) --with-cuda --with-openmp 85*7f296bb3SBarry Smith --download-superlu_dist-gpu (developer repository only feature) 86*7f296bb3SBarry Smith --with-64-bit-indices -mat_cholmod_useGPU 1 or 0; 1 by default 87*7f296bb3SBarry Smith when configured for it 88*7f296bb3SBarry Smith- Added PCBDDCSetChangeOfBasisMat for user defined change of basis 89*7f296bb3SBarry Smith- PCBDDC: added adaptive selection of constraints: it is available 90*7f296bb3SBarry Smith by command line options 91*7f296bb3SBarry Smith- PCJacobiSetUseAbs() now takes a PetscBool argument allowing 92*7f296bb3SBarry Smith toggling the option 93*7f296bb3SBarry Smith- PCJacobiSetUseRowMax() and PCJacobiSetUseRowSum() have been merged 94*7f296bb3SBarry Smith into PCJacobiSetType() 95*7f296bb3SBarry Smith- PCFactorSetUseInplace() now takes a PetscBool argument. Added 96*7f296bb3SBarry Smith PCFactorGetUseInplace() 97*7f296bb3SBarry Smith- PCFactorSetAllowDiagonalFill() now takes a PetscBool argument. 98*7f296bb3SBarry Smith Added PCFactorGetAllowDiagonalFill() 99*7f296bb3SBarry Smith- PCEisenstatNoDiagonalScaling() changed to 100*7f296bb3SBarry Smith PCEisenstatSetNoDiagonalScaling() and takes a boolean 101*7f296bb3SBarry Smith- Added Interface to AMS solver from HYPRE for Nedelec 102*7f296bb3SBarry Smith discretizations (-pc_hypre_type ams) 103*7f296bb3SBarry Smith- Added Interface to ADS solver from HYPRE for Raviart-Thomas 104*7f296bb3SBarry Smith discretizations (-pc_hypre_type ads) 105*7f296bb3SBarry Smith- Contributed MKL PARDISO interface providing PCCholesky support. 106*7f296bb3SBarry Smith Useable with: -pc_type cholesky -mat_type sbaij 107*7f296bb3SBarry Smith -pc_factor_mat_solver_package mkl_pardiso 108*7f296bb3SBarry Smith- PCGASMSetTotalSubdomains() can now create multirank subdomains if 109*7f296bb3SBarry Smith their number is less than comm size. 110*7f296bb3SBarry Smith- PCGAMGSetReuseProl() is changed to PCGAMGSetReuseInterpolation() 111*7f296bb3SBarry Smith 112*7f296bb3SBarry Smith```{rubric} KSP: 113*7f296bb3SBarry Smith``` 114*7f296bb3SBarry Smith 115*7f296bb3SBarry Smith- Removed KSPSetNullSpace() always use MatSetNullSpace() provided to 116*7f296bb3SBarry Smith the FIRST matrix argument to KSPSetOperators(), or 117*7f296bb3SBarry Smith SNESSetJacobian(), or TSSetIJacobian() 118*7f296bb3SBarry Smith- Added MatSetTransposeNullSpace() to indicate the null space of the 119*7f296bb3SBarry Smith transpose operator 120*7f296bb3SBarry Smith- Removed KSPSPECEST since its functionality is replaced by the 121*7f296bb3SBarry Smith esteig functionality within KSPChebyshev 122*7f296bb3SBarry Smith- Unified KSPChebyshev routines that work with estimating 123*7f296bb3SBarry Smith eigenvalues with the prefix name KSPChebyshevEstEig... For example 124*7f296bb3SBarry Smith KSPChebyshevSetEstimateEigenvalues() is now 125*7f296bb3SBarry Smith KSPChebyshevEstEigSet() and 126*7f296bb3SBarry Smith KSPChebyshevSetEstimateEigenvaluesRandom() is now 127*7f296bb3SBarry Smith KSPChebyshevEstEigSetRandom() similarly 128*7f296bb3SBarry Smith -ksp_chebyshev_estimate_eigenvalues_random is 129*7f296bb3SBarry Smith -ksp_chebyshev_esteig_random. The previous for the (GMRES) KSP 130*7f296bb3SBarry Smith used to estimate the eigenvalues is now esteig\_ not est\_ 131*7f296bb3SBarry Smith- KSPGetVecs() replaced with KSPCreateVecs() because it actually 132*7f296bb3SBarry Smith does create the Vecs that need to be destroyed 133*7f296bb3SBarry Smith 134*7f296bb3SBarry Smith```{rubric} SNES: 135*7f296bb3SBarry Smith``` 136*7f296bb3SBarry Smith 137*7f296bb3SBarry Smith- Added KSPMonitorSNES() with command line option -ksp_monitor_snes 138*7f296bb3SBarry Smith and -ksp_monitor_snes_lg to monitor SNES residual norm at each 139*7f296bb3SBarry Smith linear iteration SNESMonitorVI() becomes SNESVIMonitor() 140*7f296bb3SBarry Smith- Added SNESVIMonitorResidual() and -snes_vi_monitor_residual 141*7f296bb3SBarry Smith 142*7f296bb3SBarry Smith```{rubric} SNESLineSearch: 143*7f296bb3SBarry Smith``` 144*7f296bb3SBarry Smith 145*7f296bb3SBarry Smith```{rubric} TS: 146*7f296bb3SBarry Smith``` 147*7f296bb3SBarry Smith 148*7f296bb3SBarry Smith- The postevent routine set with TSSetEventMonitor() now takes an 149*7f296bb3SBarry Smith additional PetscBool argument 'forwardsolve'. The forwardsolve 150*7f296bb3SBarry Smith flag is used to distinguish between a TS forward solve 151*7f296bb3SBarry Smith (forwardsolve = 1) and adjoint solve (forwardsolve = 0). 152*7f296bb3SBarry Smith- Added TSAdjointSolve() for adjoint sensitivity analysis 153*7f296bb3SBarry Smith- EquationType is introduced to distinguish between ODEs and DAEs. 154*7f296bb3SBarry Smith It needs to be set accordingly before solving the problem through 155*7f296bb3SBarry Smith TSSetEquationType(). It currently only affects arkimex methods. 156*7f296bb3SBarry Smith 157*7f296bb3SBarry Smith```{rubric} DM/DA: 158*7f296bb3SBarry Smith``` 159*7f296bb3SBarry Smith 160*7f296bb3SBarry Smith- DMCreateInjection() now returns a Mat, rather than a VecScatter 161*7f296bb3SBarry Smith- The MatType argument is removed from DMCreateMatrix(), you can use 162*7f296bb3SBarry Smith DMSetMatType() to indicate the type you want used with a DM, 163*7f296bb3SBarry Smith defaults to MATAIJ 164*7f296bb3SBarry Smith- You can now use DMDASetAOType() to indicate the type of AO you 165*7f296bb3SBarry Smith want used with a DMDA (defaults to AOBASIC) 166*7f296bb3SBarry Smith 167*7f296bb3SBarry Smith```{rubric} DMPlex: 168*7f296bb3SBarry Smith``` 169*7f296bb3SBarry Smith 170*7f296bb3SBarry Smith- Can now redistribute parallel meshes 171*7f296bb3SBarry Smith- Can now increase the overlap of parallel meshes 172*7f296bb3SBarry Smith- Added new mesh formats, Fluent CAS and Gmsh 173*7f296bb3SBarry Smith 174*7f296bb3SBarry Smith```{rubric} PetscViewer: 175*7f296bb3SBarry Smith``` 176*7f296bb3SBarry Smith 177*7f296bb3SBarry Smith- HDF5 viewer will save Vecs and DMDA Vecs with a dimension of 1 if 178*7f296bb3SBarry Smith the bs/dof of the vector is 1. To always include this dimension as 179*7f296bb3SBarry Smith a specific dimension in the HDF5 file even if it is of size 1 180*7f296bb3SBarry Smith use PetscViewerHDF5SetBaseDimension2() or 181*7f296bb3SBarry Smith -viewer_hdf5_base_dimension2 true 182*7f296bb3SBarry Smith 183*7f296bb3SBarry Smith```{rubric} SYS: 184*7f296bb3SBarry Smith``` 185*7f296bb3SBarry Smith 186*7f296bb3SBarry Smith- PetscOptionsHead() now takes a PetscOptions argument. 187*7f296bb3SBarry Smith- PetscObjectAddOptionsHandler() now takes an event handler that 188*7f296bb3SBarry Smith includes a PetscOptions argument. 189*7f296bb3SBarry Smith PetscObjectProcessOptionsHandlers() requires this as input. 190*7f296bb3SBarry Smith 191*7f296bb3SBarry Smith```{rubric} AO: 192*7f296bb3SBarry Smith``` 193*7f296bb3SBarry Smith 194*7f296bb3SBarry Smith```{rubric} Fortran: 195*7f296bb3SBarry Smith``` 196*7f296bb3SBarry Smith 197*7f296bb3SBarry Smith- Fortran include files are now in include/petsc/finclude instead of 198*7f296bb3SBarry Smith include/finclude. Thus replace uses of #include "finclude/xxx.h" 199*7f296bb3SBarry Smith with #include "petsc/finclude/xxx.h". Reason for change: to 200*7f296bb3SBarry Smith namespace the finclude directory with PETSc for --prefix installs 201*7f296bb3SBarry Smith of PETSc and for packaging systems 202