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 -> -options_table -optionsleft -> -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 "the other way then PETSc use to expect".
</li>
<li><code>PCApplyTrans()</code> is now <code>PCApplyTranspose()</code></li>
<li>
options -pc_ilu_mat_ordering_type <nd,...> and
-pc_lu_mat_ordering_type <nd,...> 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
<dt,dtcol,rowmax> 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>
|