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