~ubuntu-branches/ubuntu/warty/petsc/warty

« back to all changes in this revision

Viewing changes to docs/changes/2918-21.htm

  • Committer: Bazaar Package Importer
  • Author(s): Adam C. Powell, IV
  • Date: 2004-06-07 13:41:43 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040607134143-92p586zrauvie0le
Tags: 2.2.0-2
* Upstream patch level 2.
* New PETSC_BOPT_EXTRA option for different BOPT and lib names, with _c++
  symlinks only for plain and single (closes: #249617).
* New DEBIAN_DIST=contrib option to link with hypre, parmetis (closes:
  #249619).
* Combined petsc-c and petsc-fortran substvars into petsc-compilers.
* Extra quote in -dev prerm eliminates "too many arguments" problem.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<html>
2
 
<body BGCOLOR="FFFFFF">
3
 
 
4
 
    <h1>Docs:&nbsp; Changes: 2.0.18-21</h1>
5
 
    
6
 
 
7
 
    <ul><p align="center"><font color="#FF0000" size="5">NEW FEATURES and CHANGES in PETSc
8
 
      2.0.18-2.0.21</font><font color="#FF0000">.</font> </p>
9
 
      <p><font size="4"><strong><u>General:</u></strong></font> <ul>
10
 
        <li>Complex numbers performance upgrade: Added support for using optimized Fortran kernels
11
 
          for some key complex numbers numerical routines (such as matrix-vector products, vector
12
 
          norms, etc.) instead of the default C++ routines. This implementation exploits the
13
 
          maturity of Fortran compilers while retaining the identical user interface. For example,
14
 
          on rs6000 machines, the base single-node performance when using the Fortran kernels is 4-5
15
 
          times faster than the default C++ code. </li>
16
 
        <li>Changed the names of various compiler flags, e.g., changed PETSC_COMPLEX to
17
 
          USE_PETSC_COMPLEX. </li>
18
 
        <li>Changed <strong>PetscObjectInherit()</strong> to <strong>PetscObjectCompose() </strong>since
19
 
          it really denotes a &quot;has-a&quot; relationship, not an &quot;is-a&quot; relationship.</li>
20
 
      </ul>
21
 
      <p><font size="4"><strong><u>AO (Application Orderings):</u></strong></font> <ul>
22
 
        <li>Changed A<strong>OCreateDebug() </strong>to <strong>AOCreateBasic()</strong>; changed <strong>AOCreateDebugIS()</strong>
23
 
          to <strong>AOCreateBasicIS()</strong>. </li>
24
 
        <li>Removed the MPI_Comm argument from A<strong>OCreateBasicIS()</strong> since it is
25
 
          contained in the IS arguments. </li>
26
 
        <li>Now the <strong>AOxxxToxxxXX()</strong> remapping routines will not map negative entries
27
 
          in the input arrays. This allows, for example, the mapping of neighbor lists that use
28
 
          negative entries to indicate non-existent neighbors due to boundaries, etc. </li>
29
 
      </ul>
30
 
      <p><font size="4"><strong><u>TS (Timestepping Solvers):</u></strong></font> <ul>
31
 
        <li>Added an interface to PVODE, the stiff integrator package of Hindmarsh et al.</li>
32
 
      </ul>
33
 
      <p><font size="4"><strong><u>SNES (Nonlinear Solvers): </u></strong></font><ul>
34
 
        <li>Added support for using matrix colorings within finite difference Jacobian
35
 
          approximations. See the section &quot;Finite Difference Jacobian Approximations&quot; of
36
 
          the users manual for more details. Also see the man pages for <strong>SNESDefaultComputeJacobianWithColoring()</strong>.</li>
37
 
        <li>Fixed a bug in method SNES_EQ_NLS.</li>
38
 
        <li>Increased the default maximum number of function evaluations to 100000. </li>
39
 
      </ul>
40
 
      <p><font size="4"><strong><u>SLES (Linear Solvers):</u></strong></font> <ul>
41
 
        <li>See PC and KSP </li>
42
 
      </ul>
43
 
      <p><font size="4"><strong><u>KSP (Krylov Subspace Methods):</u></strong></font> <ul>
44
 
        <li>Added the routine <strong>KSPGetResidualNorm()</strong>.</li>
45
 
      </ul>
46
 
      <p><font size="4"><strong><u>PC (Preconditioners): </u></strong></font><ul>
47
 
        <li>Added -pc_lu_fill and -pc_ilu_fill to replace -mat_lu_fill and -mat_ilu_fill; also added
48
 
          the commands <strong>PCLUSetFill()</strong> and <strong>PCILUSetFill()</strong>. </li>
49
 
        <li>Added <strong>PCLUSetMatReordering() </strong>and <strong>PCILUSetMatReordering()</strong>.</li>
50
 
      </ul>
51
 
      <p><font size="4"><strong><u>MAT (Matrices): </u></strong></font><ul>
52
 
        <li>Added support for matrix colorings, which are intended primarily for use in finite
53
 
          difference Jacobian approximations. See the SNES section above for more info. New routines
54
 
          include: <ul>
55
 
            <li>MatFDColoringCreate() </li>
56
 
            <li>MatFDColoringSetParameters() </li>
57
 
            <li>MatFDColoringSetFrequency() </li>
58
 
            <li>MatFDColoringSetFunction() </li>
59
 
            <li>MatFDColoringSetFromOptions() </li>
60
 
            <li>MatFDColoringView() </li>
61
 
            <li>MatFDColoringPrintHelp() </li>
62
 
            <li>MatFDColoringApply()</li>
63
 
            <li>MatFDColoringDestroy() </li>
64
 
          </ul>
65
 
        </li>
66
 
        <li>Added the matrix option MatSetOption(mat,MAT_NEW_NONZERO_ALLOCATION_ERROR) that will
67
 
          cause an error if a new entry that has not been preallocated is generated in a sparse
68
 
          matrix. (currently implemented for AIJ and BAIJ matrices only). This is a useful flag when
69
 
          debugging memory preallocation. </li>
70
 
        <li>Replaced the options -mat_lu_fill and -mat_ilu_fill with -pc_lu_fill and -pc_ilu_fill.</li>
71
 
        <li>Added the routine MatSetValuesBlockedLocal() for BAIJ matrices.</li>
72
 
        <li>Changed the final argument of MatGetTypeFromOptions() from type int* to PetscTruth*. </li>
73
 
        <li>Added MatCreateSeqAdj() for supplying adjacency matrices to PETSc to do reordering on
74
 
          (for example RCM to reduce bandwidth and thus get better cache performance) and eventually
75
 
          partitioners. </li>
76
 
        <li>MatSetLocalToGlobalMapping() and MatSetLocalToGlobalMappingBlocked() now take a
77
 
          ISLocalToGlobalMapping object rather than a list of indices. </li>
78
 
        <li>Added the routine MatGetSubMatrix(), which extracts a parallel matrix from a parallel
79
 
          matrix (currently implemented only for the MPIAIJ format).</li>
80
 
      </ul>
81
 
      <p><font size="4"><strong><u>DA (Distributed Arrays): </u></strong></font><ul>
82
 
        <li>When used with the DA_STENCIL_STAR stencil, type, the routine DAGetGlobalIndices()
83
 
          returns local-to-global mapping indices that now include the inactive corner ghost nodes.
84
 
          This is useful, e.g., when using MatSetValuesLocal() to set matrix elements, including
85
 
          corner boundary nodes.</li>
86
 
      </ul>
87
 
      <p><font size="4"><strong><u>VEC (Vectors):</u></strong></font> <ul>
88
 
        <li>VecSetLocalToGlobalMapping() now takes a ISLocalToGlobalMapping object rather than a
89
 
          list of indices.</li>
90
 
        <li>Added the routine VecCreateMPIWithArray(). </li>
91
 
        <li>Changed the calling sequence for VecCreateGhost(); added VecCreateGhostWithArray(),
92
 
          VecGhostUpdate[Begin/End](), and VecGhost[Get/Restore]LocalRepresentations(). </li>
93
 
      </ul>
94
 
      <p><font size="4"><strong><u>IS (Index Sets): </u></strong></font><ul>
95
 
        <li>Added ISGlobalToLocalMappingApply() to allow one to convert lists that are in the global
96
 
          numbering to a local numbering. </li>
97
 
        <li>Added a communicator as the first argument to ISLocalToGlobalMappingCreate().</li>
98
 
      </ul>
99
 
      <p><font size="4"><strong><u>Draw (Graphics):</u></strong></font> <ul>
100
 
        <li>Added routines for drawing simple histograms. See DrawHistCreate(). </li>
101
 
        <li>Removed the option -draw_x_private_colormap and made a private colormap the default. </li>
102
 
        <li>Added the option -draw_x_shared_colormap to indicate not to use a private colormap. If
103
 
          you use Netscape on your machine and are also doing contour plots, you generally don't
104
 
          want to use a shared colormap. </li>
105
 
        <li>Improved the colors used in the contour plotting. </li>
106
 
        <li>Changed some routine names:<ul>
107
 
            <li>DrawText() to DrawString()</li>
108
 
            <li>DrawTextVertical() to DrawStringVertical() </li>
109
 
            <li>DrawTextSetSize() to DrawStringSetSize() </li>
110
 
            <li>DrawTextGetSize() to DrawStringGetSize() </li>
111
 
            <li>DrawSyncClear() to DrawSynchronizedClear()</li>
112
 
            <li>DrawSyncFlush() to DrawSynchronizedFlush()</li>
113
 
            <li>DrawSyncGetMouseButton() to DrawSynchronizedGetMouseButton().</li>
114
 
          </ul>
115
 
        </li>
116
 
      </ul>
117
 
      <p><font size="4"><strong><u>Viewers: </u></strong></font><ul>
118
 
        <li>Added VIEWER_STDOUT_() and VIEWER_STDERR_().</li>
119
 
      </ul>
120
 
      <p><font size="4"><strong><u>System Routines:</u></strong></font> <ul>
121
 
        <li>Added the routine OptionsClearValue().</li>
122
 
        <li>Added the option -get_resident_set_size that causes the program to call
123
 
          PetscGetResidentSetSize() at the end of the run and print how much physical memory each
124
 
          process has used.</li>
125
 
        <li>Changed OptionsGetProgramName() to PetscGetProgramName() and changed the calling
126
 
          sequence to match PetscGetHostname(), etc. </li>
127
 
        <li>Changed BINARY_INT and BINARY_SCALAR to PETSC_INT and PETSC_SCALAR. </li>
128
 
      </ul>
129
 
      <p><font size="4"><strong><u>Error Handling:</u></strong></font></p>
130
 
      <p><font size="4"><strong><u>Event Logging:</u></strong></font></p>
131
 
      <p><font size="4"><strong><u>Fortran Interface:</u></strong></font> <ul>
132
 
        <li>Added routines to map between C and Fortran representations of communicators<ul>
133
 
            <li>extern int MPICCommToFortranComm(MPI_Comm,int *); </li>
134
 
            <li>extern int MPIFortranCommToCComm(int,MPI_Comm*); </li>
135
 
          </ul>
136
 
          <p>These provide the same functionality that<ul>
137
 
            <li>extern int PetscCObjectToFortranObject(void *,int *); </li>
138
 
            <li>extern int PetscFortranObjectToCObject(int,void *); </li>
139
 
          </ul>
140
 
          <p>do for PETSc objects. </p>
141
 
        </li>
142
 
        <li>Removed the macros Double, DBLE, PetscDoubleExp as they are no longer required. PETSc
143
 
          now compiles on the Cray T3D/T3E with the -dp option that correctly handles Fortran code
144
 
          using double precision.</li>
145
 
        <li>Added support for MatGetRow() MatRestoreRow() from Fortran; see manpage for Fortran
146
 
          calling sequence. </li>
147
 
        <li>Added PetscBinaryOpen(), PetscBinaryClose(), PetscBinaryRead() and PetscBinaryWrite()
148
 
          for binary IO from Fortran; see src/vec/examples/tests/ex20.F. Most users should not need
149
 
          this functionality. </li>
150
 
      </ul>
151
 
    </ul>
152
 
    </body>
153
 
</html>