File: 37.html

package info (click to toggle)
petsc 3.7.5%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 163,864 kB
  • ctags: 618,438
  • sloc: ansic: 515,133; python: 29,793; makefile: 20,458; fortran: 18,998; cpp: 6,515; f90: 3,914; sh: 1,012; xml: 621; objc: 445; csh: 240; java: 13
file content (188 lines) | stat: -rw-r--r-- 11,898 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

 <!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/37.html" />
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <title>Documentation: Changes: 3.7</title>
  </head>
  <body bgcolor="#ffffff">
   <div id="version" align=right><b>petsc-3.7.5 2017-01-01</b></div>
   <div id="bugreport" align=right><a href="mailto:petsc-maint@mcs.anl.gov?subject=Typo or Error in Documentation &body=Please describe the typo or error in the documentation: petsc-3.7.5 v3.7.5 docs/changes/37.html "><small>Report Typos and Errors</small></a></div>

    <h1>Documentation: Changes: 3.7</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 in the PETSc 3.7 Version</a></h2>
      </div>

      <h4>General:</h4>
      <ul>
       <li>-log_summary is deprecated, you should use -log_view</li>
      <li>PetscViewerSetFormat() is deprecated, you should use PetscViewerPushFormat() followed after the viewing with PetscViewerPopFormat()</li>
      <li>PetscMemoryShowUsage() and -memory_info changed to PetscMemoryView() and -memory_view</li>
      <li>PetscOptionsSetValue() may now be called BEFORE PetscInitialize() and any options set then will be used in the initialization process. These options are overwritten by command line options.</li>

      <li>The following routines now take an optional <em>PetscOptions</em> object as the first argument, use NULL to get the previous behavior.

