xref: /petsc/doc/changes/21.md (revision b11d9968bc79904c690b122f9399be46447eb113)
1*7f296bb3SBarry Smith# Changes: 2.1.0
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- Simpler interface for structured grids, see
11*7f296bb3SBarry Smith  src/snes/examples/tutorials/ex5.c
12*7f296bb3SBarry Smith- "System routines" including PLog..., Options..., Viewer...,
13*7f296bb3SBarry Smith  Draw...., FList...,OList... now all begin with the string Petsc.
14*7f296bb3SBarry Smith  For example, PetscOptionsGetInt() and PetscLogBegin().
15*7f296bb3SBarry Smith- The calling sequence for PetscMalloc() was changed to return and
16*7f296bb3SBarry Smith  error code and deliver the pointer as a new final argument. Due to
17*7f296bb3SBarry Smith  this change, the macros CHKPTRA() and CHKPTRQ() were dropped.
18*7f296bb3SBarry Smith
19*7f296bb3SBarry Smith```{rubric} AO (Application Orderings):
20*7f296bb3SBarry Smith```
21*7f296bb3SBarry Smith
22*7f296bb3SBarry Smith```{rubric} TS (Timestepping Solvers):
23*7f296bb3SBarry Smith```
24*7f296bb3SBarry Smith
25*7f296bb3SBarry Smith```{rubric} SNES (Nonlinear Solvers):
26*7f296bb3SBarry Smith```
27*7f296bb3SBarry Smith
28*7f296bb3SBarry Smith```{rubric} SLES (Linear Solvers):
29*7f296bb3SBarry Smith```
30*7f296bb3SBarry Smith
31*7f296bb3SBarry Smith```{rubric} KSP (Krylov Subspace Methods):
32*7f296bb3SBarry Smith```
33*7f296bb3SBarry Smith
34*7f296bb3SBarry Smith```{rubric} PC (Preconditioners):
35*7f296bb3SBarry Smith```
36*7f296bb3SBarry Smith
37*7f296bb3SBarry Smith```{rubric} MAT (Matrices):
38*7f296bb3SBarry Smith```
39*7f296bb3SBarry Smith
40*7f296bb3SBarry Smith- When using MatCreate(), you must follow with a MatSetType() or
41*7f296bb3SBarry Smith  MatSetFromOptions() before using the matrix.
42*7f296bb3SBarry Smith- Changed
43*7f296bb3SBarry Smith  `int             MatShellSetOperation(Mat,MatOperation,void*);`
44*7f296bb3SBarry Smith  to
45*7f296bb3SBarry Smith  `int             MatShellSetOperation(Mat,MatOperation,void(*)());`
46*7f296bb3SBarry Smith- Changed
47*7f296bb3SBarry Smith  `int             MatShellGetOperation(Mat,MatOperation,void**);`
48*7f296bb3SBarry Smith  to
49*7f296bb3SBarry Smith  `int             MatShellGetOperation(Mat,MatOperation,void(**)());`
50*7f296bb3SBarry Smith- Changed IncompleteCholesky to ICC
51*7f296bb3SBarry Smith
52*7f296bb3SBarry Smith```{rubric} DA (Distributed Arrays):
53*7f296bb3SBarry Smith```
54*7f296bb3SBarry Smith
55*7f296bb3SBarry Smith- Changed the DAMG routines to DMMG routines.
56*7f296bb3SBarry Smith- DAGetColoring() now has new second argument that takes either
57*7f296bb3SBarry Smith  IS_COLORING_GLOBAL or IS_COLOR_GLOBAL and a new third argument
58*7f296bb3SBarry Smith  that takes the matrix type of either MATMPIAIJ or MATMPIBAIJ.
59*7f296bb3SBarry Smith
60*7f296bb3SBarry Smith```{rubric} VEC (Vectors):
61*7f296bb3SBarry Smith```
62*7f296bb3SBarry Smith
63*7f296bb3SBarry Smith- Changed `int VecSetOperation(Vec,VecOperation,void*);` to
64*7f296bb3SBarry Smith  `int VecSetOperation(Vec,VecOperation,void(*)());`
65*7f296bb3SBarry Smith
66*7f296bb3SBarry Smith```{rubric} IS (Index Sets):
67*7f296bb3SBarry Smith```
68*7f296bb3SBarry Smith
69*7f296bb3SBarry Smith```{rubric} General:
70*7f296bb3SBarry Smith```
71*7f296bb3SBarry Smith
72*7f296bb3SBarry Smith```{rubric} Draw (Graphics):
73*7f296bb3SBarry Smith```
74*7f296bb3SBarry Smith
75*7f296bb3SBarry Smith```{rubric} Viewers:
76*7f296bb3SBarry Smith```
77*7f296bb3SBarry Smith
78*7f296bb3SBarry Smith```{rubric} System:
79*7f296bb3SBarry Smith```
80*7f296bb3SBarry Smith
81*7f296bb3SBarry Smith```{rubric} Error Handling:
82*7f296bb3SBarry Smith```
83*7f296bb3SBarry Smith
84*7f296bb3SBarry Smith- CHKERRA() is now obselete; use CHKERRQ() instead. Changed the
85*7f296bb3SBarry Smith  calling sequence of SETERRQ() to eliminate the second input
86*7f296bb3SBarry Smith  parameter.
87*7f296bb3SBarry Smith
88*7f296bb3SBarry Smith```{rubric} Event Logging:
89*7f296bb3SBarry Smith```
90*7f296bb3SBarry Smith
91*7f296bb3SBarry Smith```{rubric} Fortran Interface:
92*7f296bb3SBarry Smith```
93*7f296bb3SBarry Smith
94*7f296bb3SBarry Smith## Features
95*7f296bb3SBarry Smith
96*7f296bb3SBarry Smith(See [Changes] above)
97*7f296bb3SBarry Smith
98*7f296bb3SBarry Smith```{rubric} General:
99*7f296bb3SBarry Smith```
100*7f296bb3SBarry Smith
101*7f296bb3SBarry Smith- Simpler interface for structured grids, see
102*7f296bb3SBarry Smith  src/snes/examples/tutorials/ex5.c
103*7f296bb3SBarry Smith- Complete infrastructure for parallel multigrid for linear and
104*7f296bb3SBarry Smith  nonlinear problems on structured grids. See
105*7f296bb3SBarry Smith  src/snes/examples/tutorials/ex19.c
106*7f296bb3SBarry Smith- Added manual pages for PETSc objects, enums etc.
107*7f296bb3SBarry Smith- Added html version of all source code and examples, accessible
108*7f296bb3SBarry Smith  from docs/index.html and the manual pages.
109*7f296bb3SBarry Smith
110*7f296bb3SBarry Smith```{rubric} AO (Application Orderings):
111*7f296bb3SBarry Smith```
112*7f296bb3SBarry Smith
113*7f296bb3SBarry Smith```{rubric} TS (Timestepping Solvers):
114*7f296bb3SBarry Smith```
115*7f296bb3SBarry Smith
116*7f296bb3SBarry Smith```{rubric} SNES (Nonlinear Solvers):
117*7f296bb3SBarry Smith```
118*7f296bb3SBarry Smith
119*7f296bb3SBarry Smith```{rubric} SLES (Linear Solvers):
120*7f296bb3SBarry Smith```
121*7f296bb3SBarry Smith
122*7f296bb3SBarry Smith```{rubric} KSP (Krylov Subspace Methods):
123*7f296bb3SBarry Smith```
124*7f296bb3SBarry Smith
125*7f296bb3SBarry Smith- Added support for "diagonal scaling" of preconditioned system as
126*7f296bb3SBarry Smith  required by most ODE integrators via PCDiagonalScaleSet().
127*7f296bb3SBarry Smith
128*7f296bb3SBarry Smith```{rubric} PC (Preconditioners):
129*7f296bb3SBarry Smith```
130*7f296bb3SBarry Smith
131*7f296bb3SBarry Smith```{rubric} MAT (Matrices):
132*7f296bb3SBarry Smith```
133*7f296bb3SBarry Smith
134*7f296bb3SBarry Smith- Added the Henry Tufo/Paul Fischer libtfs scalable parallel direct
135*7f296bb3SBarry Smith  solver for MPIAIJ matrices.
136*7f296bb3SBarry Smith- Added routine MatFDColoringSetRecompute().
137*7f296bb3SBarry Smith
138*7f296bb3SBarry Smith```{rubric} DA (Distributed Arrays):
139*7f296bb3SBarry Smith```
140*7f296bb3SBarry Smith
141*7f296bb3SBarry Smith- Added DAVecGetArray() to access the multidimensional arrays
142*7f296bb3SBarry Smith  directly in the global parallel indexing. See
143*7f296bb3SBarry Smith  src/snes/examples/tutorials/ex5.c and ex19.c
144*7f296bb3SBarry Smith- Add DAGetLocalVector()/DARestoreLocalVector() for inexpensive
145*7f296bb3SBarry Smith  access to local work vectors.
146*7f296bb3SBarry Smith
147*7f296bb3SBarry Smith```{rubric} VEC (Vectors):
148*7f296bb3SBarry Smith```
149*7f296bb3SBarry Smith
150*7f296bb3SBarry Smith- Added DMComposite routines to help with PDE optimization and
151*7f296bb3SBarry Smith  multicomponent PDEs.
152*7f296bb3SBarry Smith
153*7f296bb3SBarry Smith```{rubric} IS (Index Sets):
154*7f296bb3SBarry Smith```
155*7f296bb3SBarry Smith
156*7f296bb3SBarry Smith```{rubric} PF:
157*7f296bb3SBarry Smith```
158*7f296bb3SBarry Smith
159*7f296bb3SBarry Smith```{rubric} Draw (Graphics):
160*7f296bb3SBarry Smith```
161*7f296bb3SBarry Smith
162*7f296bb3SBarry Smith```{rubric} Viewers:
163*7f296bb3SBarry Smith```
164*7f296bb3SBarry Smith
165*7f296bb3SBarry Smith```{rubric} System:
166*7f296bb3SBarry Smith```
167*7f296bb3SBarry Smith
168*7f296bb3SBarry Smith```{rubric} Error Handling:
169*7f296bb3SBarry Smith```
170*7f296bb3SBarry Smith
171*7f296bb3SBarry Smith```{rubric} Event Logging:
172*7f296bb3SBarry Smith```
173*7f296bb3SBarry Smith
174*7f296bb3SBarry Smith```{rubric} Fortran Interface:
175*7f296bb3SBarry Smith```
176