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