###############################################################################
# #
# Trilinos Release 10.6 Release Notes #
# #
###############################################################################
Overview:
The Trilinos Project is an effort to develop algorithms and enabling
technologies within an object-oriented software framework for the solution of
large-scale, complex multi-physics engineering and scientific problems.
Packages:
The Trilinos 10.6 general release contains 48 packages: Amesos, Anasazi,
AztecOO, Belos, CTrilinos, Didasko, Epetra, EpetraExt, FEI, ForTrilinos^,
Galeri, GlobiPack, Ifpack, Ifpack2**, Intrepid, Isorropia, Kokkos, Komplex,
LOCA, Mesquite, ML, Moertel, MOOCHO, NOX, Optika, OptiPack, Pamgen, Phalanx,
Piro, Pliris, PyTrilinos, RTOp, Rythmos, Sacado, Shards, STK, Stokhos,
Stratimikos, Sundance, Teko*, Teuchos, ThreadPool, Thyra, Tpetra, TriKota,
TrilinosCouplings, Triutils, Zoltan.
(* denotes package is being released externally as a part of Trilinos for the
first time.)
(** Ifpack2 was previously released under the name "Tifpack".)
(^ ForTrilinos was added to the external release for Trilinos 10.4.1.)
Framework Release Notes:
- New to Trilinos 10.6 is a small functional example to be used as a template
for applications that use CMake and want to build against an installed
version of Trilinos. The application automatically pulls required
information from Trilinos including compilers, include paths, and library
names (in the correct order). The example can be found in
demos/buildAgainstTrilinos.
More information:
Trilinos website: http://trilinos.sandia.gov
===============================================================================
Package Release Notes:
-------------------------------------------------------------------------------
Anasazi
- Better support for Tpetra in Anasazi.
-------------------------------------------------------------------------------
Belos
- Minor changes in Belos/Tpetra adaptors.
-------------------------------------------------------------------------------
ForTrilinos
- This release includes 11 modules or classes of the Epetra package.
- This package is still in its experimental stage and is only supported on AIX.
- Sample configure script are provided in
Trilinos/sampleScripts/aix-fortrilinos-serial and
Trilinos/sampleScripts/aix-fortrilinos-mpif90 for serial and mpi builds
respectively.
- Because of the object-oriented features used, it requires a XL Fortran
compiler v13.1. The source code can be compiled using the xlf compiler
option.
- Required compiler flags for Fortran include:
-qfixed=72 -qxlines: deals with older Fortran source code in other Trilinos
packages. These flags are used for mpi builds and must
be specified in the configure script.
-qxlf2003=polymorphic: allows for the use of polymorphism in the source code.
-qxlf2003=autorealloc: allows the compiler to automatically reallocate the
left hand side with the shape of the right hand side
when using allocatable variables in an assignment.
-qfree=f90: informs the compiler that the source code is free form
and conforms to Fortran 90.
These flags(-qfree=f90 -qxlf2003=polymorphic -qxlf2003=autorealloc) are
hardcoded in Trilinos/packages/ForTrilinos/CMakeLists.txt
- Required compiler flag for xlc++ include:
-qrtti=all: this flag should be included in the configure script.
- The project is primarily user-driven; so new interfaces are developed at the
request of Trilinos users.
-------------------------------------------------------------------------------
Kokkos
Significant internal/external changes to both the Kokkos Node API and the
Kokkos Linear Algebra library. Most of these changes are centered around
CrsGraph and CrsMatrix and their kernels. Some exciting developments
regarding sparse mat-vec on multi-core/GPUs did not make it in this release;
look for more development in 10.6.1.
- Lots of additional documentation, testing and examples in Kokkos.
- Improved debugging in Kokkos Node API
- Added isHostNode static bool to all Kokkos nodes (false for ThrustGPUNode)
- Imported select Teuchos memory management classes/methods into the Kokkos
namespace.
- Minor bug fixes, warnings addressed.
Changes breaking backwards compatbility:
- Kokkos CRS classes (i.e., CrsGraph and CrsMatrix) are now templated on the
sparse kernel operator, allowing specialization of the class data
according to the implementation of the kernel.
- Kokkos CRS classes now contain host-allocated memory, instead of
node-allocated memory. This means that use of these buffers by the node
will, in general, require a copy.
-------------------------------------------------------------------------------
Meros
- Meros has been removed from the release. Teko provides replacement
Functionality.
-------------------------------------------------------------------------------
ML
User-Level functionality changes
- Modifications to ML to allow user to specify the use of CRS storage.
Certain methods in Ifpack are much more efficient if the matrix is in
Epetra_CRS_Matrix mode. This new switch tells ML to store things as CSR
instead of MSR (it's still the default).
- Modifying MLMEX so the solve mode can (optionally) return iteration
counts. Only works in ML_Epetra mode, not MLAPI.
- Adding ML support for Ifpack-SuperLU(ILUTP) smoother.
- Adding a face-based least-squares finite element (LSFEM)
preconditioner to ML. See TrilinosCouplings for an example.
- Adding MLMEX matlab interface to the cmake build system.
Internal changes, output changes and bugfixes
- Fixed a bug in ML_Project_Coordinates so that it works where
dim != numPDEs. For using auxillary aggregation for problems like linear
elasticity.
- Fixing a memory leak in ML_Init_Aux.
- Adding additional output to ML. This focuses on the IFPACK/SORa
smoother as well as improved RefMaxwell output.
- Modifications to RefMaxwell to allow direct use of Ifpack (rather
than via MLP).
- Removing ML's dependence on ZoltanTpl.
- Changed the output of the IFPACK-ILU smoother so that it is more
informative.
-------------------------------------------------------------------------------
Teko
Teko is a library for implementation of blocked and segregated preconditioners
in the context of iterative solvers for linear systems. This includes a high
level interface for manipulating block operators and creating inverse
operators using solver and preconditioning capabilities in Trilinos. In
addition, utilities are provided that decompose large Epetra_CrsMatrix objects
into physically meaningful sub blocks. A brief over view of the capabilities
built in Teko is
- Generic preconditioners operations: Additive, multiplicative, Neumann
series, block Gauss-Seidel, block Jacobi, and 2x2 block LU factorization
- Manipulation of abstract linear operators: implicit/explicit operator
addition and multiplication, constructing an approximate inverse operator
using Trilinos preconditioner and solver technology
- Deconstruction of Epetra_CrsMatrix into is physical components
- Parameter list driven interface for constructing preconditioners
NOTE: A word of caution. The interfaces in Teko are still maturing and may
change substantially in the future.
-------------------------------------------------------------------------------
Tpetra
Significant internal changes in Tpetra for this release, mostly centered
around the CrsMatrix class. Lots of new features centering around
multi-core/GPUs did not make it in this release; look for more development in
10.6.1.
- Lots of additional documentation, testing and examples in Tpetra.
- Imported select Teuchos memory management classes/methods into the Tpetra
namespace.
- Updates to the Anasazi/Tpetra adaptors for efficiency, node-awareness and
debugging.
- Minor bug fixes, warnings addressed.
Changes breaking backwards compatbility:
- Tpetra CRS objects (i.e., CrsGraph and CrsMatrix) are required to be
"fill-active" in order to be modified. Furthermore, they are requried to be
"fill-complete" in order to call multiply/solve. The transition between
these states is mediated by the methods fillComplete() and resumeFill().
This will only effect users that modify a matrix after calling
fillComplete().
Newly deprecated functionality:
- CrsGraph/CrsMatrix persisting views of graph and matrix data are now
deprecated. New, non-persisting versions of these are provided.