-----------------------------------------
Release Notes for Trilinos Package MueLu
-----------------------------------------

Trilinos upcoming
---------------

* New GMRES algorithm for energy minimization.

Trilinos 12.4:
---------------

* MueLu requires certain C++11 features.  Minimum compiler versions are gcc 4.7.2 or icc 13.
  (See https://trilinos.org/about/cxx11.)

* Kokkos is a required dependency.

* New MatrixAnalysis Factory.

* Deprecated Create[TE]petraPreconditioner interfaces taking Tpetra::CrsMatrix
types as input argument in favor of interfaces accepting Tpetra::Operator types.

* Numerous improvements to MueMex (MueLu's interface to Matlab).

* Mumps can now be used as a coarse grid solver through Amesos2.

* Unification of MueLu Epetra and Tpetra interfaces through Stratimikos.

Trilinos 12.2:
---------------

* Allow to dynamically switch transfer operators between different multigrid levels.
  Can be used in context of semi-coarsening.

* Enabled semi-coarsening (using Ray's line detection algorithm).

* Add support for line smoothing (Ifpack/Ifpack2) [EXPERIMENTAL]

* New AMGX Adapter [EXPERIMENTAL]

  New experimental adapter which allows a user with AMGX installed to utilize
  this software for the preconditioning and solution of linear systems. If a
  user provides AMGX configuration options instead of a MueLu input deck, the
  adapter will be called. Currently supported with Tpetra objects.

* Matlab interface for MueLu [EXPERIMENTAL]

  Setup and solve hierarchies from Matlab and use Matlab functions as MueLu factories.

Trilinos 12.0:
---------------

* Hierarchy::Iterate now understands tolerance

  When MueLu::Hierarchy is being used as a standalone solver, and not as a
  preconditioner, a user may now create a stopping criteria based on a provided
  tolerance for the relative residual in addition to the maximum number of
  iterations

* New reuse options option: "tP"

  This reuse option allows reuse of only tentative prolongators, while
  rebuilding smoothed prolongator and coarse level operators.

* Selected bugfixes:
    6301:  Operator complexity was computed incorrectly for large size problems


Trilinos 11.14:
---------------

* Support for Amesos2 native serial direct solver "Basker".

* ML parameters can be used through MueLu::CreateEpetraPreconditioner and
  MueLu::CreateTpetraPreconditioner interfaces


* Several bug fixes:
    6256:  ML parameter "coarse: type" does not work in
           MueLu::MLParameterListInterpreter
    6255:  Multiple issues in MueLu::MLParameterListInterpreter

* Explicit template instantiation (ETI) changes

The new version of MueLu uses Tpetra macros for specifying the desired template
instantiations values (scalars, local ordinals, global ordinals and note
types). As such, Tpetra instantiation configure options provide the necessary
MueLu instantiations. For instance, instead of the previous option
    -D MueLu_INST_DOUBLE_INT_LONGLONGINT=ON
a user should write
    -D Tpetra_INST_INT_LONG_LONG
See Tpetra documentation for a full set of options.

* New reuse feature [EXPERIMENTAL]

MueLu introduced a new experimental reuse feature. A user may specify partial
preservation of a multigrid hierarchy through the "reuse: type" option. Few
variants have been implemented:

  - "none"
    No reuse, the preconditioner is constructed from scratch

  - "emin"
    Reuse old prolongator as an initial guess to energy minimization, and reuse
    the prolongator pattern.

  - "RP"
    Reuse smoothed prolongator and restrictor. Smoothers and coarse grid
    operators are recomputed.

  - "RAP"
    Recompute only the finest level smoother.

  - "full"
    Reuse full hierarchy, no changes.

The current user interface is as follows:

  // User constructs a hierarchy for the first time
  Teuchos::RCP<MueLu::TpetraOperator<SC,LO,GO,NO> > H =
    MueLu::CreateTpetraPreconditioner<SC,LO,GO,NO>(A0, xmlFileName);
  ...
  // User reuses existing hierarchy for consequent steps
  MueLu::ReuseTpetraPreconditioner(A1, *H);

* Support for user-provided data [EXPERIMENTAL]

  New release of MueLu allows user to provide the data for the first few levels
  of the multigrid Hierarchy, while allowing MueLu to construct remaining
  levels. At the minimum, user needs to provide the data for fine-level
  operator A, prolongation operator (P), restriction operator (R) and
  coarse-level operator (Ac). These operator are required to derive from
  Xpetra::Operator class. This scenario is driven through a ParameterList
  interface (see muelu/example/advanced/levelwrap for some use cases).

Trilinos 11.12
--------------

Trilinos 11.12 is the initial release of MueLu.

MueLu is an extensible multigrid library that is part of the Trilinos project.
MueLu works with Epetra (32- and 64-bit versions) and Tpetra matrix types. The
library is written in C++ and allows for different ordinal (index) and scalar
types. MueLu is designed to be efficient on many different computer
architectures, from workstations to supercomputers. While it is MPI based,
MueLu is relies on the "MPI+X" principle, where "X" can be threading or CUDA.

MueLu's software design allows for the rapid introduction of new multigrid
algorithms.

MueLu provides a number of different multigrid algorithms:
 - smoothed aggregation algebraic multigrid (AMG), appropriate for Poisson-like
   and elasticity problems
 - Petrov-Galerkin aggregation AMG for convection-diffusion problems
 - aggregation-based AMG for problems arising from the eddy current formulation
   of Maxwell's equations

A PDF user's guide is located in muelu/doc/UsersGuide.  To compile it, simply
run "make".
