xref: /petsc/doc/changes/211.md (revision 174dc0c8cee294b82b85e4dd3b331b29396264fc)
1# Changes: 2.1.1
2
3## Changes
4
5(See [Features] below)
6
7```{rubric} General:
8```
9
10- Scalar -> PetscScalar (and added PetscReal)
11
12- The make files are reorganized. bmake/\$\{PETSC_ARCH}/base_variables
13  -> variables, and base.site -> packages. base ->rules.
14
15- If using makefiles from earlier version of PETSc, change
16
17  - `include ${PETSC_DIR}/bmake/${PETSC_ARCH}/base`
18
19  to
20
21  - `include ${PETSC_DIR}/conf/base`
22
23- The Microsoft Windows build of PETSc with win32_gnu, win32_intel and
24  win32_mpich now default to using MPICH-1.2.3The complex version of
25  the PETSc libraries can only be installed with C++ compilers that
26  provide the std::complex implementation.
27
28```{rubric} AO (Application Orderings):
29```
30
31```{rubric} TS (Timestepping Solvers):
32```
33
34```{rubric} DMMG
35```
36
37- Default Krylov method on outer linear solver is now FGMRES instead
38  of GMRES. Also default multigrid type is now full instead of
39  multiplicative
40
41```{rubric} SNES (Nonlinear Solvers):
42```
43
44```{rubric} SLES (Linear Solvers):
45```
46
47```{rubric} KSP (Krylov Subspace Methods):
48```
49
50- All KSP methods with left preconditioning use the preconditioned
51  residual by default (before CG, CR used the unpreconditioned
52  residual). Use -ksp_norm_type
53  \<none,preconditioned,unpreconditioned,natural> to change it, see
54  next bullet.
55- `KSPSetInitialGuessNonzero(), KSPSetComputeSingularValues(), KSPSetComputeEigenvalues(),`
56  all now take a PetscTruth as the second argument allowing them to
57  each be toggled on or off
58- `KSPSetAvoidNorms(), KSPSetUseUnpreconditionedResidual(),             KSPSetComputeResidual()`
59  have all been merged into `KSPSetNormType()`
60
61```{rubric} PC (Preconditioners):
62```
63
64```{rubric} MAT (Matrices):
65```
66
67- Added additional local relaxation argument to `MatRelax()`
68
69- Added additional argument to `MatAXPY()`
70
71  - MatSNESMFFormJacobian() has been renamed to
72    MatSNESMFComputeJacobian()
73  - added another field to MatLUInfo and MatILUInfo
74  - MatCreate() now requires a call to MatSetType() or
75    MatSetFromOptions()
76  - The MatType is assigned in either of these calls.
77
78```{rubric} DA (Distributed Arrays):
79```
80
81In order to set the grid sizes with -da_grid_x, -da_grid_y,
82-da_grid_z one must pass in negative values for the M, N, and P
83arguments in the call to DACreateXX(). If values are not set from the
84options database then the absolute value of the M,N,P is used as the
85default.
86
87- Changed DAGetColoring() to two routines, DAGetColoring() and
88  DAGetMatrix()
89
90```{rubric} VEC (Vectors):
91```
92
93- Changed VecCreate() to no longer take in size arguments. Use
94  VecCreate() & VecSetSizes()
95
96```{rubric} IS (Index Sets):
97```
98
99- Changed IS_COLORING_LOCAL to IS_COLORING_GHOSTED and
100  IS_COLORING_GLOBAL to IS_COLORING_LOCAL
101
102```{rubric} General:
103```
104
105`PetscOptionsGetDouble()` is now `PetscOptionsGetReal()`
106.. rubric:: Draw (Graphics):
107
108```{rubric} Viewers:
109```
110
111```{rubric} System:
112```
113
114```{rubric} Error Handling:
115```
116
117```{rubric} Event Logging:
118```
119
120Logging functionality is completely reworked. Now one can register
121new stages, classes and events. Every event is associated with a
122class. So, users would have to create a class for all userevents.
123
124- `PetscLogStageRegister()` now takes an int * as the first
125  argument
126- `PetscLogEventRegister()` takes an int as the third argument,
127  not a char \*
128
129```{rubric} Fortran Interface:
130```
131
132## Features
133
134(See [Changes] above)
135
136```{rubric} General:
137```
138
139- configure can now be used to build PETSc on some architectures.
140  Currently tested on Linux, IRIX, Solaris machines.We'd like your
141  feedback on this feature; please send `configure_petsc.log` and
142  `config.log`when reporting problems with configure.
143- Added support for ESI vectors and matrices. Use BOPT=g_c++ or
144  O_c++Better
145- support for automatic differentiation with ADIC
146
147```{rubric} AO (Application Orderings):
148```
149
150```{rubric} TS (Timestepping Solvers):
151```
152
153```{rubric} SNES (Nonlinear Solvers):
154```
155
156```{rubric} SLES (Linear Solvers):
157```
158
159```{rubric} KSP (Krylov Subspace Methods):
160```
161
162```{rubric} PC (Preconditioners):
163```
164
165- added -pc_lu_zeropivot and -pc_ilu_zeropivot (still need function
166  interfaces)
167
168```{rubric} MAT (Matrices):
169```
170
171```{rubric} DA (Distributed Arrays):
172```
173
174Added DAGetArray() and DARestoreArray() that give workspace
175appropriate for a local function. These may be used in routines that
176diverentiated with ADIC:-)
177.. rubric:: VEC (Vectors):
178
179- Added the utility routines which do special cases of vecscatters
180  VecConvertMPIToSeqAll(),VecConvertMPIToMPIZero()
181
182```{rubric} IS (Index Sets):
183```
184
185```{rubric} PF:
186```
187
188```{rubric} Draw (Graphics):
189```
190
191- added DrawEllipse()
192
193```{rubric} Viewers:
194```
195
196- added PetscViewerASCIISetMode()
197
198```{rubric} System:
199```
200
201```{rubric} Error Handling:
202```
203
204```{rubric} Event Logging:
205```
206
207```{rubric} Fortran Interface:
208```
209