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
|
<!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/31.html" />
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Documentation: Changes: 3.1</title>
</head>
<body bgcolor="#ffffff">
<div id="version" align=right><b>petsc-3.4.2 2013-07-02</b></div>
<h1>Documentation: Changes: 3.1</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 PETSc 3.1</a></h2>
</div>
<h4>General:</h4>
<ul>
<li>
PetscOptionsHasName() and PetscOptionsName() now return PETSC_TRUE if
the options are set to any value, include false or 0. You may need to
change some of your PetscOptionsXXName() to PetscOptionsXXTruth()
</li>
<li>
Added configure option --with-single-library that causes all PETSc
code to be compiled into the single library libpetsc.XXX
</li>
<li>
PetscMap changed to PetscLayout and PetscMapInitialize() changed to
PetscLayoutCreate() and it now allocates the space of the
object.
</li>
<li>
In makefiles include ${PETSC_DIR}/conf/base is replaced with two
lines include ${PETSC_DIR}/conf/variables and include
${PETSC_DIR}/conf/rules
</li>
<li>BlockSolve95 interface is removed</li>
<li>
petsc.h and petscdef.h are replaced with petscsys.h and
petscsysdef.h; while petsc.h now includes ALL PETSc include
files.
</li>
<li>
win32fe [used for MS/Intel compiler builds on windows] now defaults
to 'noautodetect' mode. However the previous behavior can be restored
by using the option '--autodetect'. For eg: '--withcc=win32fe cl
--autodetect'. This works primarily with old VC6/VC7/Intel8 etc
compilers anyway.
</li>
</ul>
<h4>Logging:</h4>
<ul>
<li>PetscLogFlops(int) ->PetscLogFlops(PetscLogDouble). [check fortran usage]</li>
</ul>
<h4>config/configure.py:</h4>
<ul>
<li>
All ./configure options that state known values, so that ./configure
doesn't try to test for them. Often used with the --with-batch option
now begin with --known-
</li>
</ul>
<h4>IS:</h4>
<h4>Vec:</h4>
<h4>VecScatter:</h4>
<h4>Mat:</h4>
<ul>
<li>
MatGetSubMatrix:
<ul>
<li>
Now takes a parallel IS for the columns, the csize argument has been
dropped. The local part of this IS corresponds to the local columns of
the new submatrix.
</li>
</ul>
</li>
<li>
MatGetSubMatrixRaw
<ul>
<li>Removed, use MatGetSubMatrix</li>
</ul>
</li>
<li>
Changed name of option MAT_KEEP_ZEROED_ROWS to
MAT_KEEP_NONZERO_PATTERN to more clearly indicate what it does.
</li>
<li>
Added MAT_SHARE_NONZERO_PATTERN as option for MatDuplicate() this
allows several matrices to share the same data structures for the
nonzeros and thus save memory.
</li>
<li>
The function provided to MatNullSpaceSetFunction() now takes
a MatNullSpace() as the first argument. Added Fortran interface for
this function as well.
</li>
<li>Removed MatPBRelax() merged its functionality into MatRelax()</li>
<li>Changed MatRelax() to MatSOR() to match MatSORType() and PCSOR</li>
<li>
Removed requirement that rows be sorted in
MatCreateMPIAIJWithArrays() and MatMPIAIJSetPreallocationCSR().
</li>
<li>Changed MATOP_DIAGONAL_SHIFT to MATOP_DIAGONAL_SET to match function name MatDiagonalSet().</li>
<li>MATMPIROWBS i.e BlockSolve95 interface is now removed.</li>
</ul>
<h4>PC:</h4>
<ul>
<li>
PCShell All user-provided functions now have PC as first argument
instead of the application context. Users should obtain the context
with PCShellGetContext, similar to MatShell.
</li>
<li>Removed -pc_asm_in_place and PCASMSetUseInPlace() since the option made no sense</li>
<li>
PCApplyRichardson() has an additional argument indicating if the
initial guess being passed in is nonzero. SOR will save some work if
it is zero.
</li>
<li>
MatSetBlockSize() is no longer an error for BAIJ matrices, but the
argument must be the same as when the matrix was preallocated.
</li>
<li>PCFactorSetPivoting() renamed to PCFactorSetColumnPivot()</li>
<li>
Replaced PCFactorSetShiftNonzero(), PCFactorSetShiftPd() and
PCFactorSetShiftInBlocks() with PCFactorSetShiftType() and
PCFactorSetShiftAmount(). Replaced -pc_factor_shift_nonzero,
-pc_factor_shift_positive_definite and -pc_factor_shift_in_blocks
with -pc_factor_shift_type <shifttype> and -pc_factor_shift_amount
<shiftamount>.
</li>
<li>Added PCREDISTRIBUTE for load balancing and removal of Dirichlet degrees of freedom.</li>
</ul>
<h4>KSP:</h4>
<ul>
<li>
Added KSPCGUseSingleReduction() -ksp_cg_single_reduction; recommended
for use with many processors when VecDot() starts to take a large
amount of time, Requires 2 extra work vectors.
</li>
<li>
Added KSPGCR (Generalized Conjugate Residuals), a flexible method
(like FGMRES) providing inexpensive residuals.
</li>
</ul>
<h4>SNES:</h4>
<h4>TS:</h4>
<ul>
<li>Rename TS_EULER, TS_BEULER, etc like TSEULER for consistency with other packages.</li>
<li>
Add Theta and General Linear time integrators (TSTHETA, TSGL). These
can be used for solving differential algebraic equations (DAE) using
the new TSSetIFunction() and TSSetIJacobian().
</li>
<li>
Add TSSSP which implements optimal strong stability preserving time
integrators of order 2, 3, and 4 using a low-storage explicit
Runge-Kutta scheme.
</li>
<li>
Change TSSetPreStep() and TSSetPostStep() to run before and after
each step instead of before and after each solve.
</li>
</ul>
<h4>DA:</h4>
<ul>
<li>DAGetColoring() now takes a MatType as an additional argument, should be MATAIJ or MATBAIJ</li>
<li>
Added DARefineHierarchy(), DMMG now always uses DMRefineHierarchy to
generate refined grids. Added options -da_refine_hierarchy_[xyz] to
allow semi-coarsening at some levels of the hierarchy.
</li>
<li>
DASetCoordinates() now references the vector, so the user should
release their reference by calling VecDestroy().
</li>
</ul>
<h4>DMMG:</h4>
<h4>PetscViewer:</h4>
<h4>SYS:</h4>
<ul>
<li>
PetscSleep(), PetscDrawGetPause(), and PetscDrawSetPause() now take
PetscReal instead of int. Also, -draw_pause takes a real value.
</li>
<li>
PetscRandomGetValueImaginary() is removed. To get a complex number
with only a random imaginary part first call PetscRandomSetInterval()
with the same low and high real part. Similarly one can obtain
a complex number with only a random real part by setting the low and
high imaginary part to be the same.
</li>
</ul>
<h4>AO:</h4>
<h4>Sieve:</h4>
<h4>Fortran:</h4>
<ul>
<li>
Removed the old compiler dependent implementation of f90 interface
sources in favor of the new compiler independent implementation.
Consequently the configure option --with-f90-interface is removed.
And the f90 interface is automatically built - if an f90 compiler is
detected. [this is the default behavior before this change
aswell]
</li>
<li>use petsc and use petscdef are now use petscsys and use petscsysdef</li>
</ul>
<h4><a href="http://www.mcs.anl.gov/petsc/miscellaneous/external.html">ExternalPackages</a>:</h4>
<ul>
<li>Added MATORDERING_AMD for Tim Davis' Approximate Minimum Degree package.</li>
</ul>
</div>
</body>
</html>
|