File: 2918-21.html

package info (click to toggle)
petsc 2.2.0-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 64,404 kB
  • ctags: 284,528
  • sloc: ansic: 223,999; python: 11,758; makefile: 7,707; fortran: 6,327; cpp: 4,104; sh: 3,387; csh: 41; asm: 6
file content (153 lines) | stat: -rw-r--r-- 9,963 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
<html>
<body BGCOLOR="FFFFFF">

    <h1>Docs:&nbsp; Changes: 2.0.18-21</h1>
    

    <ul><p align="center"><font color="#FF0000" size="5">NEW FEATURES and CHANGES in PETSc
      2.0.18-2.0.21</font><font color="#FF0000">.</font> </p>
      <p><font size="4"><strong><u>General:</u></strong></font> <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 <strong>PetscObjectInherit()</strong> to <strong>PetscObjectCompose() </strong>since
          it really denotes a &quot;has-a&quot; relationship, not an &quot;is-a&quot; relationship.</li>
      </ul>
      <p><font size="4"><strong><u>AO (Application Orderings):</u></strong></font> <ul>
        <li>Changed A<strong>OCreateDebug() </strong>to <strong>AOCreateBasic()</strong>; changed <strong>AOCreateDebugIS()</strong>
          to <strong>AOCreateBasicIS()</strong>. </li>
        <li>Removed the MPI_Comm argument from A<strong>OCreateBasicIS()</strong> since it is
          contained in the IS arguments. </li>
        <li>Now the <strong>AOxxxToxxxXX()</strong> 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>
      <p><font size="4"><strong><u>TS (Timestepping Solvers):</u></strong></font> <ul>
        <li>Added an interface to PVODE, the stiff integrator package of Hindmarsh et al.</li>
      </ul>
      <p><font size="4"><strong><u>SNES (Nonlinear Solvers): </u></strong></font><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 <strong>SNESDefaultComputeJacobianWithColoring()</strong>.</li>
        <li>Fixed a bug in method SNES_EQ_NLS.</li>
        <li>Increased the default maximum number of function evaluations to 100000. </li>
      </ul>
      <p><font size="4"><strong><u>SLES (Linear Solvers):</u></strong></font> <ul>
        <li>See PC and KSP </li>
      </ul>
      <p><font size="4"><strong><u>KSP (Krylov Subspace Methods):</u></strong></font> <ul>
        <li>Added the routine <strong>KSPGetResidualNorm()</strong>.</li>
      </ul>
      <p><font size="4"><strong><u>PC (Preconditioners): </u></strong></font><ul>
        <li>Added -pc_lu_fill and -pc_ilu_fill to replace -mat_lu_fill and -mat_ilu_fill; also added
          the commands <strong>PCLUSetFill()</strong> and <strong>PCILUSetFill()</strong>. </li>
        <li>Added <strong>PCLUSetMatReordering() </strong>and <strong>PCILUSetMatReordering()</strong>.</li>
      </ul>
      <p><font size="4"><strong><u>MAT (Matrices): </u></strong></font><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>MatFDColoringPrintHelp() </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>
      <p><font size="4"><strong><u>DA (Distributed Arrays): </u></strong></font><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>
      <p><font size="4"><strong><u>VEC (Vectors):</u></strong></font> <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>
      <p><font size="4"><strong><u>IS (Index Sets): </u></strong></font><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>
      <p><font size="4"><strong><u>Draw (Graphics):</u></strong></font> <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>
      <p><font size="4"><strong><u>Viewers: </u></strong></font><ul>
        <li>Added VIEWER_STDOUT_() and VIEWER_STDERR_().</li>
      </ul>
      <p><font size="4"><strong><u>System Routines:</u></strong></font> <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>
      <p><font size="4"><strong><u>Error Handling:</u></strong></font></p>
      <p><font size="4"><strong><u>Event Logging:</u></strong></font></p>
      <p><font size="4"><strong><u>Fortran Interface:</u></strong></font> <ul>
        <li>Added routines to map between C and Fortran representations of communicators<ul>
            <li>extern int MPICCommToFortranComm(MPI_Comm,int *); </li>
            <li>extern int MPIFortranCommToCComm(int,MPI_Comm*); </li>
          </ul>
          <p>These provide the same functionality that<ul>
            <li>extern int PetscCObjectToFortranObject(void *,int *); </li>
            <li>extern int PetscFortranObjectToCObject(int,void *); </li>
          </ul>
          <p>do for PETSc objects. </p>
        </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>
    </ul>
    </body>
</html>