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