xref: /petsc/doc/changes/311.md (revision b11d9968bc79904c690b122f9399be46447eb113)
1*7f296bb3SBarry Smith# Changes: 3.11
2*7f296bb3SBarry Smith
3*7f296bb3SBarry Smith```{rubric} General:
4*7f296bb3SBarry Smith```
5*7f296bb3SBarry Smith
6*7f296bb3SBarry Smith```{rubric} Configure/Build:
7*7f296bb3SBarry Smith```
8*7f296bb3SBarry Smith
9*7f296bb3SBarry Smith- Configure now supports Python 3.4+ in addition to Python 2.6+.
10*7f296bb3SBarry Smith
11*7f296bb3SBarry Smith```{rubric} IS:
12*7f296bb3SBarry Smith```
13*7f296bb3SBarry Smith
14*7f296bb3SBarry Smith```{rubric} PetscDraw:
15*7f296bb3SBarry Smith```
16*7f296bb3SBarry Smith
17*7f296bb3SBarry Smith```{rubric} PF:
18*7f296bb3SBarry Smith```
19*7f296bb3SBarry Smith
20*7f296bb3SBarry Smith```{rubric} Vec:
21*7f296bb3SBarry Smith```
22*7f296bb3SBarry Smith
23*7f296bb3SBarry Smith```{rubric} VecScatter:
24*7f296bb3SBarry Smith```
25*7f296bb3SBarry Smith
26*7f296bb3SBarry Smith- Removed VecScatterCreateEmpty(MPI_Comm,VecScatter\*)
27*7f296bb3SBarry Smith- Added a PetscSF implementation of VecScatter. One can enable it
28*7f296bb3SBarry Smith  with -vecscatter_type sf
29*7f296bb3SBarry Smith
30*7f296bb3SBarry Smith```{rubric} PetscSection:
31*7f296bb3SBarry Smith```
32*7f296bb3SBarry Smith
33*7f296bb3SBarry Smith```{rubric} Mat:
34*7f296bb3SBarry Smith```
35*7f296bb3SBarry Smith
36*7f296bb3SBarry Smith- MatRegisterBaseName() changed to MatRegisterRootName()
37*7f296bb3SBarry Smith- Added -mat_mffd_complex to use complex number trick instead of
38*7f296bb3SBarry Smith  differencing to evaluate product; requires real functions but
39*7f296bb3SBarry Smith  complex configuration
40*7f296bb3SBarry Smith- Added initial support for HDF5 files I/O, particularly MATLAB
41*7f296bb3SBarry Smith  MAT-File Version 7.3, currently only for reading. See also
42*7f296bb3SBarry Smith  documentation of MatLoad().
43*7f296bb3SBarry Smith
44*7f296bb3SBarry Smith```{rubric} PC:
45*7f296bb3SBarry Smith```
46*7f296bb3SBarry Smith
47*7f296bb3SBarry Smith- PCGetSetUpFailedReason is now PCGetFailedReason()
48*7f296bb3SBarry Smith
49*7f296bb3SBarry Smith```{rubric} KSP:
50*7f296bb3SBarry Smith```
51*7f296bb3SBarry Smith
52*7f296bb3SBarry Smith- KSP_DIVERGED_PCSETUP_FAILED replaced with KSP_DIVERGED_PC_FAILED
53*7f296bb3SBarry Smith- Previously the KSP Chebyshev implementation always did one more
54*7f296bb3SBarry Smith  iteration than requested. For example -ksp_max_it 2 resulted in 3
55*7f296bb3SBarry Smith  Chebyshev iterations. This has been corrected. Due to this
56*7f296bb3SBarry Smith  correction your solver may seem to converge more slowely than it
57*7f296bb3SBarry Smith  previous has. Note that the multigrid solvers (PCMG, PCGAMG, PCML)
58*7f296bb3SBarry Smith  used by default Chebyshev (with 3 actual steps) in their smoother,
59*7f296bb3SBarry Smith  thus the multigrid solvers will now have seemingly different
60*7f296bb3SBarry Smith  convergence rates since they will now use only 2 actual steps. To
61*7f296bb3SBarry Smith  reproduce previous behavior change the number of smoother
62*7f296bb3SBarry Smith  iterations to match the previous actual amount, this can be done
63*7f296bb3SBarry Smith  with for example -mg_levels_ksp_max_it 3 (or
64*7f296bb3SBarry Smith  -prefix_mg_levels_ksp_max_it 3 if the KSP object has a prefix).
65*7f296bb3SBarry Smith
66*7f296bb3SBarry Smith```{rubric} SNES:
67*7f296bb3SBarry Smith```
68*7f296bb3SBarry Smith
69*7f296bb3SBarry Smith- Added SNESKSPTRANSPOSEONLY: a linear solver only SNES that solves
70*7f296bb3SBarry Smith  the transposed linear system.
71*7f296bb3SBarry Smith
72*7f296bb3SBarry Smith```{rubric} SNESLineSearch:
73*7f296bb3SBarry Smith```
74*7f296bb3SBarry Smith
75*7f296bb3SBarry Smith```{rubric} TS:
76*7f296bb3SBarry Smith```
77*7f296bb3SBarry Smith
78*7f296bb3SBarry Smith- Added TSADAPTHISTORY: a new TSAdapt implementation that follows a
79*7f296bb3SBarry Smith  given time history, that can set with TSAdaptHistorySetHistory().
80*7f296bb3SBarry Smith- Added TSTrajectoryGetVecs() to reconstructs states and time
81*7f296bb3SBarry Smith  derivative vectors from a TSTrajectory.
82*7f296bb3SBarry Smith
83*7f296bb3SBarry Smith```{rubric} TAO:
84*7f296bb3SBarry Smith```
85*7f296bb3SBarry Smith
86*7f296bb3SBarry Smith- Added extra void\* (context) pointer to the function prototype to
87*7f296bb3SBarry Smith  be passed as user-defined update function to TaoSetUpdate().
88*7f296bb3SBarry Smith
89*7f296bb3SBarry Smith```{rubric} DM/DA:
90*7f296bb3SBarry Smith```
91*7f296bb3SBarry Smith
92*7f296bb3SBarry Smith- Added DMStag and associated functions, for working with quantities
93*7f296bb3SBarry Smith  on regular staggered grids, in a manner similar to the usage of
94*7f296bb3SBarry Smith  DMDA for colocated quantities.
95*7f296bb3SBarry Smith- Added DMLocalToGlobal() and DMLocalToGlobal()
96*7f296bb3SBarry Smith
97*7f296bb3SBarry Smith```{rubric} DMPlex:
98*7f296bb3SBarry Smith```
99*7f296bb3SBarry Smith
100*7f296bb3SBarry Smith- Reorganized PetscDS handling completely in order to support
101*7f296bb3SBarry Smith  multiple subdomains. DMSetDS() was removed in favor of
102*7f296bb3SBarry Smith  DMSetField()+DMCreateDS().
103*7f296bb3SBarry Smith- Added additional PetscSF\* return argument to DMPlexGetGatherDM()
104*7f296bb3SBarry Smith  (made public) and DMPlexGetRedundantDM().
105*7f296bb3SBarry Smith
106*7f296bb3SBarry Smith```{rubric} PetscViewer:
107*7f296bb3SBarry Smith```
108*7f296bb3SBarry Smith
109*7f296bb3SBarry Smith- Added new command line options to GLVis viewer, see
110*7f296bb3SBarry Smith  PetscViewerGLVisOpen() manual page for details.
111*7f296bb3SBarry Smith
112*7f296bb3SBarry Smith- PetscViewerHDF5{Has,Read,Write}Attribute():
113*7f296bb3SBarry Smith
114*7f296bb3SBarry Smith  - take the input path as relative to the current (pushed) group
115*7f296bb3SBarry Smith  - support not only dataset attributes but also group attributes
116*7f296bb3SBarry Smith  - PetscViewerHDF5WriteAttribute() creates the group if it doesn't
117*7f296bb3SBarry Smith    exist
118*7f296bb3SBarry Smith  - PetscViewerHDF5HasAttribute() returns false if the parent path
119*7f296bb3SBarry Smith    doesn’t exist instead of failing
120*7f296bb3SBarry Smith
121*7f296bb3SBarry Smith- Added PetscViewerHDF5Has{Group,Object}()
122*7f296bb3SBarry Smith
123*7f296bb3SBarry Smith- Added PetscViewerHDF5{Has,Write,Read}ObjectAttribute()
124*7f296bb3SBarry Smith
125*7f296bb3SBarry Smith- PetscViewerHDF5OpenGroup() opens the root group (/) if none is
126*7f296bb3SBarry Smith  pushed
127*7f296bb3SBarry Smith
128*7f296bb3SBarry Smith```{rubric} SYS:
129*7f296bb3SBarry Smith```
130*7f296bb3SBarry Smith
131*7f296bb3SBarry SmithPetscOptionsGetViewer() takes a NULL or PetscOptions object as the
132*7f296bb3SBarry Smithsecond argument.
133*7f296bb3SBarry Smith.. rubric:: AO:
134*7f296bb3SBarry Smith
135*7f296bb3SBarry Smith```{rubric} Sieve:
136*7f296bb3SBarry Smith```
137*7f296bb3SBarry Smith
138*7f296bb3SBarry Smith```{rubric} Fortran:
139*7f296bb3SBarry Smith```
140