17f296bb3SBarry Smith# Changes: 2.0.15 27f296bb3SBarry Smith 37f296bb3SBarry SmithHighlights of new features in version 2.0.15, added since the last 47f296bb3SBarry Smithpublic release of PETSc (2.0.Beta.13). See details in the sections 57f296bb3SBarry Smithbelow. 67f296bb3SBarry Smith 77f296bb3SBarry Smith- Added support for shared version of PETSc libraries for several 87f296bb3SBarry Smith machines to enable faster linking and smaller executables 97f296bb3SBarry Smith- Added new parallel block row matrix format, improved efficiency 107f296bb3SBarry Smith for block diagonal formats 117f296bb3SBarry Smith- Added a suite of routines to help manage the mappings between an 127f296bb3SBarry Smith application-defined ordering of variables and the ordering used by 137f296bb3SBarry Smith PETSc for matrices and vectors 147f296bb3SBarry Smith- Expanded users manual information for performance tuning and 157f296bb3SBarry Smith profiling 167f296bb3SBarry Smith- The option -log_summary now summarize of message-passing activity 177f296bb3SBarry Smith as well as flop rates. 187f296bb3SBarry Smith- Running the test suite now requires much less disk space. 197f296bb3SBarry Smith- Example programs are in the process of being reorganized into 207f296bb3SBarry Smith tutorials and tests (see, e.g., petsc/src/sles/examples/tutorials 217f296bb3SBarry Smith for tutorial-style examples for the linear solvers). 227f296bb3SBarry Smith- The HTML version of the PETSc man pages now provides indices 237f296bb3SBarry Smith (organized by both concepts and routine names) to tutorial 247f296bb3SBarry Smith examples. 257f296bb3SBarry Smith 267f296bb3SBarry Smith```{rubric} General 277f296bb3SBarry Smith``` 287f296bb3SBarry Smith 297f296bb3SBarry Smith- Added support for shared libraries for the machines PETSC_ARCH = 307f296bb3SBarry Smith [sun4,solaris,alpha,IRIX,IRIX64,linux] to enable faster linking 317f296bb3SBarry Smith and smaller executables. To compile the shared libraries, install 327f296bb3SBarry Smith PETSc as usual and then execute the command make BOPT=g shared 337f296bb3SBarry Smith from the PETSc home directory (or use whatever BOPT you like). You 347f296bb3SBarry Smith can remove the shared libraries with the command make BOPT=g 357f296bb3SBarry Smith deleteshared Note: Shared libraries can also be used with 367f296bb3SBarry Smith PETSC_ARCH=freebsd and PETSC_ARCH=hpux if some minor modifications 377f296bb3SBarry Smith are made. For detailed instructions, see the files 387f296bb3SBarry Smith \$\{PETSC_DIR}/bmake/\$\{PETSC_ARCH}/base. Please write to us at 397f296bb3SBarry Smith <mailto:petsc-maint@mcs.anl.gov> if you encounter any problems when using 407f296bb3SBarry Smith the shared libraries. 417f296bb3SBarry Smith 427f296bb3SBarry Smith- Users must now ALWAYS set the environmental variable PETSC_DIR to 437f296bb3SBarry Smith indicate the PETSc home directory. Previously, PETSC_DIR was set 447f296bb3SBarry Smith within the various makefiles within the PETSc installation. 457f296bb3SBarry Smith However, since this causes problems for shared libraries on some 467f296bb3SBarry Smith machines, the environmental variable PETSC_DIR is now used 477f296bb3SBarry Smith instead. 487f296bb3SBarry Smith 497f296bb3SBarry Smith- Added global variables for use in debuggers: 507f296bb3SBarry Smith 517f296bb3SBarry Smith - PetscGlobalRank - processor's rank in MPI_COMM_WORLD 527f296bb3SBarry Smith - PetscGlobalSize - number of processors in MPI_COMM_WORLD 537f296bb3SBarry Smith 547f296bb3SBarry Smith- For complex numbers versions (e.g., BOPT=g_complex): Added a 557f296bb3SBarry Smith global variable defining the imaginary number "i": PETSC_i 567f296bb3SBarry Smith 577f296bb3SBarry Smith```{rubric} TS (Time Stepping Module) 587f296bb3SBarry Smith``` 597f296bb3SBarry Smith 607f296bb3SBarry Smith- Changed TS_PSEUDO_POSITION_INDEPENDENT_TIMESTEP -> 617f296bb3SBarry Smith TS_PSEUDO_POSIND - 627f296bb3SBarry Smith- Changed TSPseudoSetPositionIndependentTimeStep() -> 637f296bb3SBarry Smith TSPseudoSetPosIndTimeStep(). Even Barry couldn't stand names that 647f296bb3SBarry Smith long :-) 657f296bb3SBarry Smith 667f296bb3SBarry Smith```{rubric} SNES (Nonlinear Solvers): 677f296bb3SBarry Smith``` 687f296bb3SBarry Smith 697f296bb3SBarry Smith- The user can now set parameters used in matrix-free approximations 707f296bb3SBarry Smith of Jacobian-vector products, with the options -snes_mf_err \<err> : 717f296bb3SBarry Smith square root of relative error in computing function -snes_mf_umin 727f296bb3SBarry Smith \<umin>: minimum iterate parameter or by calling the routine 737f296bb3SBarry Smith SNESSetMatrixFreeParameters(). 747f296bb3SBarry Smith- Added the option -snes_mf_operator, which allows the user to apply 757f296bb3SBarry Smith the default matrix-free Jacobian but retain the user-provided 76*7addb90fSBarry Smith Jacobian matrix from which to construct the preconditioner. 777f296bb3SBarry Smith- Added the routine SNESGetTolerances() to extract the various 787f296bb3SBarry Smith parameters used for convergence testing. 797f296bb3SBarry Smith- Initialized iteration counter to 0 for successive calls to SNES 807f296bb3SBarry Smith solvers. 817f296bb3SBarry Smith- Changed the names for SNES runtime options associated with 827f296bb3SBarry Smith particular solvers to the forms -snes_eq_ls\_\<parameter_name> - 837f296bb3SBarry Smith nonlinear equations, line search method 847f296bb3SBarry Smith -snes_eq_tr\_\<parameter_name> - nonlinear equations, trust region 857f296bb3SBarry Smith method -snes_um_ls\_\<parameter_name>- unconstrained minimization, 867f296bb3SBarry Smith line search method -snes_um_tr\_\<parameter_name> - unconstrained 877f296bb3SBarry Smith minimization, trust region method Run program with -help for a 887f296bb3SBarry Smith detailed list of options. 897f296bb3SBarry Smith 907f296bb3SBarry Smith```{rubric} SLES (Linear Solvers): See PC and KSP 917f296bb3SBarry Smith``` 927f296bb3SBarry Smith 937f296bb3SBarry Smith- Changed the default linear solvers from GMRES(30) with Jacobi 947f296bb3SBarry Smith preconditioning to uniprocessor: GMRES(30) with ILU(0) 957f296bb3SBarry Smith preconditioning multiprocessor: GMRES(30) with block Jacobi 967f296bb3SBarry Smith preconditioning, where there is 1 block per processor, and each 977f296bb3SBarry Smith block is solved with ILU(0) See the users manual for additional 987f296bb3SBarry Smith options for the block Jacobi method. You can still employ the old 997f296bb3SBarry Smith default at runtime with the option -pc_type jacobi 1007f296bb3SBarry Smith 1017f296bb3SBarry Smith```{rubric} KSP (Krylov subspace methods): 1027f296bb3SBarry Smith``` 1037f296bb3SBarry Smith 1047f296bb3SBarry Smith- Added routines KSPComputeEigenvalues(), 1057f296bb3SBarry Smith KSPComputeEigenvaluesExplicitly() and runtime options 1067f296bb3SBarry Smith -ksp_compute_eigenvalues, -ksp_plot_eigenvalues, 1077f296bb3SBarry Smith -ksp_compute_eigenvalues_explicitly and 1087f296bb3SBarry Smith -ksp_plot_eigenvalues_explicitly for users interested in examining 1097f296bb3SBarry Smith the eigenvalues of the preconditioned operator to better 1107f296bb3SBarry Smith understand the convergence of a chosen iterative method. 1117f296bb3SBarry Smith- Changed KSPSetCalculateExtremeSingularValues() -> 1127f296bb3SBarry Smith KSPSetComputeExtremeSingularValues() - Changed 1137f296bb3SBarry Smith KSPSetCalculateResidual() -> KSPSetComputeResidual() 1147f296bb3SBarry Smith 1157f296bb3SBarry Smith```{rubric} PC (Preconditioners): 1167f296bb3SBarry Smith``` 1177f296bb3SBarry Smith 1187f296bb3SBarry Smith- Added the routine PCSetModifySubMatrices(), which allows the user 1197f296bb3SBarry Smith to set an optional routine for modifying the entries of the 1207f296bb3SBarry Smith submatrices that arise in certain subdomain-based preconditioners 1217f296bb3SBarry Smith (ASM, block Jacobi, block Gauss-Seidel). 1227f296bb3SBarry Smith 1237f296bb3SBarry Smith```{rubric} MAT (Matrices): 1247f296bb3SBarry Smith``` 1257f296bb3SBarry Smith 1267f296bb3SBarry Smith- Eliminated routine MatGetSubmatrix(); now use MatGetSubMatrices() 1277f296bb3SBarry Smith even when extracting just 1 submatrix. 1287f296bb3SBarry Smith- Added routine MatDestroyMatrices() 1297f296bb3SBarry Smith- Fixed bug in MatGetSubMatrices() for successive calls for matrices 1307f296bb3SBarry Smith having different nonzero structure. 1317f296bb3SBarry Smith- Added routine MatGetBlockSize(). - Changed routine MatGetInfo() so 1327f296bb3SBarry Smith that it returns more information. See man page for details. 1337f296bb3SBarry Smith- Changed usage of MatGetReordering() and MatRegisterOrdering(); see 1347f296bb3SBarry Smith man pages. 1357f296bb3SBarry Smith- Changed the prefix used for matrix operation names within 1367f296bb3SBarry Smith MatShellSetOperation() and MatHasOperation(): MAT\_\<operation> -> 1377f296bb3SBarry Smith MATOP\_\<operation> For example, MAT_MULT -> MATOP_MULT. 1387f296bb3SBarry Smith 1397f296bb3SBarry Smith```{rubric} DA (Distributed Arrays): 1407f296bb3SBarry Smith``` 1417f296bb3SBarry Smith 1427f296bb3SBarry Smith```{rubric} VEC (Vectors): 1437f296bb3SBarry Smith``` 1447f296bb3SBarry Smith 1457f296bb3SBarry Smith```{rubric} IS (Index Sets): 1467f296bb3SBarry Smith``` 1477f296bb3SBarry Smith 1487f296bb3SBarry Smith- Changed ISCreateSeq() to ISCreateGeneral() 1497f296bb3SBarry Smith- Changed ISCreateStrideSeq() to ISCreateStride() 1507f296bb3SBarry Smith- Added routine ISCreateBlock() to create a blocked index set. See 1517f296bb3SBarry Smith the man page for details and related routines. 1527f296bb3SBarry Smith 1537f296bb3SBarry Smith```{rubric} Draw (Graphics): 1547f296bb3SBarry Smith``` 1557f296bb3SBarry Smith 1567f296bb3SBarry Smith- Added -draw_x_private_colormap option that causes PETSc to 1577f296bb3SBarry Smith allocate a separate colormap for PETSc graphics windows. This 1587f296bb3SBarry Smith prevents bad contour plots due to Netscape altering the default 1597f296bb3SBarry Smith color map. 1607f296bb3SBarry Smith- You can now zoom in and out of contour plots using the option 1617f296bb3SBarry Smith -draw_pause -1 and left and center mouse buttons. 1627f296bb3SBarry Smith- The option -draw_contour_grid will display the underlying grid on 1637f296bb3SBarry Smith a contour plot. 1647f296bb3SBarry Smith 1657f296bb3SBarry Smith```{rubric} VIEWERS: 1667f296bb3SBarry Smith``` 1677f296bb3SBarry Smith 1687f296bb3SBarry Smith- Added routine ViewerGetFormat(). 1697f296bb3SBarry Smith- Added options -viewer_matlab_machine and -viewer_matlab_port 1707f296bb3SBarry Smith- Changed ASCII_FORMAT_xxx to VIEWER_FORMAT_ASCII_xxx and 1717f296bb3SBarry Smith ASCII_FORMAT_INFO_DETAILED to VIEWER_FORMAT_ASCII_INFO_LONG 1727f296bb3SBarry Smith- Changed BINARY_FORMAT_xxx to VIEWER_FORMAT_BINARY_xxx 1737f296bb3SBarry Smith- PETSc now provides basic support for VRML viewers. Currently, one 1747f296bb3SBarry Smith can draw surface contours of vector fields with the routine 1757f296bb3SBarry Smith DFVecDrawTensorSurfaceContour(). Note that the VRML utilities will 1767f296bb3SBarry Smith be expanded and the interface will change in the near future. 1777f296bb3SBarry Smith 1787f296bb3SBarry Smith```{rubric} SYSTEM: 1797f296bb3SBarry Smith``` 1807f296bb3SBarry Smith 1817f296bb3SBarry Smith```{rubric} EVENT LOGGING: 1827f296bb3SBarry Smith``` 1837f296bb3SBarry Smith 1847f296bb3SBarry Smith```{rubric} FORTRAN INTERFACE: 1857f296bb3SBarry Smith``` 1867f296bb3SBarry Smith 1877f296bb3SBarry Smith- Changed PETSC_NULL_CHAR to PETSC_NULL_CHARACTER - Replaced 1887f296bb3SBarry Smith PETSC_DEFAULT with 1897f296bb3SBarry Smith- You no longer need MPE to build PETSc. 1907f296bb3SBarry Smith- Included petsc/include/options.h within petsc/include/petsc.h - 1917f296bb3SBarry Smith- Changed distributed array name from RA to DA. Also changed 1927f296bb3SBarry Smith DAGlobalToLocal() to DAGlobalToLocalBegin() followed by 1937f296bb3SBarry Smith DAGlobalToLocalEnd(). 1947f296bb3SBarry Smith- Changed usage of KSPBuildSolution() slightly to avoid copying when 1957f296bb3SBarry Smith not needed. 1967f296bb3SBarry Smith- Remove first argument (rflag) from ALL options database commands, 1977f296bb3SBarry Smith i.e., OptionsGetInt(0,0,"-m",&m) => OptionsGetInt(0,"-m",&m), etc. 1987f296bb3SBarry Smith- Changed the way memory tracing is done. When compiling with BOPT=g 1997f296bb3SBarry Smith it is the default, but you may turn it off with -notrmalloc. When 2007f296bb3SBarry Smith compiling with BOPT=O it is by default off, but one may turn it on 2017f296bb3SBarry Smith with -trmalloc or -trdump. 202