1*7f296bb3SBarry Smith# Changes: 3.1 2*7f296bb3SBarry Smith 3*7f296bb3SBarry Smith```{rubric} General: 4*7f296bb3SBarry Smith``` 5*7f296bb3SBarry Smith 6*7f296bb3SBarry Smith- PetscOptionsHasName() and PetscOptionsName() now return PETSC_TRUE 7*7f296bb3SBarry Smith if the options are set to any value, include false or 0. You may 8*7f296bb3SBarry Smith need to change some of your PetscOptionsXXName() to 9*7f296bb3SBarry Smith PetscOptionsXXTruth() 10*7f296bb3SBarry Smith- Added configure option --with-single-library that causes all PETSc 11*7f296bb3SBarry Smith code to be compiled into the single library libpetsc.XXX 12*7f296bb3SBarry Smith- PetscMap changed to PetscLayout and PetscMapInitialize() changed 13*7f296bb3SBarry Smith to PetscLayoutCreate() and it now allocates the space of the 14*7f296bb3SBarry Smith object. 15*7f296bb3SBarry Smith- In makefiles include \$\{PETSC_DIR}/conf/base is replaced with two 16*7f296bb3SBarry Smith lines include \$\{PETSC_DIR}/conf/variables and include 17*7f296bb3SBarry Smith \$\{PETSC_DIR}/conf/rules 18*7f296bb3SBarry Smith- BlockSolve95 interface is removed 19*7f296bb3SBarry Smith- petsc.h and petscdef.h are replaced with petscsys.h and 20*7f296bb3SBarry Smith petscsysdef.h; while petsc.h now includes ALL PETSc include files. 21*7f296bb3SBarry Smith- win32fe [used for MS/Intel compiler builds on windows] now 22*7f296bb3SBarry Smith defaults to 'noautodetect' mode. However the previous behavior can 23*7f296bb3SBarry Smith be restored by using the option '--autodetect'. For eg: 24*7f296bb3SBarry Smith '--withcc=win32fe cl --autodetect'. This works primarily with old 25*7f296bb3SBarry Smith VC6/VC7/Intel8 etc compilers anyway. 26*7f296bb3SBarry Smith 27*7f296bb3SBarry Smith```{rubric} Logging: 28*7f296bb3SBarry Smith``` 29*7f296bb3SBarry Smith 30*7f296bb3SBarry Smith- PetscLogFlops(int) ->PetscLogFlops(PetscLogDouble). [check fortran 31*7f296bb3SBarry Smith usage] 32*7f296bb3SBarry Smith 33*7f296bb3SBarry Smith```{rubric} config/configure.py: 34*7f296bb3SBarry Smith``` 35*7f296bb3SBarry Smith 36*7f296bb3SBarry Smith- All ./configure options that state known values, so that 37*7f296bb3SBarry Smith ./configure doesn't try to test for them. Often used with the 38*7f296bb3SBarry Smith --with-batch option now begin with --known- 39*7f296bb3SBarry Smith 40*7f296bb3SBarry Smith```{rubric} IS: 41*7f296bb3SBarry Smith``` 42*7f296bb3SBarry Smith 43*7f296bb3SBarry Smith```{rubric} Vec: 44*7f296bb3SBarry Smith``` 45*7f296bb3SBarry Smith 46*7f296bb3SBarry Smith```{rubric} VecScatter: 47*7f296bb3SBarry Smith``` 48*7f296bb3SBarry Smith 49*7f296bb3SBarry Smith```{rubric} Mat: 50*7f296bb3SBarry Smith``` 51*7f296bb3SBarry Smith 52*7f296bb3SBarry Smith- MatGetSubMatrix: 53*7f296bb3SBarry Smith 54*7f296bb3SBarry Smith - Now takes a parallel IS for the columns, the csize argument has 55*7f296bb3SBarry Smith been dropped. The local part of this IS corresponds to the 56*7f296bb3SBarry Smith local columns of the new submatrix. 57*7f296bb3SBarry Smith 58*7f296bb3SBarry Smith- MatGetSubMatrixRaw 59*7f296bb3SBarry Smith 60*7f296bb3SBarry Smith - Removed, use MatGetSubMatrix 61*7f296bb3SBarry Smith 62*7f296bb3SBarry Smith- Changed name of option MAT_KEEP_ZEROED_ROWS to 63*7f296bb3SBarry Smith MAT_KEEP_NONZERO_PATTERN to more clearly indicate what it does. 64*7f296bb3SBarry Smith 65*7f296bb3SBarry Smith- Added MAT_SHARE_NONZERO_PATTERN as option for MatDuplicate() this 66*7f296bb3SBarry Smith allows several matrices to share the same data structures for the 67*7f296bb3SBarry Smith nonzeros and thus save memory. 68*7f296bb3SBarry Smith 69*7f296bb3SBarry Smith- The function provided to MatNullSpaceSetFunction() now takes a 70*7f296bb3SBarry Smith MatNullSpace() as the first argument. Added Fortran interface for 71*7f296bb3SBarry Smith this function as well. 72*7f296bb3SBarry Smith 73*7f296bb3SBarry Smith- Removed MatPBRelax() merged its functionality into MatRelax() 74*7f296bb3SBarry Smith 75*7f296bb3SBarry Smith- Changed MatRelax() to MatSOR() to match MatSORType() and PCSOR 76*7f296bb3SBarry Smith 77*7f296bb3SBarry Smith- Removed requirement that rows be sorted in 78*7f296bb3SBarry Smith MatCreateMPIAIJWithArrays() and MatMPIAIJSetPreallocationCSR(). 79*7f296bb3SBarry Smith 80*7f296bb3SBarry Smith- Changed MATOP_DIAGONAL_SHIFT to MATOP_DIAGONAL_SET to match 81*7f296bb3SBarry Smith function name MatDiagonalSet(). 82*7f296bb3SBarry Smith 83*7f296bb3SBarry Smith- MATMPIROWBS i.e BlockSolve95 interface is now removed. 84*7f296bb3SBarry Smith 85*7f296bb3SBarry Smith```{rubric} PC: 86*7f296bb3SBarry Smith``` 87*7f296bb3SBarry Smith 88*7f296bb3SBarry Smith- PCShell All user-provided functions now have PC as first argument 89*7f296bb3SBarry Smith instead of the application context. Users should obtain the 90*7f296bb3SBarry Smith context with PCShellGetContext, similar to MatShell. 91*7f296bb3SBarry Smith- Removed -pc_asm_in_place and PCASMSetUseInPlace() since the option 92*7f296bb3SBarry Smith made no sense 93*7f296bb3SBarry Smith- PCApplyRichardson() has an additional argument indicating if the 94*7f296bb3SBarry Smith initial guess being passed in is nonzero. SOR will save some work 95*7f296bb3SBarry Smith if it is zero. 96*7f296bb3SBarry Smith- MatSetBlockSize() is no longer an error for BAIJ matrices, but the 97*7f296bb3SBarry Smith argument must be the same as when the matrix was preallocated. 98*7f296bb3SBarry Smith- PCFactorSetPivoting() renamed to PCFactorSetColumnPivot() 99*7f296bb3SBarry Smith- Replaced PCFactorSetShiftNonzero(), PCFactorSetShiftPd() and 100*7f296bb3SBarry Smith PCFactorSetShiftInBlocks() with PCFactorSetShiftType() and 101*7f296bb3SBarry Smith PCFactorSetShiftAmount(). Replaced -pc_factor_shift_nonzero, 102*7f296bb3SBarry Smith -pc_factor_shift_positive_definite and -pc_factor_shift_in_blocks 103*7f296bb3SBarry Smith with -pc_factor_shift_type \<shifttype> and -pc_factor_shift_amount 104*7f296bb3SBarry Smith \<shiftamount>. 105*7f296bb3SBarry Smith- Added PCREDISTRIBUTE for load balancing and removal of Dirichlet 106*7f296bb3SBarry Smith degrees of freedom. 107*7f296bb3SBarry Smith 108*7f296bb3SBarry Smith```{rubric} KSP: 109*7f296bb3SBarry Smith``` 110*7f296bb3SBarry Smith 111*7f296bb3SBarry Smith- Added KSPCGUseSingleReduction() -ksp_cg_single_reduction; 112*7f296bb3SBarry Smith recommended for use with many processors when VecDot() starts to 113*7f296bb3SBarry Smith take a large amount of time, Requires 2 extra work vectors. 114*7f296bb3SBarry Smith- Added KSPGCR (Generalized Conjugate Residuals), a flexible method 115*7f296bb3SBarry Smith (like FGMRES) providing inexpensive residuals. 116*7f296bb3SBarry Smith 117*7f296bb3SBarry Smith```{rubric} SNES: 118*7f296bb3SBarry Smith``` 119*7f296bb3SBarry Smith 120*7f296bb3SBarry Smith```{rubric} TS: 121*7f296bb3SBarry Smith``` 122*7f296bb3SBarry Smith 123*7f296bb3SBarry Smith- Rename TS_EULER, TS_BEULER, etc like TSEULER for consistency with 124*7f296bb3SBarry Smith other packages. 125*7f296bb3SBarry Smith- Add Theta and General Linear time integrators (TSTHETA, TSGL). 126*7f296bb3SBarry Smith These can be used for solving differential algebraic equations 127*7f296bb3SBarry Smith (DAE) using the new TSSetIFunction() and TSSetIJacobian(). 128*7f296bb3SBarry Smith- Add TSSSP which implements optimal strong stability preserving 129*7f296bb3SBarry Smith time integrators of order 2, 3, and 4 using a low-storage explicit 130*7f296bb3SBarry Smith Runge-Kutta scheme. 131*7f296bb3SBarry Smith- Change TSSetPreStep() and TSSetPostStep() to run before and after 132*7f296bb3SBarry Smith each step instead of before and after each solve. 133*7f296bb3SBarry Smith 134*7f296bb3SBarry Smith```{rubric} DA: 135*7f296bb3SBarry Smith``` 136*7f296bb3SBarry Smith 137*7f296bb3SBarry Smith- DAGetColoring() now takes a MatType as an additional argument, 138*7f296bb3SBarry Smith should be MATAIJ or MATBAIJ 139*7f296bb3SBarry Smith- Added DARefineHierarchy(), DMMG now always uses DMRefineHierarchy 140*7f296bb3SBarry Smith to generate refined grids. Added options 141*7f296bb3SBarry Smith -da_refine_hierarchy\_[xyz] to allow semi-coarsening at some levels 142*7f296bb3SBarry Smith of the hierarchy. 143*7f296bb3SBarry Smith- DASetCoordinates() now references the vector, so the user should 144*7f296bb3SBarry Smith release their reference by calling VecDestroy(). 145*7f296bb3SBarry Smith 146*7f296bb3SBarry Smith```{rubric} DMMG: 147*7f296bb3SBarry Smith``` 148*7f296bb3SBarry Smith 149*7f296bb3SBarry Smith```{rubric} PetscViewer: 150*7f296bb3SBarry Smith``` 151*7f296bb3SBarry Smith 152*7f296bb3SBarry Smith```{rubric} SYS: 153*7f296bb3SBarry Smith``` 154*7f296bb3SBarry Smith 155*7f296bb3SBarry Smith- PetscSleep(), PetscDrawGetPause(), and PetscDrawSetPause() now 156*7f296bb3SBarry Smith take PetscReal instead of int. Also, -draw_pause takes a real 157*7f296bb3SBarry Smith value. 158*7f296bb3SBarry Smith- PetscRandomGetValueImaginary() is removed. To get a complex number 159*7f296bb3SBarry Smith with only a random imaginary part first call 160*7f296bb3SBarry Smith PetscRandomSetInterval() with the same low and high real part. 161*7f296bb3SBarry Smith Similarly one can obtain a complex number with only a random real 162*7f296bb3SBarry Smith part by setting the low and high imaginary part to be the same. 163*7f296bb3SBarry Smith 164*7f296bb3SBarry Smith```{rubric} AO: 165*7f296bb3SBarry Smith``` 166*7f296bb3SBarry Smith 167*7f296bb3SBarry Smith```{rubric} Sieve: 168*7f296bb3SBarry Smith``` 169*7f296bb3SBarry Smith 170*7f296bb3SBarry Smith```{rubric} Fortran: 171*7f296bb3SBarry Smith``` 172*7f296bb3SBarry Smith 173*7f296bb3SBarry Smith- Removed the old compiler dependent implementation of f90 interface 174*7f296bb3SBarry Smith sources in favor of the new compiler independent implementation. 175*7f296bb3SBarry Smith Consequently the configure option --with-f90-interface is removed. 176*7f296bb3SBarry Smith And the f90 interface is automatically built - if an f90 compiler 177*7f296bb3SBarry Smith is detected. [this is the default behavior before this change 178*7f296bb3SBarry Smith as well] 179*7f296bb3SBarry Smith- use petsc and use petscdef are now use petscsys and use 180*7f296bb3SBarry Smith petscsysdef 181*7f296bb3SBarry Smith 182*7f296bb3SBarry Smith```{rubric} ExternalPackages: 183*7f296bb3SBarry Smith``` 184*7f296bb3SBarry Smith 185*7f296bb3SBarry Smith- Added MATORDERING_AMD for Tim Davis' Approximate Minimum Degree 186*7f296bb3SBarry Smith package. 187