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