xref: /petsc/doc/changes/232.md (revision fabba7674ec3ff89cba75256265b49c0f0deffd3)
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