xref: /petsc/doc/changes/230.md (revision b11d9968bc79904c690b122f9399be46447eb113)
1*7f296bb3SBarry Smith# Changes: 2.3.0
2*7f296bb3SBarry Smith
3*7f296bb3SBarry Smith```{rubric} General:
4*7f296bb3SBarry Smith```
5*7f296bb3SBarry Smith
6*7f296bb3SBarry Smith- The equivalent of building BOPT=g, BOPT=O versions for
7*7f296bb3SBarry Smith  PETSC_ARCH=linux-gnu is now: config/configure.py [options]
8*7f296bb3SBarry Smith  -PETSC_ARCH=linux-gnu config/configure.py [options]
9*7f296bb3SBarry Smith  --with-debugging=0 -PETSC_ARCH=linux-gnu-opt
10*7f296bb3SBarry Smith- Python bindings added to PETSc. To use, configure with:
11*7f296bb3SBarry Smith  --with-python=1 ---with-shared=1 To build, use: 'make python'
12*7f296bb3SBarry Smith  after building PETSc libraries. Example in
13*7f296bb3SBarry Smith  src/snes/examples/tutorials/ex1.py
14*7f296bb3SBarry Smith- Options database keys -trmalloc[\_xxx] are changed to -malloc[\_xxx]
15*7f296bb3SBarry Smith- -get_resident_set_size and -trinfo are changed to -memory_info
16*7f296bb3SBarry Smith- PetscTrValid() -> PetscMallocValidate(), PetscTrDebug() ->
17*7f296bb3SBarry Smith  PetscMallocDebug()
18*7f296bb3SBarry Smith- -trdebug -> -malloc_debug
19*7f296bb3SBarry Smith- PetscGetResidentSetSize() -> PetscMemoryGetCurrentUsage(), added
20*7f296bb3SBarry Smith  PetscMemoryGetMaximumUsage() and PetscMemorySetGetMaximumUsage()
21*7f296bb3SBarry Smith- PetscTrSpace() -> PetscMallocGetCurrentUsage() and
22*7f296bb3SBarry Smith  PetscMallocGetMaximumUsage()
23*7f296bb3SBarry Smith- added PetscOptionsEnum() and PetscOptionsGetEnum()
24*7f296bb3SBarry Smith- added PetscBag object for managing user created structs including
25*7f296bb3SBarry Smith  initializing them and serializing them.
26*7f296bb3SBarry Smith- removed PetscSetCommWorld(). Now you can directly assign to
27*7f296bb3SBarry Smith  PETSC_COMM_WORLD before PetscInitialize().
28*7f296bb3SBarry Smith
29*7f296bb3SBarry Smith```{rubric} Vec:
30*7f296bb3SBarry Smith```
31*7f296bb3SBarry Smith
32*7f296bb3SBarry Smith- Faster generation of VecScatter for many processes when indices
33*7f296bb3SBarry Smith  are mostly sorted
34*7f296bb3SBarry Smith
35*7f296bb3SBarry Smith- Changed BLAS-type interfaces to PETSc-style:
36*7f296bb3SBarry Smith
37*7f296bb3SBarry Smith  - VecShift
38*7f296bb3SBarry Smith  - VecScale
39*7f296bb3SBarry Smith  - VecSet
40*7f296bb3SBarry Smith  - VecSetRandom
41*7f296bb3SBarry Smith  - VecAXPY
42*7f296bb3SBarry Smith  - VecAXPBY
43*7f296bb3SBarry Smith  - VecAYPX
44*7f296bb3SBarry Smith  - VecMAXPY
45*7f296bb3SBarry Smith  - VecWAXPY
46*7f296bb3SBarry Smith
47*7f296bb3SBarry Smith- Changed order of arguments in pointwise routines:
48*7f296bb3SBarry Smith
49*7f296bb3SBarry Smith  - VecPointwiseMult
50*7f296bb3SBarry Smith  - VecPointwiseMax
51*7f296bb3SBarry Smith  - VecPointwiseMin
52*7f296bb3SBarry Smith  - VecPointwiseMaxAbs
53*7f296bb3SBarry Smith  - VecPointwiseDivide
54*7f296bb3SBarry Smith
55*7f296bb3SBarry Smith```{rubric} Mat:
56*7f296bb3SBarry Smith```
57*7f296bb3SBarry Smith
58*7f296bb3SBarry Smith- Changed MatConvert to require a reuse parameter to denote inplace
59*7f296bb3SBarry Smith  conversion
60*7f296bb3SBarry Smith
61*7f296bb3SBarry Smith- Added Cholesky and ICC support to SeqBAIJ
62*7f296bb3SBarry Smith
63*7f296bb3SBarry Smith- Added the argument MatFactorInfo to MatLUFactorNumeric() and
64*7f296bb3SBarry Smith  MatCholeskyFactorNumeric()
65*7f296bb3SBarry Smith
66*7f296bb3SBarry Smith- Faster MatSetValues()
67*7f296bb3SBarry Smith
68*7f296bb3SBarry Smith- Faster parallel-matrix vector products
69*7f296bb3SBarry Smith
70*7f296bb3SBarry Smith- Changed MatCreate() to take only a communicator
71*7f296bb3SBarry Smith
72*7f296bb3SBarry Smith- Added MatSetSize() to specify matrix sizes
73*7f296bb3SBarry Smith
74*7f296bb3SBarry Smith- Changed BLAS-type interfaces to PETSc-style:
75*7f296bb3SBarry Smith
76*7f296bb3SBarry Smith  - MatAXPY
77*7f296bb3SBarry Smith  - MatAYPX
78*7f296bb3SBarry Smith  - MatScale
79*7f296bb3SBarry Smith  - MatShift
80*7f296bb3SBarry Smith
81*7f296bb3SBarry Smith- Change MatZeroRows() and MatZeroRowsLocal() to use arrays, and
82*7f296bb3SBarry Smith  added IS versions
83*7f296bb3SBarry Smith
84*7f296bb3SBarry Smith```{rubric} PC:
85*7f296bb3SBarry Smith```
86*7f296bb3SBarry Smith
87*7f296bb3SBarry Smith- Added PCILUReorderForNonzeroDiagonal() and
88*7f296bb3SBarry Smith  PCLUReorderForNonzeroDiagonal()
89*7f296bb3SBarry Smith- Replace PCLUSetDamping(), PCILUSetDamping(),
90*7f296bb3SBarry Smith  PCCholeskySetDamping() and PCICCSetDamping() by
91*7f296bb3SBarry Smith  PCFactorSetShiftNonzero(). Change the option database keys
92*7f296bb3SBarry Smith  -pc_lu_damping, -pc_ilu_damping, -pc_cholesky_damping and
93*7f296bb3SBarry Smith  -pc_icc_damping to -pc_factor_shift_nonzero
94*7f296bb3SBarry Smith- Replace PCLUSetShift(), PCILUSetShift(), PCCholeskySetShift() and
95*7f296bb3SBarry Smith  PCICCSetShift() by PCFactorSetShiftPd(). Change the option
96*7f296bb3SBarry Smith  database keys -pc_lu_shift, -pc_ilu_shift, -pc_cholesky_shift and
97*7f296bb3SBarry Smith  -pc_icc_shift to -pc_factor_shfit_positive_definite
98*7f296bb3SBarry Smith- PCMG: will automatically using the outer pmat operator to define
99*7f296bb3SBarry Smith  the finest level operator if not user supplied
100*7f296bb3SBarry Smith- PCMG: added MGUseGalerkin(), -pc_mg_galerkin option to have
101*7f296bb3SBarry Smith  coarser grid matrices computed from the finest grid matrix
102*7f296bb3SBarry Smith- PCMG: now does referencing counting on set vectors and
103*7f296bb3SBarry Smith  restriction/interpolation matrices so user need not keep reference
104*7f296bb3SBarry Smith  to free later
105*7f296bb3SBarry Smith- PCMG: if user does not provide restriction the interpolation is
106*7f296bb3SBarry Smith  used and vis versa
107*7f296bb3SBarry Smith- PCMG: if user does not provide Vecs for each level, will
108*7f296bb3SBarry Smith  automatically provide them
109*7f296bb3SBarry Smith- All routines that began with MG now begin with PCMG
110*7f296bb3SBarry Smith- Added PCShellSet/GetContext() and removed the context passed into
111*7f296bb3SBarry Smith  PCSetApply() and PCSetApplyRichardson()
112*7f296bb3SBarry Smith
113*7f296bb3SBarry Smith```{rubric} KSP:
114*7f296bb3SBarry Smith```
115*7f296bb3SBarry Smith
116*7f296bb3SBarry Smith- -ksp_cg_Hermitian and -ksp_cg_symmetric have been changed to
117*7f296bb3SBarry Smith  -ksp_cg_type Hermitian or symmetric
118*7f296bb3SBarry Smith- Changed options for -ksp_gmres_cgs_refinement_type from never or
119*7f296bb3SBarry Smith  ifneeded or always to REFINE_NEVER or REFINE_IFNEEDED or
120*7f296bb3SBarry Smith  REFINE_ALWAYS
121*7f296bb3SBarry Smith
122*7f296bb3SBarry Smith```{rubric} config/configure.py:
123*7f296bb3SBarry Smith```
124*7f296bb3SBarry Smith
125*7f296bb3SBarry Smith```{rubric} SNES:
126*7f296bb3SBarry Smith```
127*7f296bb3SBarry Smith
128*7f296bb3SBarry Smith- Changed the name and calling sequence for SNESSetLineSearchCheck()
129*7f296bb3SBarry Smith  to SNESLineSearchSetPostCheck() and added a
130*7f296bb3SBarry Smith  SNESLineSearchSetPreCheck()
131*7f296bb3SBarry Smith
132*7f296bb3SBarry Smith- Changed the names of all SNESxxxxLineSearchyyyy() to
133*7f296bb3SBarry Smith  SNESLineSearchxxxxyyyy() per PETSc naming standard.
134*7f296bb3SBarry Smith
135*7f296bb3SBarry Smith- Now allow a constant vector to be specified in SNESSolve()
136*7f296bb3SBarry Smith
137*7f296bb3SBarry Smith- Removed the Vec argument from SNESSetUp()
138*7f296bb3SBarry Smith
139*7f296bb3SBarry Smith- Corrected the order of function and context arguments in:
140*7f296bb3SBarry Smith
141*7f296bb3SBarry Smith  - SNESGetFunction()
142*7f296bb3SBarry Smith  - SNESGetJacobian()
143*7f296bb3SBarry Smith
144*7f296bb3SBarry Smith```{rubric} TS:
145*7f296bb3SBarry Smith```
146*7f296bb3SBarry Smith
147*7f296bb3SBarry Smith```{rubric} DA:
148*7f296bb3SBarry Smith```
149*7f296bb3SBarry Smith
150*7f296bb3SBarry Smith- Added DAVecGet/RestoreArrayDOF() allowing indexing in the
151*7f296bb3SBarry Smith  dimension of degrees of freedom at each point on the lattice.
152*7f296bb3SBarry Smith- Faster DAGlobalToLocal() etc for dof > 1.
153*7f296bb3SBarry Smith
154*7f296bb3SBarry Smith```{rubric} DMMG:
155*7f296bb3SBarry Smith```
156*7f296bb3SBarry Smith
157*7f296bb3SBarry Smith- Consolidated DMMG functionality into the new header file
158*7f296bb3SBarry Smith  "petscdmmg.h".
159*7f296bb3SBarry Smith
160*7f296bb3SBarry Smith```{rubric} SYS:
161*7f296bb3SBarry Smith```
162*7f296bb3SBarry Smith
163*7f296bb3SBarry Smith- PetscSetCommWorld() removed. [one can directly do PETSC_COMM_WORLD
164*7f296bb3SBarry Smith  = comm - before PetscInitialize()]
165*7f296bb3SBarry Smith
166*7f296bb3SBarry Smith```{rubric} Fortran:
167*7f296bb3SBarry Smith```
168*7f296bb3SBarry Smith
169*7f296bb3SBarry Smith```{rubric} ExternalPackages:
170*7f296bb3SBarry Smith```
171*7f296bb3SBarry Smith
172*7f296bb3SBarry Smith- ML support added.
173