1# Changes: 2.3.2 2 3```{rubric} General: 4``` 5 6- We have a new Semi-Lagrangian advection solver using the method of 7 characteristics to the `src/contrib/semiLagrange`, contributed 8 by [Richard Katz](mailto:katz@ldeo.columbia.edu) and [Marc 9 Spiegelman](mailto:mspieg@ldeo.columbia.edu) of Columbia 10 University. Examples are included. 11- Added C99 complex support. [check configure changes below] 12 13```{rubric} Vec: 14``` 15 16```{rubric} Mat: 17``` 18 19- Added MatCreateScatter() and MATSCATTER to easily construct 20 efficient "restriction operators" 21- Removed MatConvertRegister() and friends, added `(*convertfrom)` to 22 Mat function table to replace it 23 24```{rubric} PC: 25``` 26 27- Added PCGALERKIN and PCGalerkinSetRestriction/Interpolation() to 28 allow easy creating of Galerkin-like preconditioners. 29- Added PCGetOperatorsSet() 30- Added support for the KSP/PC to auto-create the Mat(s) for you. 31 (Which you usally set with KSP/PCSetOperators()). See manual page 32 for KSP/PCGetOperators(). Note this is slightly speculative code 33 currently. 34- PCSetOperators()/KSPSetOperators() now do reference counting on 35 the operators you pass in. Current usage will work, however this 36 means you NO LONGER need to keep a reference to the operators 37 around until the KSP/PC object is destroyed. 38 39```{rubric} KSP: 40``` 41 42- Added KSPDefaultConvergedSetUIRNorm() and 43 -ksp_default_converged_initial_residual_norm to go back to the pre 44 PETSc 2.3.1 way of determiming relative tolerance for convergence. 45- Added KSPGetOperatorsSet() 46 47```{rubric} config/configure.py: 48``` 49 50- Now c++ complex version requires the options' 51 '--with-scalar-type=complex --with-clanguage=cxx'. Specyfing only 52 '--with-scalar-type=complex' will default to '--with-clanguage=c' 53 i.e uses C99 complex support. 54 55```{rubric} SNES: 56``` 57 58- The convergence test functions for SNES now pass the current 59 iteration in as the second argument. Also the convergence test 60 routine is called after the initial function evaluation in SNES 61 but before the first Newton step is computed. 62- Added SNESSetKSP(). 63 64```{rubric} TS: 65``` 66 67```{rubric} DA: 68``` 69 70```{rubric} DMMG: 71``` 72 73```{rubric} SYS: 74``` 75 76- Removed PetscRandomType from the prototype of PetscRandomCreate(). 77- Added PetscRandomSetType(), PetscRandomGetValueReal() and 78 PetscRandomGetValueImaginary(). 79- Replaced RANDOM_DEFAULT, RANDOM_DEFAULT_REAL and 80 RANDOM_DEFAULT_IMAGINARY, the type of random numbers, with 81 PETSCRAND48, PETSCRAND etc. 82 83```{rubric} AO: 84``` 85 86- AODATA object and associated routines are now deprecated and 87 scheduled for future removal 88 89```{rubric} Fortran: 90``` 91 92```{rubric} ExternalPackages: 93``` 94 95- SPRNG support added. 96