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
|
<html>
<body BGCOLOR="FFFFFF">
<h1>Docs: Changes: 2.0.22</h1>
<p align="center"><font color="#FF0000" size="5">NEW FEATURES
and CHANGES in PETSc 2.0.22</font><font size="5"> </font></p>
<p><font size="4"><strong><u>General:</u></strong></font> <ul>
<li><font size="3">The Fortran90-specific routines such as <strong>VecGetArrayF90()</strong>
now work with the IBM Fortran compiler, the SGI Fortran 90 compiler, and the Cray T3E
Fortran compiler.</font></li>
<li><font size="3">The third argument for the Fortran versions of the routines <strong>VecGetArray()/VecRestoreArray(),</strong>
<strong>ISGetIndices()/ISRestoreIndices(), MatGetArray()/MatRestoreArray()</strong> and <strong>DAGetGlobalIndices()
</strong>has been changed from <strong>integer</strong> to <strong>PetscOffset</strong>.
See src/snes/examples/tutorials/ex5f.F for example usage.</font></li>
<li><font size="3">Changed the location of the manual pages from docs/www/www.html and
docs/www to <strong>docs/manualpages/manualpages.html</strong> and <strong>docs/manualpages</strong>.</font></li>
<li><font size="3">The location of the mpiuni include files (used in the base.site file when
not compiling with an MPI) has moved from <strong>src/mpiuni </strong>to s<strong>rc/sys/src/mpiuni</strong></font></li>
<li><font size="3">Added the option -log_summary_exclude <vec,mat,sles,snes> to limit
the information printed in the summary table</font></li>
<li><font size="3">Added the option -log_info_exclude <vec,mat,sles,snes> </font></li>
<li><font size="3">Changed the calling sequences of <strong>PetscGetTime(),
PetscGetCPUTime(), PetscGetFlops()</strong> to return error codes like all other PETSc
functions.</font></li>
<li><font size="3">Changed the internal structure of the PETSc objects. This will not effect
most users but makes PETSc more extensible for the future.</font></li>
<li><font size="3">Removed the PETSc object child support and replaced it with</font></li>
</ul>
<blockquote>
<p><font size="3"><strong>PetscObjectCompose(PetscObject,char *name,PetscObject);<br>
PetscObjectQuery(PetscObject,char *name,PetscObject *);<br>
PetscObjectComposeFunction(PetscObject,char *name, void *);<br>
PetscObjectQueryFunction(PetscObject,char *name,void **);</strong></font></p>
</blockquote>
<blockquote>
<p><font size="3">These allow the user to attach objects and functions to any PETSc
object.</font></p>
</blockquote>
<ul>
<li><font size="3">Added a feeble example that demonstrates how to manage partitioning a
grid in parallel in <strong>src/mat/examples/tutorials/ex2.c</strong></font></li>
<li><font size="3">The build command 'make all' in ${PETSC_DIR} will build the PETSc
libraries, including the fortran interface.</font></li>
</ul>
<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> <ul>
<li><font size="3">The calling sequence of <strong>TSSetType() </strong>has changed;
see the manual page.</font></li>
<li><font size="3"><strong>TSType</strong> is now a string, rather than enum type</font></li>
</ul>
<p><font size="4"><strong><u>SNES (Nonlinear Solvers): </u></strong></font><ul>
<li><font size="3">The calling sequence of <strong>SNESSetType() </strong>has changed;
see the manual page.</font></li>
<li><font size="3"><strong>SNESType</strong> is now a string, rather than enum type</font></li>
</ul>
<p><font size="4"><strong><u>SLES (Linear Solvers):</u></strong></font> <ul>
<li>See PC and KSP </li>
</ul>
<p><font size="4"><strong><u>KSP (Krylov Subspace Methods):</u></strong></font> <ul>
<li><font size="3">The calling sequence of <strong>KSPSetType() </strong>has changed;
see the manual page.</font></li>
<li><font size="3"><strong>KSPType</strong> is now a string, rather than enum type.</font></li>
</ul>
<p><font size="4"><strong><u>PC (Preconditioners): </u></strong></font><ul>
<li><font size="3">Added two new PC classes, <strong>PCSLES</strong> and <strong>PCCOMPOSITE</strong>
that allow use of any <strong>SLES</strong> object as a preconditioner and enable
combining several preconditioners.</font></li>
<li><font size="3">The calling sequence of <strong>PCSetType() </strong>has changed;
see the manual page.</font></li>
<li><font size="3"><strong>PCType</strong> is now a string, rather than enum type.</font></li>
</ul>
<p><font size="4"><strong><u>MAT (Matrices): </u></strong></font><ul>
<li><font size="3">Added support for partitioning using the ParMETIS parallel partitioning
package, see the manual page for <strong>PartitioningCreate</strong>()</font></li>
<li><font size="3">Added <strong>MatGetColumnVector()</strong></font></li>
<li><font size="3">Added argument column size to<strong> MatGetSubMatrix()</strong></font></li>
<li><font size="3">Changed the memory allocation algorithm in<strong> MatLUFactorSymbolic() </strong>and<strong>
MatILUFactorSymbolic() </strong>based on a suggestion by David Hysom of ODU.</font></li>
<li><font size="3">The third argument for the Fortran version of the routines <strong>MatGetArray()/MatRestoreArray()</strong>
has been changed from <strong>integer</strong> to <strong>PetscOffset</strong>. </font></li>
</ul>
<p><font size="4"><strong><u>DA (Distributed Arrays): </u></strong></font><ul>
<li><font size="3">Changed <strong>DAGetDistributedVector()</strong> and <strong>DAGetLocalVector()</strong>
to <strong>DACreateGlobalVector()</strong> and<strong><u> </u>DACreateLocalVector().</strong>
You should destroy these vectors with a usual call to <strong>VecDestroy().</strong></font></li>
<li><font size="3">The third argument for the Fortran version of the routine <strong>DAGetGlobalIndices()</strong>
has been changed from <strong>integer</strong> to <strong>PetscOffset</strong>. </font></li>
</ul>
<p><font size="4"><strong><u>VEC (Vectors):</u></strong></font> <ul>
<li><font size="3">Added <strong>VecSetBlockSize(), VecSetValuesBlocked(),
VecSetValuesBlockedLocal(), VecSetLocalToGlobalMappingBlocked()</strong></font></li>
<li><font size="3">Added<strong> VecCreatedShared(),</strong> which creates a parallel
vector in shared memory on the SGI machines</font></li>
<li><font size="3">Changed <strong>VEC_IGNORE_OFF_PROCESSOR_ENTRIES</strong> to <strong>VEC_IGNORE_OFF_PROC_ENTRIES</strong></font></li>
<li><font size="3">The third argument for the Fortran versions of the routines <strong>VecGetArray()/VecRestoreArray(),</strong>
has been changed from <strong>integer</strong> to <strong>PetscOffset</strong>. See
src/snes/examples/tutorials/ex5f.F for example usage.</font></li>
<li><font size="3"><strong>VecGetArray(), VecRestoreArray() </strong>now work from Fortran
on all machines, finally after 3 long years!</font></li>
<li><font size="3">Changed the calling sequence of <strong>VecCreate()</strong>, now takes
both local and global size, see the manual page.</font></li>
</ul>
<p><font size="4"><strong><u>IS (Index Sets): </u></strong></font><ul>
<li><font size="3">The third argument for the Fortran versions of the routines <strong>ISGetIndices()/ISRestoreIndices()
</strong>has been changed from <strong>integer</strong> to <strong>PetscOffset</strong>. </font></li>
</ul>
<p><font size="4"><strong><u>Draw (Graphics):</u></strong></font></p>
<p><font size="4"><strong><u>Viewers: </u></strong></font></p>
<p><font size="4"><strong><u>System:</u></strong></font></p>
<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> <ul>
<li><font size="3"><strong>PETSC_NULL</strong> has been replaced with <strong>PETSC_NULL_INTEGER</strong>,
<strong>PETSC_NULL_SCALAR</strong>, <strong>PETSC_NULL_DOUBLE</strong> or <strong>PETSC_NULL_CHARACTER</strong>
depending on the context for usage. If the function expects an integer, a scalar (double
or complex depending if you compile with BOPT=*_complex), a double precision array, or a
string.</font></li>
<li><font size="3">The Fortran include files are now located in the directory
"include/finclude/*.", rather than "include/FINCLUDE/*.h". The include
files that used to be in "include/finclude/*.h (not recommended) are now in
"include/foldinclude/*.h"</font></li>
<li><font size="3">If you have stored PETSc objects in Fortran integer arrays, such as
<font color="#FF0000">user(3) = vec </font>you have to declare those arrays to be of type <strong>PetscFortranAddr</strong>
instead of as integer. Note that <strong>PetscFortranAddr</strong> is simply integer on 32
bit machines and integer*8 on 64 bit machines.</font></li>
<li><font size="3">The Fortran90-specific routines such as <strong>VecGetArrayF90()</strong>
now work with the IBM Fortran compiler, the SGI Fortran 90 compiler, and the Cray T3E
Fortran compiler.</font></li>
<li>PETSc objects can now be passed between C and Fortran directly. You do not have to use
the commands <strong>PetscCObjectToFortranObject()</strong> and <strong>PetscFortranObjectToCObject()</strong>
to translate the objects between languages.</li>
<li>Changed Fortran object argument from type int to type PetscFortranAddr in the
routines <strong>PetscCObjectToFortranObject()</strong> and <strong>PetscFortranObjectToCObject().</strong></li>
<li>Added the routine <strong>PetscInitializeFortran()</strong> to assist in mixed-language
use of PETSc. See the manual page for details.<br>
</li>
</ul>
</body>
</html>
|