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