xref: /petsc/doc/changes/2015.md (revision 226f8a8a5081bc6ad7227cd631662400f0d6e2a0)
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