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
|
<html>
<body BGCOLOR="FFFFFF">
<h1> Docs: Changes: 2.0.29</h1>
<p align="center"><font color="#FF0000" size="5"><a
name="CHANGES">CHANGES</a> in PETSc 2.0.29 (see new <a href="#Features">features</a>)</font></p>
<p><font size="4"><strong><u>General:</u></strong></font>
<p><font size="4"><strong><u>AO (Application Orderings):</u></strong></font></p>
<p><font size="4"><strong><u>TS (Timestepping Solvers):</u></strong></font>
<p><font size="4"><strong><u>SNES (Nonlinear Solvers): </u></strong></font>
<ul>
<li>The second argument to MatSNESMFSetType() is now a MatSNESMFType, rather than
a char*. This should not affect any user code. Current built in choices are
MATSNESMF_DEFAULT "default" and MATSNESMF_WP "wp"</li>
<li>SNESGetJacobian() now has an additional optional final argument that can return the function pointer</li>
<li>SNESGetFunction() now has an additional optional final argument that can return the function pointer</li>
</ul>
<p><font size="4"><strong><u>SLES (Linear Solvers):</u></strong></font>
<p><font size="4"><strong><u>KSP (Krylov Subspace Methods):</u></strong></font>
<p><font size="4"><strong><u>PC (Preconditioners): </u></strong></font>
<ul>
<li>PCILUSetReuseFill() changed to PCILUDTSetReuseFill() and -pc_ilu_reuse_fill changed
to -pc_iludt_reuse_fill Note that currently these functions don't work.</li>
<li>PCNullSpaceXXX changed to MatNullSpaceXXX except for PCNullSpaceAttach()</li>
<li>MGSetLevels() now takes an additional optional final argument that is an array
of communicators to use on the SLES on each level
<br>
</li>
</ul>
<p><font size="4"><strong><u>MAT (Matrices): </u></strong></font>
<ul>
<li>Changed MatDiagonalShift(Mat,Vec) to MatDiagonalSet(Mat,Vec,InsertMode);</li>
<li>Dropped the second to last argument to MatCreateRowbs()</li>
<li>-mat_ordering_type now should be either -pc_ilu_mat_ordering_type, <br>
-pc_lu_mat_ordering_type, -pc_icc_mat_ordering_type or -pc_cholesky_mat_ordering_type</li>
</ul>
<p><font size="4"><strong><u>DA (Distributed Arrays): </u></strong></font>
<p><font size="4"><strong><u>VEC (Vectors):</u></strong></font>
<p><font size="4"><strong><u>IS (Index Sets): </u></strong></font></p>
<ul>
<li>ISEqual() now is collective and returns true only if each processor has the same
indices </li>
<li>ISGetSize() now returns global parallel size, ISGetLocalSize() returns local size</li>
</ul>
<p><font size="4"><strong><u>General:</u></strong></font>
<ul>
<li>All include files like mat.h vec.h sles.h snes.h ts.h etc are now changed to petscmat.h petscvec.h
petscsles.h petscsnes.h petscts.h</li>
</ul>
<p><font size="4"><strong><u>Draw (Graphics):</u></strong></font>
<p><font size="4"><strong><u>Viewers: </u></strong></font>
<p><font size="4"><strong><u>System:</u></strong></font>
<ul>
<li>FListDestroy now takes FList * instead of FList</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>
<ul>
<li>PLogEventBegin(), PLogEventEnd(), PLogFlops(), PLogEventBarrierBegin() and
PLogEventBarrierEnd() now return error codes.</li>
</ul>
<p><font size="4"><strong><u>Fortran Interface:</u></strong></font> </p>
<p> </p>
<p align="center"><font color="#FF0000" size="5">New <a name="Features">Features</a> in
PETSc 2.0.29 (see <a href="#CHANGES">changes</a> above)</font></p>
<p><font size="4"><strong><u>General:</u></strong></font>
<p><font size="4"><strong><u>AO (Application Orderings):</u></strong></font>
<p><font size="4"><strong><u>TS (Timestepping Solvers):</u></strong></font>
<p><font size="4"><strong><u>SNES (Nonlinear Solvers): </u></strong></font>
<p><font size="4"><strong><u>SLES (Linear Solvers):</u></strong></font>
<p><font size="4"><strong><u>KSP (Krylov Subspace Methods):</u></strong></font>
<ul>
<li>Minres solver contibuted by: Robert Scheichl: <a href="mailto:maprs@maths.bath.ac.uk">maprs@maths.bath.ac.uk</a></li>
<li>SYMMLQ solver contributed by Hong Zhang</li>
</ul>
<p><font size="4"><strong><u>PC (Preconditioners): </u></strong></font>
<ul>
<li>ICC(k) and Cholesky() preconditioners are now available for the new
SeqSBAIJ matrices.</li>
<li>added -pc_ilu_damping and -pc_lu_damping, PCILUSetDamping(),
PCLUSetDamping() for handling singular or matrices that generate a zero pivot. </li>
<li>Added DAMGCreate() etc to help easily write parallel multigrid codes
that use rectangular grids</li>
<li>Paulo Goldfeld contributed new PCType of nn, a version of Mandel's
balancing Neumann-Neumann preconditioner, see src/contrib/oberman/laplacian_q1
for an example of its use</li>
</ul>
<p><font size="4"><strong><u>MAT (Matrices): </u></strong></font>
<ul>
<li>added new matrix types SeqSBAIJ and MPISBAIJ for symmetric matrices.
These store only the upper triangular portion of the matrix. We also
provide ICC(k) and Cholesky factorization (currently only for block size
of 1) for the SeqSBAIJ matrices</li>
<li>augmented the SeqAIJ matrices to support -mat_aij_matlab that causes the <br>
matrices to use the Matlab engine for sparse LU, and ILUDT factorization and solves. Which have pivoting and thus are more robust than PETSc's default.</li>
</ul>
<p><font size="4"><strong><u>DA (Distributed Arrays): </u></strong></font>
<ul>
<li>added -da_noao for DACreateXXX() makes them more scalable, but cannot use the natural numbering
DA routines with this option.</li>
<li>Added DAMGCreate() etc to help easily write parallel multigrid codes
that use rectangular grids</li>
</ul>
<p><font size="4"><strong><u>VEC (Vectors):</u></strong></font>
<p><font size="4"><strong><u>IS (Index Sets): </u></strong></font>
<p><font size="4"><strong><u>PF:</u></strong></font>
<ul>
<li>added the type PFMATLAB with -pf_type matlab -pf_matlab matlab_commands</li>
</ul>
<p><font size="4"><strong><u>Draw (Graphics):</u></strong></font>
<p><font size="4"><strong><u>Viewers: </u></strong></font>
<br>
<p><font size="4"><strong><u>System:</u></strong></font>
<ul>
<li>Add PetscMatlabEngineCreate() which allows calling Matlab functions
from PETSc on each processor. Good for graphics or numerical routines
that PETSc does not have. for example for the local evaluation of the parallel nonlinear
function required for SNES; see src/snes/examples/tutorials/ex5m.c. This functionality
is accessed via the commands
PetscMatlabEngineCreate(),Put(),Get(),Evaluate() and Destroy() It even imports the Matlab flop counts correctly. Obviously you
need enough Matlab licenses for each node. Note: Matlab itself is not directly doing any parallel computing.</li>
<li>added PetscSetHelpVersionFunctions() for developers of other libraries that use PETSc.</li>
<li> added PetscPoUpSelect(), see src/sys/examples/tests/ex15.c</li>
<li>added int PetscShowMemoryUsage(Viewer viewer,char *message)</li>
<li>added PreLoadBegin(), PreLoadStage() and PreLoadEnd() to simplify getting
accurate timings by peloading. See src/snes/examples/tutorials/ex10.c</li>
<li>added PetscSynchronizedFGets()<br>
</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>
<p><br>
</body>
</html>
|