############################################################################### # # # 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.