1*7f296bb3SBarry Smith# Changes: 2.0.15 2*7f296bb3SBarry Smith 3*7f296bb3SBarry SmithHighlights of new features in version 2.0.15, added since the last 4*7f296bb3SBarry Smithpublic release of PETSc (2.0.Beta.13). See details in the sections 5*7f296bb3SBarry Smithbelow. 6*7f296bb3SBarry Smith 7*7f296bb3SBarry Smith- Added support for shared version of PETSc libraries for several 8*7f296bb3SBarry Smith machines to enable faster linking and smaller executables 9*7f296bb3SBarry Smith- Added new parallel block row matrix format, improved efficiency 10*7f296bb3SBarry Smith for block diagonal formats 11*7f296bb3SBarry Smith- Added a suite of routines to help manage the mappings between an 12*7f296bb3SBarry Smith application-defined ordering of variables and the ordering used by 13*7f296bb3SBarry Smith PETSc for matrices and vectors 14*7f296bb3SBarry Smith- Expanded users manual information for performance tuning and 15*7f296bb3SBarry Smith profiling 16*7f296bb3SBarry Smith- The option -log_summary now summarize of message-passing activity 17*7f296bb3SBarry Smith as well as flop rates. 18*7f296bb3SBarry Smith- Running the test suite now requires much less disk space. 19*7f296bb3SBarry Smith- Example programs are in the process of being reorganized into 20*7f296bb3SBarry Smith tutorials and tests (see, e.g., petsc/src/sles/examples/tutorials 21*7f296bb3SBarry Smith for tutorial-style examples for the linear solvers). 22*7f296bb3SBarry Smith- The HTML version of the PETSc man pages now provides indices 23*7f296bb3SBarry Smith (organized by both concepts and routine names) to tutorial 24*7f296bb3SBarry Smith examples. 25*7f296bb3SBarry Smith 26*7f296bb3SBarry Smith```{rubric} General 27*7f296bb3SBarry Smith``` 28*7f296bb3SBarry Smith 29*7f296bb3SBarry Smith- Added support for shared libraries for the machines PETSC_ARCH = 30*7f296bb3SBarry Smith [sun4,solaris,alpha,IRIX,IRIX64,linux] to enable faster linking 31*7f296bb3SBarry Smith and smaller executables. To compile the shared libraries, install 32*7f296bb3SBarry Smith PETSc as usual and then execute the command make BOPT=g shared 33*7f296bb3SBarry Smith from the PETSc home directory (or use whatever BOPT you like). You 34*7f296bb3SBarry Smith can remove the shared libraries with the command make BOPT=g 35*7f296bb3SBarry Smith deleteshared Note: Shared libraries can also be used with 36*7f296bb3SBarry Smith PETSC_ARCH=freebsd and PETSC_ARCH=hpux if some minor modifications 37*7f296bb3SBarry Smith are made. For detailed instructions, see the files 38*7f296bb3SBarry Smith \$\{PETSC_DIR}/bmake/\$\{PETSC_ARCH}/base. Please write to us at 39*7f296bb3SBarry Smith <mailto:petsc-maint@mcs.anl.gov> if you encounter any problems when using 40*7f296bb3SBarry Smith the shared libraries. 41*7f296bb3SBarry Smith 42*7f296bb3SBarry Smith- Users must now ALWAYS set the environmental variable PETSC_DIR to 43*7f296bb3SBarry Smith indicate the PETSc home directory. Previously, PETSC_DIR was set 44*7f296bb3SBarry Smith within the various makefiles within the PETSc installation. 45*7f296bb3SBarry Smith However, since this causes problems for shared libraries on some 46*7f296bb3SBarry Smith machines, the environmental variable PETSC_DIR is now used 47*7f296bb3SBarry Smith instead. 48*7f296bb3SBarry Smith 49*7f296bb3SBarry Smith- Added global variables for use in debuggers: 50*7f296bb3SBarry Smith 51*7f296bb3SBarry Smith - PetscGlobalRank - processor's rank in MPI_COMM_WORLD 52*7f296bb3SBarry Smith - PetscGlobalSize - number of processors in MPI_COMM_WORLD 53*7f296bb3SBarry Smith 54*7f296bb3SBarry Smith- For complex numbers versions (e.g., BOPT=g_complex): Added a 55*7f296bb3SBarry Smith global variable defining the imaginary number "i": PETSC_i 56*7f296bb3SBarry Smith 57*7f296bb3SBarry Smith```{rubric} TS (Time Stepping Module) 58*7f296bb3SBarry Smith``` 59*7f296bb3SBarry Smith 60*7f296bb3SBarry Smith- Changed TS_PSEUDO_POSITION_INDEPENDENT_TIMESTEP -> 61*7f296bb3SBarry Smith TS_PSEUDO_POSIND - 62*7f296bb3SBarry Smith- Changed TSPseudoSetPositionIndependentTimeStep() -> 63*7f296bb3SBarry Smith TSPseudoSetPosIndTimeStep(). Even Barry couldn't stand names that 64*7f296bb3SBarry Smith long :-) 65*7f296bb3SBarry Smith 66*7f296bb3SBarry Smith```{rubric} SNES (Nonlinear Solvers): 67*7f296bb3SBarry Smith``` 68*7f296bb3SBarry Smith 69*7f296bb3SBarry Smith- The user can now set parameters used in matrix-free approximations 70*7f296bb3SBarry Smith of Jacobian-vector products, with the options -snes_mf_err \<err> : 71*7f296bb3SBarry Smith square root of relative error in computing function -snes_mf_umin 72*7f296bb3SBarry Smith \<umin>: minimum iterate parameter or by calling the routine 73*7f296bb3SBarry Smith SNESSetMatrixFreeParameters(). 74*7f296bb3SBarry Smith- Added the option -snes_mf_operator, which allows the user to apply 75*7f296bb3SBarry Smith the default matrix-free Jacobian but retain the user-provided 76*7f296bb3SBarry Smith Jacobian preconditioner matrix. 77*7f296bb3SBarry Smith- Added the routine SNESGetTolerances() to extract the various 78*7f296bb3SBarry Smith parameters used for convergence testing. 79*7f296bb3SBarry Smith- Initialized iteration counter to 0 for successive calls to SNES 80*7f296bb3SBarry Smith solvers. 81*7f296bb3SBarry Smith- Changed the names for SNES runtime options associated with 82*7f296bb3SBarry Smith particular solvers to the forms -snes_eq_ls\_\<parameter_name> - 83*7f296bb3SBarry Smith nonlinear equations, line search method 84*7f296bb3SBarry Smith -snes_eq_tr\_\<parameter_name> - nonlinear equations, trust region 85*7f296bb3SBarry Smith method -snes_um_ls\_\<parameter_name>- unconstrained minimization, 86*7f296bb3SBarry Smith line search method -snes_um_tr\_\<parameter_name> - unconstrained 87*7f296bb3SBarry Smith minimization, trust region method Run program with -help for a 88*7f296bb3SBarry Smith detailed list of options. 89*7f296bb3SBarry Smith 90*7f296bb3SBarry Smith```{rubric} SLES (Linear Solvers): See PC and KSP 91*7f296bb3SBarry Smith``` 92*7f296bb3SBarry Smith 93*7f296bb3SBarry Smith- Changed the default linear solvers from GMRES(30) with Jacobi 94*7f296bb3SBarry Smith preconditioning to uniprocessor: GMRES(30) with ILU(0) 95*7f296bb3SBarry Smith preconditioning multiprocessor: GMRES(30) with block Jacobi 96*7f296bb3SBarry Smith preconditioning, where there is 1 block per processor, and each 97*7f296bb3SBarry Smith block is solved with ILU(0) See the users manual for additional 98*7f296bb3SBarry Smith options for the block Jacobi method. You can still employ the old 99*7f296bb3SBarry Smith default at runtime with the option -pc_type jacobi 100*7f296bb3SBarry Smith 101*7f296bb3SBarry Smith```{rubric} KSP (Krylov subspace methods): 102*7f296bb3SBarry Smith``` 103*7f296bb3SBarry Smith 104*7f296bb3SBarry Smith- Added routines KSPComputeEigenvalues(), 105*7f296bb3SBarry Smith KSPComputeEigenvaluesExplicitly() and runtime options 106*7f296bb3SBarry Smith -ksp_compute_eigenvalues, -ksp_plot_eigenvalues, 107*7f296bb3SBarry Smith -ksp_compute_eigenvalues_explicitly and 108*7f296bb3SBarry Smith -ksp_plot_eigenvalues_explicitly for users interested in examining 109*7f296bb3SBarry Smith the eigenvalues of the preconditioned operator to better 110*7f296bb3SBarry Smith understand the convergence of a chosen iterative method. 111*7f296bb3SBarry Smith- Changed KSPSetCalculateExtremeSingularValues() -> 112*7f296bb3SBarry Smith KSPSetComputeExtremeSingularValues() - Changed 113*7f296bb3SBarry Smith KSPSetCalculateResidual() -> KSPSetComputeResidual() 114*7f296bb3SBarry Smith 115*7f296bb3SBarry Smith```{rubric} PC (Preconditioners): 116*7f296bb3SBarry Smith``` 117*7f296bb3SBarry Smith 118*7f296bb3SBarry Smith- Added the routine PCSetModifySubMatrices(), which allows the user 119*7f296bb3SBarry Smith to set an optional routine for modifying the entries of the 120*7f296bb3SBarry Smith submatrices that arise in certain subdomain-based preconditioners 121*7f296bb3SBarry Smith (ASM, block Jacobi, block Gauss-Seidel). 122*7f296bb3SBarry Smith 123*7f296bb3SBarry Smith```{rubric} MAT (Matrices): 124*7f296bb3SBarry Smith``` 125*7f296bb3SBarry Smith 126*7f296bb3SBarry Smith- Eliminated routine MatGetSubmatrix(); now use MatGetSubMatrices() 127*7f296bb3SBarry Smith even when extracting just 1 submatrix. 128*7f296bb3SBarry Smith- Added routine MatDestroyMatrices() 129*7f296bb3SBarry Smith- Fixed bug in MatGetSubMatrices() for successive calls for matrices 130*7f296bb3SBarry Smith having different nonzero structure. 131*7f296bb3SBarry Smith- Added routine MatGetBlockSize(). - Changed routine MatGetInfo() so 132*7f296bb3SBarry Smith that it returns more information. See man page for details. 133*7f296bb3SBarry Smith- Changed usage of MatGetReordering() and MatRegisterOrdering(); see 134*7f296bb3SBarry Smith man pages. 135*7f296bb3SBarry Smith- Changed the prefix used for matrix operation names within 136*7f296bb3SBarry Smith MatShellSetOperation() and MatHasOperation(): MAT\_\<operation> -> 137*7f296bb3SBarry Smith MATOP\_\<operation> For example, MAT_MULT -> MATOP_MULT. 138*7f296bb3SBarry Smith 139*7f296bb3SBarry Smith```{rubric} DA (Distributed Arrays): 140*7f296bb3SBarry Smith``` 141*7f296bb3SBarry Smith 142*7f296bb3SBarry Smith```{rubric} VEC (Vectors): 143*7f296bb3SBarry Smith``` 144*7f296bb3SBarry Smith 145*7f296bb3SBarry Smith```{rubric} IS (Index Sets): 146*7f296bb3SBarry Smith``` 147*7f296bb3SBarry Smith 148*7f296bb3SBarry Smith- Changed ISCreateSeq() to ISCreateGeneral() 149*7f296bb3SBarry Smith- Changed ISCreateStrideSeq() to ISCreateStride() 150*7f296bb3SBarry Smith- Added routine ISCreateBlock() to create a blocked index set. See 151*7f296bb3SBarry Smith the man page for details and related routines. 152*7f296bb3SBarry Smith 153*7f296bb3SBarry Smith```{rubric} Draw (Graphics): 154*7f296bb3SBarry Smith``` 155*7f296bb3SBarry Smith 156*7f296bb3SBarry Smith- Added -draw_x_private_colormap option that causes PETSc to 157*7f296bb3SBarry Smith allocate a separate colormap for PETSc graphics windows. This 158*7f296bb3SBarry Smith prevents bad contour plots due to Netscape altering the default 159*7f296bb3SBarry Smith color map. 160*7f296bb3SBarry Smith- You can now zoom in and out of contour plots using the option 161*7f296bb3SBarry Smith -draw_pause -1 and left and center mouse buttons. 162*7f296bb3SBarry Smith- The option -draw_contour_grid will display the underlying grid on 163*7f296bb3SBarry Smith a contour plot. 164*7f296bb3SBarry Smith 165*7f296bb3SBarry Smith```{rubric} VIEWERS: 166*7f296bb3SBarry Smith``` 167*7f296bb3SBarry Smith 168*7f296bb3SBarry Smith- Added routine ViewerGetFormat(). 169*7f296bb3SBarry Smith- Added options -viewer_matlab_machine and -viewer_matlab_port 170*7f296bb3SBarry Smith- Changed ASCII_FORMAT_xxx to VIEWER_FORMAT_ASCII_xxx and 171*7f296bb3SBarry Smith ASCII_FORMAT_INFO_DETAILED to VIEWER_FORMAT_ASCII_INFO_LONG 172*7f296bb3SBarry Smith- Changed BINARY_FORMAT_xxx to VIEWER_FORMAT_BINARY_xxx 173*7f296bb3SBarry Smith- PETSc now provides basic support for VRML viewers. Currently, one 174*7f296bb3SBarry Smith can draw surface contours of vector fields with the routine 175*7f296bb3SBarry Smith DFVecDrawTensorSurfaceContour(). Note that the VRML utilities will 176*7f296bb3SBarry Smith be expanded and the interface will change in the near future. 177*7f296bb3SBarry Smith 178*7f296bb3SBarry Smith```{rubric} SYSTEM: 179*7f296bb3SBarry Smith``` 180*7f296bb3SBarry Smith 181*7f296bb3SBarry Smith```{rubric} EVENT LOGGING: 182*7f296bb3SBarry Smith``` 183*7f296bb3SBarry Smith 184*7f296bb3SBarry Smith```{rubric} FORTRAN INTERFACE: 185*7f296bb3SBarry Smith``` 186*7f296bb3SBarry Smith 187*7f296bb3SBarry Smith- Changed PETSC_NULL_CHAR to PETSC_NULL_CHARACTER - Replaced 188*7f296bb3SBarry Smith PETSC_DEFAULT with 189*7f296bb3SBarry Smith- You no longer need MPE to build PETSc. 190*7f296bb3SBarry Smith- Included petsc/include/options.h within petsc/include/petsc.h - 191*7f296bb3SBarry Smith- Changed distributed array name from RA to DA. Also changed 192*7f296bb3SBarry Smith DAGlobalToLocal() to DAGlobalToLocalBegin() followed by 193*7f296bb3SBarry Smith DAGlobalToLocalEnd(). 194*7f296bb3SBarry Smith- Changed usage of KSPBuildSolution() slightly to avoid copying when 195*7f296bb3SBarry Smith not needed. 196*7f296bb3SBarry Smith- Remove first argument (rflag) from ALL options database commands, 197*7f296bb3SBarry Smith i.e., OptionsGetInt(0,0,"-m",&m) => OptionsGetInt(0,"-m",&m), etc. 198*7f296bb3SBarry Smith- Changed the way memory tracing is done. When compiling with BOPT=g 199*7f296bb3SBarry Smith it is the default, but you may turn it off with -notrmalloc. When 200*7f296bb3SBarry Smith compiling with BOPT=O it is by default off, but one may turn it on 201*7f296bb3SBarry Smith with -trmalloc or -trdump. 202