File: 2018-21.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 (316 lines) | stat: -rw-r--r-- 10,423 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

 <!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/2018-21.html" />
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <title>Documentation: Changes: 2.0.18-2.0.21</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.18-2.0.21</h1>

    

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

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

    <div id="main">

      <div align="center">
        <h2>NEW FEATURES and <a name="CHANGES">CHANGES</a> in PETSc 2.0.18-2.0.21</h2>
      </div>

      <h4>General:</h4>

      <ul>
        <li>
          Complex numbers performance upgrade: Added support for using
          optimized Fortran kernels for some key complex numbers numerical
          routines (such as matrix-vector products, vector norms, etc.) instead
          of the default C++ routines. This implementation exploits the
          maturity of Fortran compilers while retaining the identical user
          interface. For example, on rs6000 machines, the base single-node
          performance when using the Fortran kernels is 4-5 times faster than
          the default C++ code.
        </li>

        <li>
          Changed the names of various compiler flags, e.g., changed
          PETSC_COMPLEX to USE_PETSC_COMPLEX.
        </li>

        <li>
          Changed <code>PetscObjectInherit()</code> to
          <code>PetscObjectCompose()</code> since it really denotes
          a &quot;has-a&quot; relationship, not an &quot;is-a&quot;
          relationship.
        </li>
      </ul>

      <h4>AO (Application Orderings):</h4>

      <ul>
        <li>
          Changed <code>AOCreateDebug()</code> to
          <code>AOCreateBasic()</code>; changed
          <code>AOCreateDebugIS()</code> to
          <code>AOCreateBasicIS()</code>.
        </li>

        <li>
          Removed the MPI_Comm argument from <code>AOCreateBasicIS()</code>
          since it is contained in the IS arguments.
        </li>

        <li>
          Now the <code>AOxxxToxxxXX()</code> remapping routines will not
          map negative entries in the input arrays. This allows, for example,
          the mapping of neighbor lists that use negative entries to indicate
          non-existent neighbors due to boundaries, etc.
        </li>
      </ul>

      <h4>TS (Timestepping Solvers):</h4>

      <ul>
        <li>Added an interface to PVODE, the stiff integrator package of Hindmarsh et al.</li>
      </ul>

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

      <ul>
        <li>
          Added support for using matrix colorings within finite difference
          Jacobian approximations. See the section &quot;Finite Difference
          Jacobian Approximations&quot; of the users manual for more details.
          Also see the man pages for
          <code>SNESDefaultComputeJacobianWithColoring()</code>.
        </li>

        <li>Fixed a bug in method SNES_EQ_NLS.</li>
        <li>Increased the default maximum number of function evaluations to 100000.</li>
      </ul>

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

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

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

      <ul>
        <li>Added the routine <code>KSPGetResidualNorm()</code>.</li>
      </ul>

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

      <ul>
        <li>
          Added -pc_lu_fill and -pc_ilu_fill to replace -mat_lu_fill and
          -mat_ilu_fill; also added the commands <code>PCLUSetFill()</code>
          and <code>PCILUSetFill()</code>.
        </li>

        <li>Added <code>PCLUSetMatReordering()</code> and <code>PCILUSetMatReordering()</code>.</li>
      </ul>

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

      <ul>
        <li>
          Added support for matrix colorings, which are intended primarily for use in finite
          difference Jacobian approximations. See the SNES section above for more info. New routines
          include:
          <ul>
            <li>MatFDColoringCreate()</li>
            <li>MatFDColoringSetParameters()</li>
            <li>MatFDColoringSetFrequency()</li>
            <li>MatFDColoringSetFunction()</li>
            <li>MatFDColoringSetFromOptions()</li>
            <li>MatFDColoringView()</li>
            <li>MatFDColoringApply()</li>
            <li>MatFDColoringDestroy()</li>
          </ul>
        </li>

        <li>
          Added the matrix option
          MatSetOption(mat,MAT_NEW_NONZERO_ALLOCATION_ERROR) that will cause an
          error if a new entry that has not been preallocated is generated in
          a sparse matrix. (currently implemented for AIJ and BAIJ matrices
          only). This is a useful flag when debugging memory preallocation.
        </li>

        <li>Replaced the options -mat_lu_fill and -mat_ilu_fill with -pc_lu_fill and -pc_ilu_fill.</li>
        <li>Added the routine MatSetValuesBlockedLocal() for BAIJ matrices.</li>
        <li>Changed the final argument of MatGetTypeFromOptions() from type int* to PetscTruth*.</li>

        <li>
          Added MatCreateSeqAdj() for supplying adjacency matrices to PETSc to
          do reordering on (for example RCM to reduce bandwidth and thus get
          better cache performance) and eventually partitioners.
        </li>

        <li>
          MatSetLocalToGlobalMapping() and MatSetLocalToGlobalMappingBlocked()
          now take a ISLocalToGlobalMapping object rather than a list of
          indices.
        </li>

        <li>
          Added the routine MatGetSubMatrix(), which extracts a parallel matrix
          from a parallel matrix (currently implemented only for the MPIAIJ
          format).
        </li>
      </ul>

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

      <ul>
        <li>
          When used with the DA_STENCIL_STAR stencil, type, the routine
          DAGetGlobalIndices() returns local-to-global mapping indices that now
          include the inactive corner ghost nodes.  This is useful, e.g., when
          using MatSetValuesLocal() to set matrix elements, including corner
          boundary nodes.
        </li>
      </ul>

      <h4>VEC (Vectors):</h4>

      <ul>
        <li>
          VecSetLocalToGlobalMapping() now takes a ISLocalToGlobalMapping
          object rather than a list of indices.
        </li>

        <li>Added the routine VecCreateMPIWithArray().</li>

        <li>
          Changed the calling sequence for VecCreateGhost(); added
          VecCreateGhostWithArray(), VecGhostUpdate[Begin/End](), and
          VecGhost[Get/Restore]LocalRepresentations().
        </li>
      </ul>

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

      <ul>
        <li>
          Added ISGlobalToLocalMappingApply() to allow one to convert lists
          that are in the global numbering to a local numbering.
        </li>

        <li>Added a communicator as the first argument to ISLocalToGlobalMappingCreate().</li>
      </ul>

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

      <ul>
        <li>Added routines for drawing simple histograms. See DrawHistCreate().</li>
        <li>Removed the option -draw_x_private_colormap and made a private colormap the default.</li>

        <li>
          Added the option -draw_x_shared_colormap to indicate not to use
          a private colormap. If you use Netscape on your machine and are also
          doing contour plots, you generally don't want to use a shared
          colormap.
        </li>

        <li>Improved the colors used in the contour plotting.</li>

        <li>
          Changed some routine names:
          <ul>
            <li>DrawText() to DrawString()</li>
            <li>DrawTextVertical() to DrawStringVertical()</li>
            <li>DrawTextSetSize() to DrawStringSetSize()</li>
            <li>DrawTextGetSize() to DrawStringGetSize()</li>
            <li>DrawSyncClear() to DrawSynchronizedClear()</li>
            <li>DrawSyncFlush() to DrawSynchronizedFlush()</li>
            <li>DrawSyncGetMouseButton() to DrawSynchronizedGetMouseButton().</li>
          </ul>
        </li>
      </ul>

      <h4>Viewers:</h4>

      <ul>
        <li>Added VIEWER_STDOUT_() and VIEWER_STDERR_().</li>
      </ul>

      <h4>System Routines:</h4>

      <ul>
        <li>Added the routine OptionsClearValue().</li>

        <li>
          Added the option -get_resident_set_size that causes the program to
          call PetscGetResidentSetSize() at the end of the run and print how
          much physical memory each process has used.
        </li>

        <li>
          Changed OptionsGetProgramName() to PetscGetProgramName() and changed
          the calling sequence to match PetscGetHostname(), etc.
        </li>

        <li>Changed BINARY_INT and BINARY_SCALAR to PETSC_INT and PETSC_SCALAR.</li>
      </ul>

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

      <ul>
        <li>
          Added routines to map between C and Fortran representations of communicators
          <ul>
            <li><code>extern int MPICCommToFortranComm(MPI_Comm,int *);</code></li>
            <li><code>extern int MPIFortranCommToCComm(int,MPI_Comm*);</code></li>
          </ul>

          These provide the same functionality that

          <ul>
            <li><code>extern int PetscCObjectToFortranObject(void *,int *);</code></li>
            <li><code>extern int PetscFortranObjectToCObject(int,void *);</code></li>
          </ul>

          do for PETSc objects.
        </li>

        <li>
          Removed the macros Double, DBLE, PetscDoubleExp as they are no longer
          required. PETSc now compiles on the Cray T3D/T3E with the -dp option
          that correctly handles Fortran code using double precision.
        </li>

        <li>
          Added support for MatGetRow() MatRestoreRow() from Fortran; see
          manpage for Fortran calling sequence.
        </li>

        <li>
          Added PetscBinaryOpen(), PetscBinaryClose(), PetscBinaryRead() and
          PetscBinaryWrite() for binary IO from Fortran; see
          src/vec/examples/tests/ex20.F. Most users should not need this
          functionality.
        </li>
      </ul>

    </div>

    
  </body>
</html>