<pre>
PetscOptionsHasName(PetscOptions,const char[],const char[],PetscBool *);
PetscOptionsGetInt(PetscOptions,const char[],const char [],PetscInt *,PetscBool *);
PetscOptionsGetBool(PetscOptions,const char[],const char [],PetscBool  *,PetscBool *);
PetscOptionsGetReal(PetscOptions,const char[],const char[],PetscReal *,PetscBool *);
PetscOptionsGetScalar(PetscOptions,const char[],const char[],PetscScalar *,PetscBool *);
PetscOptionsGetIntArray(PetscOptions,const char[],const char[],PetscInt[],PetscInt *,PetscBool *);
PetscOptionsGetRealArray(PetscOptions,const char[],const char[],PetscReal[],PetscInt *,PetscBool *);
PetscOptionsGetScalarArray(PetscOptions,const char[],const char[],PetscScalar[],PetscInt *,PetscBool *);
PetscOptionsGetBoolArray(PetscOptions,const char[],const char[],PetscBool [],PetscInt *,PetscBool *);
PetscOptionsGetString(PetscOptions,const char[],const char[],char[],size_t,PetscBool *);
PetscOptionsGetStringArray(PetscOptions,const char[],const char[],char*[],PetscInt*,PetscBool *);
PetscOptionsGetEList(PetscOptions,const char[],const char[],const char*const*,PetscInt,PetscInt*,PetscBool *);
PetscOptionsGetEnum(PetscOptions,const char[],const char[],const char*const*,PetscEnum*,PetscBool *);
PetscOptionsGetEnumArray(PetscOptions,const char[],const char[],const char*const*,PetscEnum*,PetscInt *,PetscBool *);
PetscOptionsSetAlias(PetscOptions,const char[],const char[]);
PetscOptionsSetValue(PetscOptions,const char[],const char[]);
PetscOptionsClearValue(PetscOptions,const char[]);
PetscOptionsAllUsed(PetscOptions,PetscInt*);
PetscOptionsUsed(PetscOptions,const char *,PetscBool*);
PetscOptionsView(PetscOptions,PetscViewer);
PetscOptionsInsert(PetscOptions,int*,char ***,const char[]);
PetscOptionsInsertFile(MPI_Comm,PetscOptions,const char[],PetscBool );
PetscOptionsInsertString(PetscOptions,const char[]);
PetscOptionsPrefixPush(PetscOptions,const char[]);
PetscOptionsReject(PetscOptions,const char[],const char[]);
PetscOptionsGetAll(PetscOptions,char*[]);
</pre></li>
      </ul>

      <h4>Configure/Build:</h4>
      <ul>
        <li>Added --download-packages-dir=directory to support easy use of --download-xxx behind firewalls</li>
        <li>--download-package for externalpackage with a gitrepo will never be stale. Each time configure is invoked - it will do a 'git fetch' and 'git checkout commit-id'. And if the commit-id changes from the previous build - the package will be rebuilt. To prevent this sync [and use previous snapshot] - one can use --download-package-commit=HEAD</li>
        <li>Added --with-libpng/--with-giflib/--with-libjpeg and cooresponding --download versions to support PNG/GIF/JPEG image generation</li>
        <li>Removed support for AfterImage in favor of libpng/GIFLIB/libjpeg</li>
      </ul>

      <h4>IS:</h4>
      <h4>PetscDraw:</h4>
      <ul>
        <li>Added option -draw_cmap to use a named colormap (e.g., hue (default), jet, coolwarm, parula, viridis) in the drawing of contour plots.</li>
        <li>Support for saving images and movies was improved. Support for generating binary PPM images is built-in, but the format is uncompressed and images are large (640x480 pixels ~ 900 KiB). PETSc can optionally generate PNG/GIF/JPEG images using the libpng/GIFLIB/libjpeg packages (configure --with-package/--download-package). These libraries are popular, well maintained, and available through most packages managers (dnf/yum, apt, brew). For most users, PNG images should be enough.</li>
        <li>Added routine PetscDrawSave(), users should explicitly call it to save images after configuring with PetscDrawSetSave().</li>
        <li>The PetscDrawSynchronizedXXX() routines were removed, the corresponding PetscDrawXXX() are now collective.</li>
      </ul>
      <h4>PF:</h4>
      <h4>Vec:</h4>
      <ul>
        <li>For complex numbers VecNorm(v,NORM_1,) will return the traditional 1 norm of the 2 norm of the complex numbers; that is the 1 norm of the absolutely values of the complex entries. Previously it returned the 1 norm of the 1 norm of the complex entries (what is returned by the BLAS routine asum()). Both are valid norms but most people expect the former.</li>
      </ul>
      <h4>VecScatter:</h4>
      <h4>PetscSection:</h4>
      <h4>Mat:</h4>
      <h4>PC:</h4>
      <ul>
        <li>If the DM has a CreateRestriction() function the PCMG automatically uses that to create the restriction operator instead of defaulting to using the transpose of the interpolation</li>
        <li>Added -pc_hypre_boomeramg_nodal_coarsen <n> - where n is from 1 to 6 (see HYPRE_BOOMERAMGSetNodal())</li>
        <li>Added -pc_hypre_boomeramg_vec_interp_variant <v> where v is from 1 to 4 (see HYPRE_BoomerAMGSetInterpVecVariant())</li>
        <li>see PCHYPRE to allow taking advantage of MatSetNearNullSpace() for hypre BoomerAMG</li>
        <li>Added PCTelescope which supports running solvers on sub-communicators. This PC allows re-partitioning of coarse levels solves within PCMG when using Galerkin coarse level operators.</li>
      </ul>
      <h4>KSP:</h4>
      <ul>
        <li>KSPSetMonitor(KSPMonitorXXX, calls now require passing a viewer as the final argument, you can no longer pass a NULL)</li>
        You should replace
<pre>
ierr = KSPMonitorSet(ksp,KSPMonitorDefault,NULL,NULL);CHKERRQ(ierr); </p>
</pre>
        with
 <pre>
PetscViewerAndFormat *vf;
ierr = PetscViewerAndFormatCreate(PETSC_VIEWER_STDOUT_WORLD,PETSC_VIEWER_DEFAULT,&vf);CHKERRQ(ierr);
ierr = KSPMonitorSet(ksp,(PetscErrorCode (*)(KSP,PetscInt,PetscReal,void*))KSPMonitorDefault,vf,(PetscErrorCode (*)(void**))PetscViewerAndFormatDestroy);CHKERRQ(ierr);
 </pre>
        <li>-ksp_monitor_solution now takes arguments of the form [viewertype[:filename[:formatoption]]] allowing viewing the solution in many ways. To get back the previous behavior use -ksp_monitor_solution draw</li>
        <li> A Flexible Conjugate Gradient (FCG) implementation has been added as KSPFCG.
        <li> New implementations for pipelined, flexible Krylov methods have been added as KSPPIPEFGMRES, KSPPIPEFCG, and KSPPIPEGCR.
      </ul>
      <h4>SNES:</h4>
      <ul>
        <li>SNESSetMonitor(SNESMonitorXXX, calls now require passing a viewer as the final argument, you can no longer pass a NULL)</li>
                You should replace
<pre>
ierr = SNESMonitorSet(ksp,SNESMonitorDefault,NULL,NULL);CHKERRQ(ierr); </p>
</pre>
        with
 <pre>
