xref: /petsc/doc/changes/233.md (revision f8b9f887efa5534f423807e37a1fe2e87d779bac)
1# Changes: 2.3.3
2
3```{rubric} General:
4```
5
6- PetscInitialize() will now also check for options in .petscrc
7  unless -skip_petscrc is used (note that since the file options are
8  checked before the command line you cannot pass -skip_petscrc on
9  the command line it must be passed in the file passed into
10  PetscInitialize().
11- When a filename is passed into PetscInitialize() ~/.petscrc and
12  .petscrc are checked ALSO (they used to be skipped when a filename
13  was passed in) unless -skip_petscrc is passed in the input file
14- PetscMapInitialize() has been split into PetscMapInitialize() that
15  is called before the Map is ever used and then PetscMapSetUp()
16  which is called after the blocksize and local or global size is
17  set and determines the ranges etc.
18- When a filename is passed into PetscInitialize() ~/.petscrc and
19  .petscrc are checked ALSO (they used to be skipped when a filename
20  was passed in) unless -skip_petscrc is passed in the input file
21- PetscMapInitialize() has been split into PetscMapInitialize() that
22  is called before the Map is ever used and then PetscMapSetUp()
23  which is called after the blocksize and local or global size is
24  set and determines the ranges etc.
25- Changed the use of mpirun throughout the source to mpiexec; this
26  includes petscmpirun -> petscmpiexec. Of course, PETSc will still
27  work fine with MPI implementations that use mpirun.
28- Add fortran interface to PetscBag routines
29
30```{rubric} config/configure.py:
31```
32
33- F90 interface is now enabled by default [if the compiler is
34  detected to be a f90 compiler]. i.e --with-f90-interface options
35  is not required. The f90 interface impl used is a new universal
36  one. However if you wish to use the old compiler specific one,
37  then specify --with-f90-interface=nof90src [for configure to
38  autodetect] or specify the appropriate one - like:
39  --with-f90-interface=intel8
40
41```{rubric} IS:
42```
43
44- changed IS_COLORING_LOCAL to IS_COLORING_GLOBAL
45
46```{rubric} Vec:
47```
48
49```{rubric} VecScatter:
50```
51
52- Change prototype for VecScatterBegin() and VecScatterEnd() [now
53  the first argument is VecScatter]
54
55```{rubric} Mat:
56```
57
58- moved most of SNESMF implementation into mat/impls/mffd
59- MatMFFD is now a regular matrix type registered in
60  MatRegisterAll()
61- changed SNESMF to MFFD for all previous SNESMF routines, except
62  MatCreateSNESMF()
63- -snes_mf_option changed to -mat_mffd_option except for -snes_mf
64  and -snes_mf_operator
65- SNES_KSP_EW... changed to SNESKSPWE... and SNES_KSP_EW_ConvCtx to
66  SNESKSPEW
67- MatGetRowIJ(), MatGetColumnIJ(), MatRestoreRowIJ(),
68  MatRestoreColumnIJ() now take an extra argument
69
70```{rubric} PC:
71```
72
73- changed PCMGSetCycles() and PCMGSetCyclesOnLevel() to
74  PCMGSetCycleType() and PCMGSetCycleTypeOnLevel() that take a
75  PCMGCycleType as argument and changed -pc_mg_cycles 1 or 2 to
76  -pc_mg_cycle_type v or w
77- added PCMGMultiplicativeSetCycles() and
78  -pc_mg_multiplicative_cycles
79- PCMGSetInterpolate() --> PCMGSetInterpolation()
80- added PCREDUNDANT type, PCRedundantSetNumber() and
81  -pc_redundant_number
82
83```{rubric} KSP:
84```
85
86- Changed KSPNormTypes to have consistent naming , i.e
87
88  - KSP_NO_NORM -> KSP_NORM_NO
89  - KSP_PRECONDITIONED_NORM -> KSP_NORM_PRECONDITIONED
90  - KSP_UNPRECONDITIONED_NORM -> KSP_NORM_UNPRECONDITIONED
91  - KSP_NATURAL_NORM -> KSP_NORM_NATURAL
92
93- The following function names are changed to be consistent:
94
95  - KSPSetMonitor -> KSPMonitorSet
96  - KSPClearMonitor -> KSPMonitorCancel
97  - KSPSingularValueMonitor -> KSPMonitorSingularValue
98  - KSPDefaultMonitor -> KSPMonitorDefault
99  - KSPTrueMonitor -> KSPMonitorTrueResidualNorm
100  - KSPDefaultSMonitor -> KSPMonitorDefaultShort
101  - KSPVecViewMonitor -> KSPMonitorSolution
102  - KSPGMRESKrylovMonitor -> KSPGMRESMonitorKrylov
103  - KSPLGMonitorCreate -> KSPMonitorLGCreate
104  - KSPLGMonitor -> KSPMonitorLG
105  - KSPLGMonitorDestroy -> KSPMonitorLGDestroy
106  - KSPLGTrueMonitorCreate -> KSPMonitorLGTrueResidualNormCreate
107  - KSPLGTrueMonitor -> KSPMonitorLGTrueResidualNorm
108  - KSPLGTrueMonitorDestroy -> KSPMonitorLGTrueResidualNormDestroy
109
110- Following names are changed
111
112  - KSP_CONVERGED_STCG_NEG_CURVE -> KSP_CONVERGED_CG_NEG_CURVE
113  - KSP_CONVERGED_STCG_CONSTRAINED -> KSP_CONVERGED_CG_CONSTRAINED
114
115```{rubric} SNES:
116```
117
118```{rubric} TS:
119```
120
121- TSSetRHSMatrix() and TSSetLHSMatrix() were replaced by
122  TSSetMatrices()
123- TSGetRHSMatrix() was replaced by TSGetMatrices()
124
125```{rubric} DA:
126```
127
128```{rubric} DMMG:
129```
130
131```{rubric} SYS:
132```
133
134```{rubric} AO:
135```
136
137- AOData object and corresponding functionality is now removed for
138  PETSc
139
140```{rubric} Sieve:
141```
142
143- Added support for 2D and 3D mesh generation and refinement
144- Added support for mesh partitioning and distribution
145- Added support for partitioning based upon arbitrary dimensional
146  entities, e.g. vertices, faces, etc.
147- Added support for FIAT element generation
148- Added support for higher order elements
149- Added Poisson problem example in separate repository
150
151```{rubric} Fortran:
152```
153
154```{rubric} ExternalPackages:
155```
156
157- Hypre interface is updated to use version 2.0.0
158- Mumps interface is updated to use version 4.7.3
159- fftw interface is updated to use v3.2alpha2
160