###############################################################################
# #
# Trilinos Release 10.8 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.8 general release contains 50 packages: Amesos, Amesos2*,
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, SEACAS*, 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.)
Framework Release Notes:
- MPI Fortran compiler wrapper search change
Starting with Trilinos 10.8, when MPI is enabled and a specific Fortran
compiler is not specified at configure time, the first wrapper searched for
will be mpif90 instead of mpif77. If a mpif90 wrapper is not found, the
search will continue and attempt to find mpif77. Depending on the
underlying compilers used and the mpi configuration, a mpif90 wrapper may
exist, but not be functional. In those cases, a functional Fortran compiler
wrapper should be specified at configure time.
- CMake export system changes:
The CMake export system used for finding Trilinos in other CMake projects
has had some changes to better support CMake projects. First there are now
CMake targets for each library that is exported. This will allow easier
handling of dependencies for libraries as all of that information is now
stored in the CMake Target. The location of the installed *Config.cmake
files has changed. They are no longer in the /include
directory, but are instead in /lib/cmake//Config.cmake. These paths are more like what CMake
expects and should only require minor changes to the search path you give to
find_package(...). You should only need to point to the install prefix where
Trilinos was installed when using find_package now.
More information:
Trilinos website: http://trilinos.sandia.gov
===============================================================================
Package Release Notes:
-------------------------------------------------------------------------------
Amesos2
- Initial Public release of Amesos2. Amesos2 provides a common interface to
different direct solver libraries from Trilinos.
- Supports SuperLU, SuperLU_MT and SuperLU_Dist direct solvers.
- Supports Epetra and Tpetra matrices and mulitvectors.
- Supports 64-bit and complex data types.
EpetraExt
- The EpetraExt interface to Zoltan is deprecated in Trilinos v10.8 and will
be removed in Trilinos v11. Users of this interface should switch to the
Isorropia package or use Zoltan directly.
Isorropia
- New class Isorropia::Epetra::Matcher solves the
maximum cardinality matching problem for the bipartite graph.
This is also known as a maximum transversal, and is
typically used to permute a sparse matrix to zero-free diagonal form.
The current implementation uses OpenMP and shared memory model.
It does not work on distributed matrices.
- Isorropia is now supported in PyTrilinos.
Kokkos
- New multidimensional array sub-package in kokkos/array subdirectory.
The MDArrayView, MultiVectorView,
and ValueView template classes manage allocated
memory on the 'Device' and perform compile-time selection of a
device-optimal mapping of array's multi-index space to data members.
Includes unit tests, performance tests, and example mini-applications.
PyTrilinos
- Improved the MPI initialization logic in Teuchos and Epetra modules.
Previously, both modules would call MPI_Init() when they were imported
into the python interpretter and register MPI_Finalize() with the
atexit module (each module did perform checks before executing the
calls in case the other module beat it to the punch). Now, each
module checks to see if MPI_Init() has already been called, and if so,
it does not register MPI_Finalize() with atexit. This way, if the
user initializes MPI ahead of importing Teuchos or Epetra (such as
with mpi4py, for example), then the user is responsible for
finalization, and can assume finer control.
- Added the Isorropia package, for partitioning Epetra objects. This
includes an IsorropiaVisualizer.py script.
- This release contains a large number of internal changes mostly not
visible to end users, except for increased stability and bug fixes.
One big change is that C++ referenced counted pointers (via the
Teuchos::RCP class) are now properly handled. Fixed a couple of bugs
in the Amesos, AztecOO and EpetraExt wrappers. Changed the Amesos
example scripts to follow PyTrilinos coding standards. Put all C++
code within the PyTrilinos namespace. Changed C++ file names to have
PyTrilinos_ prefix.
SEACAS
- New in Trilinos 10.8 the SEACAS package includes the following libraries
and applications:
- Libraries:
- Exodus: database used to store and retrieve data for finite element
analyses
- Nemesis: add-on to exodus providing data for parallel finite element
analyses
- Ioss: C++ front-end to exodus library; provides a higher-level IO
support for finite element applications
- Aprepro: Can be used to embed aprepro functionality into an
application
- chaco: graph partitioning library used by nem_slice application
- supes: memory management, parsing, and system routines used by
seacas fortran applications
- suplib: common fortran routines used by the seacas fortran
applications
- Applications:
- algebra: manipulate data in exodus databases using equations and
functions.
- aprepro: algebraic preprocessor; reads a file containing both
general text and algebraic, string, or conditional
expressions. It interprets the expressions and outputs
them to the output along with the general text.
- conjoin: joins two or more Exodus databases into a single database.
The input databases should represent the same model
geometry with similar variables.
- ejoin: used to join two or more Exodus databases into a single
Exodus database. The input databases must have disjoint
meta and bulk data.
- epu: Combines multiple Exodus databases produced by a parallel
application into a single Exodus database. Replaces
nem_join.
- exo2mat: translates exodus data into Matlab mat-file format.
Requires matlab libraries.
- exodiff: compares results data from 2 exodus databases.
- exomatlab: translates exodus global data into a matlab-readable file.
- exotxt: convert exodus database to text format
- gjoin: join 2 or more exodus databases into a single database.
Will combine nodes, blocks, nodesets, sidesets
- grope: query an exodus database.
- mapvar: transfer solution results from one database to another.
- mapvar-kd: same as mapvar with a kd-based internal search; minor other
differences.
- mat2exo: convert a Matlab mat-file into an exodus database. Requires
Matlab libraries.
- nem_slice: generate a decomposition of a finite element mesh for use
in parallel analyses
- nem_spread: use the nem_slice output to spread a finite element mesh
into multiple files; one per processor for use in parallel
analyses.
- txtexo: convert a exotxt-formatted text file into an exodus
database.
- Scripts:
- decomp: drives nem_slice and nem_spread to decompose a mesh for use
in parallel analyses.
Teuchos
- Added automatic stack tracing info for exception messages, segfaults, and
aborts. Thanks to the work of Ondrej Certik we now have built-in support
for generating strack traces when using g++ when uncaught exceptions are
encountered or when a segfault or about occurs. See the Doxygen
documentation for more details for how your project can take advantage of
this feature.
Zoltan
- Added new recoloring capability to Zoltan coloring algorithms, providing
lower numbers of colors at small additional cost.
- Updated Zoltan to allow use of third-party libraries ParMETIS versions 3.1
and 4.0 and Scotch versions up to 5.1.12.
- Updated Zoltan's hierarchical partitioning for greater efficiency.
- Fixed bug in autotools installation of Zoltan; file Zoltan_config.h is now
installed in the specified include directory.
- Fixed Fortran90 interface issues that caused compilation and run-time
problems with gcc 4.5 and later when compiler optimization was enabled.
- Added support for 64-bit builds of Zoltan, enabling operation on more
than 2B objects. See details for building in the Zoltan User's Guide.