File: 2028.html

package info (click to toggle)
petsc 3.4.2.dfsg1-8.1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 129,104 kB
  • ctags: 516,422
  • sloc: ansic: 395,939; cpp: 47,201; python: 34,788; makefile: 17,193; fortran: 16,251; f90: 1,592; objc: 954; sh: 822; xml: 621; java: 381; lisp: 293; csh: 241
file content (402 lines) | stat: -rw-r--r-- 12,612 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
  <head> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/changes/2028.html" />
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <title>Documentation: Changes: 2.0.28</title>
  </head>
  <body bgcolor="#ffffff">
   <div id="version" align=right><b>petsc-3.4.2 2013-07-02</b></div>

    <h1>Documentation: Changes: 2.0.28</h1>

    

    <style type="text/css">
      h2 {
        color: red;
      }

      h4 {
        font-weight: bold;
        text-decoration: underline;
      }
    </style>

    <div id="main">

      <div align="center">
        <h2><a name="CHANGES">CHANGES</a> in PETSc 2.0.28 (see new <a href="#Features">features</a>)</h2>
      </div>

      <h4>General:</h4>

      <ul>
        <li>No longer support PETSC_ARCH=sun4</li>
        <li>The macros in petscconf.h now begin with PETSC_</li>

        <li>
          <code>PetsReal()</code> and <code>PetscImaginary()</code> are now
          <code>PetscRealPart()</code> <code>PetscImaginaryPart()</code>
        </li>

        <li>
          -optionstable -&gt; -options_table -optionsleft -&gt; -options_left
          but old left for compatibility
        </li>
      </ul>

      <h4>AO (Application Orderings):</h4>
      <h4>TS (Timestepping Solvers):</h4>

      <ul>
        <li>
          <code>TSSetMonitor()</code> now takes an additional final optional
          argument that monitor context.
        </li>
      </ul>

      <h4>SNES (Nonlinear Solvers):</h4>

      <ul>
        <li>SNES_EQ_LS etc changed to drop _, for example SNESEQLS</li>

        <li>
          Changed calling sequence of SNES monitoring routines to add an
          additional output parameter indicating why it converged or
          diverged.
        </li>

        <li>
          Added additional final argument to <code>SNESSetMonitor()</code>
          an optional destroy routine for the monitor context.
        </li>

        <li>
          Changed calling sequence of <code>MatSNESMFAddNullSpace()</code>
          to take <code>PCNullSpace</code> object rather than array of
          vectors.
        </li>

        <li>
          Added final ctx argument to <code>SNESGetFunction()</code>,
          <code>SNESGetGradient()</code> and
          <code>SNESGetMinimizationFunction()</code>
        </li>
      </ul>

      <h4>SLES (Linear Solvers):</h4>

      <ul>
        <li>See PC and KSP</li>

        <li>
          <code>SLESSolveTrans()</code> is now
          <code>SLESSolveTranspose()</code>
        </li>

        <li>
          <code>SLESSolve()</code> now ALWAYS returns a 0 or positive iteration
          count. Call <code>KSPGetConvergedReason()</code> to see if converged
          or diverged and why.
        </li>
      </ul>

      <h4>KSP (Krylov Subspace Methods):</h4>

      <ul>
        <li>
          Added additional final argument to <code>KSPSetMonitor()</code>
          an optional destroy routine for the monitor context.
        </li>

        <li><code>KSPSolvetrans()</code> is now <code>KSPSolveTranspose()</code></li>

        <li>
          Added flexible gmres (use fgmres or KSPFGMRES as the type) see
          <code>KSPFGMRESSetModifyPC()</code> for one way to change PC at
          each iteration.
        </li>
      </ul>

      <h4>PC (Preconditioners):</h4>

      <ul>
        <li>
          <code>MGSetRestriction()</code> and <code>MGSetInterpolation()</code>
          now accept PETSc figures out which one it is based on the number of
          rows and columns. Now you don't need to use the Shell matrices if you
          computed it &quot;the other way then PETSc use to expect&quot;.
        </li>

        <li><code>PCApplyTrans()</code> is now <code>PCApplyTranspose()</code></li>

        <li>
          options -pc_ilu_mat_ordering_type &lt;nd,...&gt; and
          -pc_lu_mat_ordering_type &lt;nd,...&gt; now set the ordering type.
        </li>
      </ul>

      <h4>MAT (Matrices):</h4>

      <ul>
        <li>
          Added two additional arguments to <code>MatCreate(MPI_Comm comm,int
            m,int n,int M,int N,Mat *)</code> where m and n are the local
          ownership sizes. To get the effect of the old
          <code>MatCreate()</code> use m and n equal to PETSC_DECIDE
        </li>

        <li>
          Changed <code>MatSetLocalToGlobalMappingBlocked()</code> to
          <code>MatSetLocalToGlobalMappingBlock()</code> so that it would
          be less then 32 characters long.
        </li>

        <li>
          <code>MatSolveTrans()</code>and <code>MatSolveTransAdd()</code> are
          now <code>MatSolveTransposeXXX()</code> <code>MatMultTrans()</code>
          and <code>MatMultTransAdd()</code>are now
          <code>MatMultTransposeXXX()</code>
        </li>

        <li>
          <code>MatCreateMPIAdj()</code> changed to
          <code>MatCreateMPICSR()</code>; <code>MatCreateSeqAdj()</code>
          dropped.
        </li>

        <li>
          Another <code>MatSetOption()</code>, <code>MAT_IGNORE_ZERO_ENTRIES</code> for
          AIJ matrices with <code>ADD_VALUES</code>.
        </li>

        <li>
          added matrix option <code>MAT_KEEP_ZEROED_ROWS</code> causes <code>
            MatZeroRows()</code> to keep the original nonzero data structure and
          just put 0.0 into the elements that are to be zeroed. Without this
          option it removes the locations from the nonzero structure.
        </li>
      </ul>

      <h4>DA (Distributed Arrays):</h4>
      <h4>VEC (Vectors):</h4>

      <ul>
        <li>Added VecGetArray2d() and VecRestoreArray2d()</li>
      </ul>

      <h4>IS (Index Sets):</h4>

      <ul>
        <li>
          Added second argument to <code>ISInvertPermutation</code>() that indicates
          how many indices are to be  stored on that processor; ignored for one
          processor code. If you use <code>ISInvertPermutation</code>()  simply add
          a second argument of <code>PETSC_DECIDE</code>.
        </li>
      </ul>

      <h4>Draw (Graphics):</h4>

      <ul>
        <li>DrawHistxxx changed to DrawHGxxx</li>
      </ul>

      <h4>Viewers:</h4>
      <h4>System:</h4>

      <ul>
        <li>
          Routines XXXRegister() are now XXXRegisterDynamic() used for
          registering new object types in dynamic libraries and
          XXXRegister_Private() is now XXXRegister() used to register new
          object types whose definitions are in the exectuable.
        </li>

        <li>
          The final argument to OptionsHasName() and
          OptionsGetXXX() is a PetscTruth * instead of an
          int*
        </li>

        <li>PETSc functions and objects that began with Table now begin with PetscTable</li>

        <li>
          Changed these routines to return an error code.  extern int
          PetscStrchr(const char[],char,char **); extern int PetscStrrchr(const
          char[],char,char **); extern int PetscStrstr(const char[],const
          char[],char **); extern int PetscStrtok(const char[],const
          char[],char **); extern int PetscStrlen(const char[],int *); added
          PetscStrallocpy(const char[],char **); PetscStrncmp() and
          PetscStrcasecmp() now return PETSC_TRUE as a final argument if the
          strings match else PETSC_FALSE. Note this means removing ! from your
          current tests and adding it where you don't have it.
        </li>

        <li>PetscMemcmp() now has a final argument of true for matching memories.</li>

        <li>
          The Fortran versions of the PetscStrxxx() and PetscMemxxx() routines
          also now have the error flag as the final argument
        </li>

        <li>
          PetscFree() now always returns an error code that may be checked with
          CHKERRQ().  On systems where free() returns a void (and the user has
          no access to an error condition in free(), PetscFree() returns 0 i.e.
          no error; on other systems it returns the error number from
          free.
        </li>

        <li>The BT bitarray macros are now prefixed with PetscBT</li>
      </ul>

      <h4>Error Handling:</h4>
      <h4>Event Logging:</h4>
      <h4>Fortran Interface:</h4>

      <div align="center">
        <h2>New <a name="Features">features</a> in PETSc 2.0.28 (see <a href="#CHANGES">changes</a> above)</h2>
      </div>

      <h4>General:</h4>

      <ul>
        <li>
          When doing string substitutions in library directory paths etc one
          must use ${PETSC_DIR} ${BOPT} etc now instead of $PETSC_DIR etc. Also
          you can put anything in {anything} as long as it is an environmental
          variable or passed in the options database with -anything
        </li>

        <li>
          Added PetscEmacsclientErrorHandler() -on_error_emacs [machinename] to
          allow emacs to jump to error; can be used with any other error
          handler.
        </li>

        <li>
          So long as you have defined the macro __FUNC__ "main" before your
          main C/C++ subroutine you can use SETERRQ() and CHKERRQ() instead of
          SETERRA(), CHKERRA().
        </li>
      </ul>

      <h4>AO (Application Orderings):</h4>
      <h4>TS (Timestepping Solvers):</h4>
      <h4>SNES (Nonlinear Solvers):</h4>

      <ul>
        <li>
          Added <code>SNESSetLineSearchParams()</code> and
          <code>SNESGetLineSearchParams()</code>, contributed by Matt
          Knepley.
        </li>

        <li>
          Added <code>SNESGetConvergedReason()</code> to find out if
          a <code>SNESSolve()</code> has converged/diverged and why
        </li>

        <li>
          Added <code>SNESMonitorVecUpdate()</code> and
          -snes_vecmonitor_update to display the Newton update at each
          iteration.
        </li>
      </ul>

      <h4>SLES (Linear Solvers):</h4>

      <ul>
        <li>See PC and KSP</li>
      </ul>

      <h4>KSP (Krylov Subspace Methods):</h4>

      <ul>
        <li>
          Added -ksp_gmres_krylov_monitor and
          <code>KSPGMRESKrylovMonitor()</code> to allow one to view the
          vectors in the Krylov space.
        </li>
      </ul>

      <h4>PC (Preconditioners):</h4>

      <ul>
        <li>
          We now provide a drop tolerance based ILU for SeqAIJ matrix format
          via Yousef Saad's SPARSEKIT2 software. Use -pc_ilu_use_drop_tolerance
          &lt;dt,dtcol,rowmax&gt; or
          <code>PCILUSetUseDropTolerance</code>(pc,dt,dtcol,rowmax).
        </li>
      </ul>

      <h4>MAT (Matrices):</h4>
      <h4>DA (Distributed Arrays):</h4>
      <h4>VEC (Vectors):</h4>
      <h4>IS (Index Sets):</h4>
      <h4>Draw (Graphics):</h4>

      <ul>
        <li><code>DrawCreate()</code> and <code>DrawOpenX()</code> now can take</li>
      </ul>

      <h4>Viewers:</h4>

      <ul>
        <li>
          Added <code>ViewerASCIIUseTabs()</code> to allow turning off
          tabbing during certain viewer operations.
        </li>

        <li>
          Added <code>ViewerGetSingleton()</code>, ViewerRestoreSingleton()
          to allow managing the calling a a sequential viewer from within
          a parallel viewer.
        </li>

        <li>Added <code>ViewerASCIISynchronizedPrintf</code>(viewer,....)</li>

        <li>
          Binary and ASCII viewers can create compressed files by simply
          appending a .gz on the filename.
        </li>

        <li>
          PETSc now has a new viewer that generates rudimentary Postscript.
          Improvements, additions may be added as needed.
          <code>DrawOpenPS()</code>, or
          <code>DrawSetType(,DRAW_PS);</code> or -draw_type ps
        </li>
      </ul>

      <h4>System:</h4>

      <ul>
        <li>
          using -trdump with PETSC_USE_STACK compile option (default for
          BOPT=g*) will print the entire stack for each malloc, allow one to
          more easily track down where mallocs where made that where not
          freed.
        </li>

        <li>Added PetscSum_Op to replace MPI_SUM for reductions with MPIU_SCALAR</li>
        <li>Added PetscMaxSum_Op to do max on first half of entries and sum on second half.</li>
        <li>Added CHKMEMQ and CHKMEMA macros to help track down memory corruption.</li>
      </ul>

      <h4>Error Handling:</h4>
      <h4>Event Logging:</h4>
      <h4>Fortran Interface:</h4>

      <ul>
        <li>Added Fortran 90 interface support for HP Convex and Solaris.machine.</li>
      </ul>

    </div>

    
  </body>
</html>