PetscViewerAndFormat *vf;
ierr = PetscViewerAndFormatCreate(PETSC_VIEWER_STDOUT_WORLD,PETSC_VIEWER_DEFAULT,&vf);CHKERRQ(ierr);
ierr = SNESMonitorSet(ksp,(PetscErrorCode (*)(SNES,PetscInt,PetscReal,void*))SNESMonitorDefault,vf,(PetscErrorCode (*)(void**))PetscViewerAndFormatDestroy);CHKERRQ(ierr);
 </pre>
        <li>-snes_monitor_solution/residual/solution_update now takes arguments of the form [viewertype[:filename[:formatoption]]] allowing viewing the solution in many ways. To get back the previous behavior use -ksp_monitor_solution draw</li>
      </ul>
      <h4>SNESLineSearch:</h4>
      <ul>
        <li>-snes_linesearch_monitor now takes an optional [:filename] arguement, changed SNESLineSearchSet/GetMonitor to SNESLineSearchSet/GetDefaultMonitor</li>
        <li>Added SNESLineSearchMonitorSet()</li>
        <li>Partial support for -snes_linesearch_monitor_solution_update</li>
      </ul>
      <h4>TS:</h4>
      <ul>
        <li>You must call TSSetExactFinalTime() or use the option -ts_exact_final_time before calling TSSolve()</li>
        <li>TSSetMonitor(TSMonitorXXX, calls now require passing a viewer as the final argument, you can no longer pass a NULL)</li>
                You should replace
<pre>
ierr = TSMonitorSet(ksp,TSMonitorDefault,NULL,NULL);CHKERRQ(ierr); </p>
</pre>
        with
 <pre>
PetscViewerAndFormat *vf;
ierr = PetscViewerAndFormatCreate(PETSC_VIEWER_STDOUT_WORLD,PETSC_VIEWER_DEFAULT,&vf);CHKERRQ(ierr);
ierr = TSMonitorSet(ksp,(PetscErrorCode (*)(TS,PetscInt,PetscReal,Vec,void*))TSMonitorDefault,vf,(PetscErrorCode (*)(void**))PetscViewerAndFormatDestroy);CHKERRQ(ierr);
 </pre>
<li>-ts_monitor_solution now takes arguments of the form [viewertype[:filename[:formatoption]]] allowing viewing the solution in many ways. To get back the previous behavior use -ksp_monitor_solution draw</li>
        <li>-ts_monitor_binary_solution filename should now be written as -ts_monitor_solution binary:filename</li>
        <li>Renamed TSSetEventMonitor() to TSSetEventHandler(). Updated many TS implementations to support event detection.</li>
        <li>Updated TSTHETA, TSBEULER, and TSCN to support time adaptivity by estimating the local truncation error with a BDF-2 formula.</li>
        <li>Updated TSALPHA implementation. Removed TSAlphaSetAdapt() and TSAlphaAdaptDefault(), use TSAlphaUseAdapt() instead.</li>
        <li>Added TSBDF, an implementation of backward difference formulas using constant order (1 to 6) and supporting time adaptivity.</li>
        <li>Implemented new interface for second-order systems to avoid using a first-order system formulation. Added TSALPHA2 implementation (generalized-alpha, Chung &amp Hubert 1993) featuring user-controlled damping of high-frequency modes and time adaptivity through a BDF-2 formula.</li>
      </ul>
      <h4>DM/DA:</h4>
      <ul>
        <li>Added DMShellSetCreateRestriction</li>
        <li>Added the generic option prefix interfaces: DMGetOptionsPrefix(), DMAppendOptionsPrefix()</li>
        <li>DMLabel labels are now available to all DM objects, not just DMPlex object</li>
        <li>DMClone() now handles copying the coordinates, so that DMCopyCoordinates() is no longer necessary</li>
      </ul>
      <h4>DMPlex:</h4>
      <h4>PetscViewer:</h4>
      <ul>
        <li>Replaced PetscViewerASCIISynchronizedAllow() with PetscViewerASCIIPushSynchronized() PetscViewerASCIIPopSynchronized()</li>
      </ul>
      <h4>SYS:</h4>
      <h4>Tao:</h4>
      <ul>
        <li>Removed convergence tolerances -tao_fatol and tao_frtol also remove these two parameters from TAOSetTolerance() and TaoGetTolerance()</li>
      </ul>
      <h4>AO:</h4>
      <h4>Sieve:</h4>
      <h4>Fortran:</h4>
    </div>

    
  </body>
</html>