1*7f296bb3SBarry Smith# Changes: 2.3.0 2*7f296bb3SBarry Smith 3*7f296bb3SBarry Smith```{rubric} General: 4*7f296bb3SBarry Smith``` 5*7f296bb3SBarry Smith 6*7f296bb3SBarry Smith- The equivalent of building BOPT=g, BOPT=O versions for 7*7f296bb3SBarry Smith PETSC_ARCH=linux-gnu is now: config/configure.py [options] 8*7f296bb3SBarry Smith -PETSC_ARCH=linux-gnu config/configure.py [options] 9*7f296bb3SBarry Smith --with-debugging=0 -PETSC_ARCH=linux-gnu-opt 10*7f296bb3SBarry Smith- Python bindings added to PETSc. To use, configure with: 11*7f296bb3SBarry Smith --with-python=1 ---with-shared=1 To build, use: 'make python' 12*7f296bb3SBarry Smith after building PETSc libraries. Example in 13*7f296bb3SBarry Smith src/snes/examples/tutorials/ex1.py 14*7f296bb3SBarry Smith- Options database keys -trmalloc[\_xxx] are changed to -malloc[\_xxx] 15*7f296bb3SBarry Smith- -get_resident_set_size and -trinfo are changed to -memory_info 16*7f296bb3SBarry Smith- PetscTrValid() -> PetscMallocValidate(), PetscTrDebug() -> 17*7f296bb3SBarry Smith PetscMallocDebug() 18*7f296bb3SBarry Smith- -trdebug -> -malloc_debug 19*7f296bb3SBarry Smith- PetscGetResidentSetSize() -> PetscMemoryGetCurrentUsage(), added 20*7f296bb3SBarry Smith PetscMemoryGetMaximumUsage() and PetscMemorySetGetMaximumUsage() 21*7f296bb3SBarry Smith- PetscTrSpace() -> PetscMallocGetCurrentUsage() and 22*7f296bb3SBarry Smith PetscMallocGetMaximumUsage() 23*7f296bb3SBarry Smith- added PetscOptionsEnum() and PetscOptionsGetEnum() 24*7f296bb3SBarry Smith- added PetscBag object for managing user created structs including 25*7f296bb3SBarry Smith initializing them and serializing them. 26*7f296bb3SBarry Smith- removed PetscSetCommWorld(). Now you can directly assign to 27*7f296bb3SBarry Smith PETSC_COMM_WORLD before PetscInitialize(). 28*7f296bb3SBarry Smith 29*7f296bb3SBarry Smith```{rubric} Vec: 30*7f296bb3SBarry Smith``` 31*7f296bb3SBarry Smith 32*7f296bb3SBarry Smith- Faster generation of VecScatter for many processes when indices 33*7f296bb3SBarry Smith are mostly sorted 34*7f296bb3SBarry Smith 35*7f296bb3SBarry Smith- Changed BLAS-type interfaces to PETSc-style: 36*7f296bb3SBarry Smith 37*7f296bb3SBarry Smith - VecShift 38*7f296bb3SBarry Smith - VecScale 39*7f296bb3SBarry Smith - VecSet 40*7f296bb3SBarry Smith - VecSetRandom 41*7f296bb3SBarry Smith - VecAXPY 42*7f296bb3SBarry Smith - VecAXPBY 43*7f296bb3SBarry Smith - VecAYPX 44*7f296bb3SBarry Smith - VecMAXPY 45*7f296bb3SBarry Smith - VecWAXPY 46*7f296bb3SBarry Smith 47*7f296bb3SBarry Smith- Changed order of arguments in pointwise routines: 48*7f296bb3SBarry Smith 49*7f296bb3SBarry Smith - VecPointwiseMult 50*7f296bb3SBarry Smith - VecPointwiseMax 51*7f296bb3SBarry Smith - VecPointwiseMin 52*7f296bb3SBarry Smith - VecPointwiseMaxAbs 53*7f296bb3SBarry Smith - VecPointwiseDivide 54*7f296bb3SBarry Smith 55*7f296bb3SBarry Smith```{rubric} Mat: 56*7f296bb3SBarry Smith``` 57*7f296bb3SBarry Smith 58*7f296bb3SBarry Smith- Changed MatConvert to require a reuse parameter to denote inplace 59*7f296bb3SBarry Smith conversion 60*7f296bb3SBarry Smith 61*7f296bb3SBarry Smith- Added Cholesky and ICC support to SeqBAIJ 62*7f296bb3SBarry Smith 63*7f296bb3SBarry Smith- Added the argument MatFactorInfo to MatLUFactorNumeric() and 64*7f296bb3SBarry Smith MatCholeskyFactorNumeric() 65*7f296bb3SBarry Smith 66*7f296bb3SBarry Smith- Faster MatSetValues() 67*7f296bb3SBarry Smith 68*7f296bb3SBarry Smith- Faster parallel-matrix vector products 69*7f296bb3SBarry Smith 70*7f296bb3SBarry Smith- Changed MatCreate() to take only a communicator 71*7f296bb3SBarry Smith 72*7f296bb3SBarry Smith- Added MatSetSize() to specify matrix sizes 73*7f296bb3SBarry Smith 74*7f296bb3SBarry Smith- Changed BLAS-type interfaces to PETSc-style: 75*7f296bb3SBarry Smith 76*7f296bb3SBarry Smith - MatAXPY 77*7f296bb3SBarry Smith - MatAYPX 78*7f296bb3SBarry Smith - MatScale 79*7f296bb3SBarry Smith - MatShift 80*7f296bb3SBarry Smith 81*7f296bb3SBarry Smith- Change MatZeroRows() and MatZeroRowsLocal() to use arrays, and 82*7f296bb3SBarry Smith added IS versions 83*7f296bb3SBarry Smith 84*7f296bb3SBarry Smith```{rubric} PC: 85*7f296bb3SBarry Smith``` 86*7f296bb3SBarry Smith 87*7f296bb3SBarry Smith- Added PCILUReorderForNonzeroDiagonal() and 88*7f296bb3SBarry Smith PCLUReorderForNonzeroDiagonal() 89*7f296bb3SBarry Smith- Replace PCLUSetDamping(), PCILUSetDamping(), 90*7f296bb3SBarry Smith PCCholeskySetDamping() and PCICCSetDamping() by 91*7f296bb3SBarry Smith PCFactorSetShiftNonzero(). Change the option database keys 92*7f296bb3SBarry Smith -pc_lu_damping, -pc_ilu_damping, -pc_cholesky_damping and 93*7f296bb3SBarry Smith -pc_icc_damping to -pc_factor_shift_nonzero 94*7f296bb3SBarry Smith- Replace PCLUSetShift(), PCILUSetShift(), PCCholeskySetShift() and 95*7f296bb3SBarry Smith PCICCSetShift() by PCFactorSetShiftPd(). Change the option 96*7f296bb3SBarry Smith database keys -pc_lu_shift, -pc_ilu_shift, -pc_cholesky_shift and 97*7f296bb3SBarry Smith -pc_icc_shift to -pc_factor_shfit_positive_definite 98*7f296bb3SBarry Smith- PCMG: will automatically using the outer pmat operator to define 99*7f296bb3SBarry Smith the finest level operator if not user supplied 100*7f296bb3SBarry Smith- PCMG: added MGUseGalerkin(), -pc_mg_galerkin option to have 101*7f296bb3SBarry Smith coarser grid matrices computed from the finest grid matrix 102*7f296bb3SBarry Smith- PCMG: now does referencing counting on set vectors and 103*7f296bb3SBarry Smith restriction/interpolation matrices so user need not keep reference 104*7f296bb3SBarry Smith to free later 105*7f296bb3SBarry Smith- PCMG: if user does not provide restriction the interpolation is 106*7f296bb3SBarry Smith used and vis versa 107*7f296bb3SBarry Smith- PCMG: if user does not provide Vecs for each level, will 108*7f296bb3SBarry Smith automatically provide them 109*7f296bb3SBarry Smith- All routines that began with MG now begin with PCMG 110*7f296bb3SBarry Smith- Added PCShellSet/GetContext() and removed the context passed into 111*7f296bb3SBarry Smith PCSetApply() and PCSetApplyRichardson() 112*7f296bb3SBarry Smith 113*7f296bb3SBarry Smith```{rubric} KSP: 114*7f296bb3SBarry Smith``` 115*7f296bb3SBarry Smith 116*7f296bb3SBarry Smith- -ksp_cg_Hermitian and -ksp_cg_symmetric have been changed to 117*7f296bb3SBarry Smith -ksp_cg_type Hermitian or symmetric 118*7f296bb3SBarry Smith- Changed options for -ksp_gmres_cgs_refinement_type from never or 119*7f296bb3SBarry Smith ifneeded or always to REFINE_NEVER or REFINE_IFNEEDED or 120*7f296bb3SBarry Smith REFINE_ALWAYS 121*7f296bb3SBarry Smith 122*7f296bb3SBarry Smith```{rubric} config/configure.py: 123*7f296bb3SBarry Smith``` 124*7f296bb3SBarry Smith 125*7f296bb3SBarry Smith```{rubric} SNES: 126*7f296bb3SBarry Smith``` 127*7f296bb3SBarry Smith 128*7f296bb3SBarry Smith- Changed the name and calling sequence for SNESSetLineSearchCheck() 129*7f296bb3SBarry Smith to SNESLineSearchSetPostCheck() and added a 130*7f296bb3SBarry Smith SNESLineSearchSetPreCheck() 131*7f296bb3SBarry Smith 132*7f296bb3SBarry Smith- Changed the names of all SNESxxxxLineSearchyyyy() to 133*7f296bb3SBarry Smith SNESLineSearchxxxxyyyy() per PETSc naming standard. 134*7f296bb3SBarry Smith 135*7f296bb3SBarry Smith- Now allow a constant vector to be specified in SNESSolve() 136*7f296bb3SBarry Smith 137*7f296bb3SBarry Smith- Removed the Vec argument from SNESSetUp() 138*7f296bb3SBarry Smith 139*7f296bb3SBarry Smith- Corrected the order of function and context arguments in: 140*7f296bb3SBarry Smith 141*7f296bb3SBarry Smith - SNESGetFunction() 142*7f296bb3SBarry Smith - SNESGetJacobian() 143*7f296bb3SBarry Smith 144*7f296bb3SBarry Smith```{rubric} TS: 145*7f296bb3SBarry Smith``` 146*7f296bb3SBarry Smith 147*7f296bb3SBarry Smith```{rubric} DA: 148*7f296bb3SBarry Smith``` 149*7f296bb3SBarry Smith 150*7f296bb3SBarry Smith- Added DAVecGet/RestoreArrayDOF() allowing indexing in the 151*7f296bb3SBarry Smith dimension of degrees of freedom at each point on the lattice. 152*7f296bb3SBarry Smith- Faster DAGlobalToLocal() etc for dof > 1. 153*7f296bb3SBarry Smith 154*7f296bb3SBarry Smith```{rubric} DMMG: 155*7f296bb3SBarry Smith``` 156*7f296bb3SBarry Smith 157*7f296bb3SBarry Smith- Consolidated DMMG functionality into the new header file 158*7f296bb3SBarry Smith "petscdmmg.h". 159*7f296bb3SBarry Smith 160*7f296bb3SBarry Smith```{rubric} SYS: 161*7f296bb3SBarry Smith``` 162*7f296bb3SBarry Smith 163*7f296bb3SBarry Smith- PetscSetCommWorld() removed. [one can directly do PETSC_COMM_WORLD 164*7f296bb3SBarry Smith = comm - before PetscInitialize()] 165*7f296bb3SBarry Smith 166*7f296bb3SBarry Smith```{rubric} Fortran: 167*7f296bb3SBarry Smith``` 168*7f296bb3SBarry Smith 169*7f296bb3SBarry Smith```{rubric} ExternalPackages: 170*7f296bb3SBarry Smith``` 171*7f296bb3SBarry Smith 172*7f296bb3SBarry Smith- ML support added. 173