ML -- History of visible changes
================================
This file reports (some of) the visible changes to
ML.
Please submit
ML bugs at software.sandia.gov/bugzilla, or
report bugs to {jhu|rstumin}@sandia.gov.
August 2008
* Added support for PETSc smoothers in the case when the fine grid
matrix is really a PETSc data structure. This is meant to be used
in conjunction with the Epetra_PETScAIJMatrix class.
* Implemented MPI subcommunicators for direct solves on coarsest
level. This will mainly impact large scale simulations (>1K processors).
Jan 2007
* Improved eigen-value estimates throughout, especially for
non-symmetric systems.
* Improved run times by using Ifpack's native (symmetric)
Gauss-Seidel for Epetra_CrsMatrix types (when Ifpack is available).
------------------------------------------------------------------------------
Dec 2006
* Fixed two overflow bugs in the random number generator. This will
mainly impact very large parallel runs.
July 2006
* Moved ML over to using Makefile.export.ml instead of Makefile.export.
------------------------------------------------------------------------------
June 2006
* Fixed a subtle translation problem between ML's handling of ghost
unknowns and Epetra's. This could only happen in parallel.
* Added a constructor for Maxwell's equations that takes the mass and
curl-curl terms separately.
------------------------------------------------------------------------------
Apr 2006
* Added support for (linear) matrix-free aggregation-based
multilevel preconditioners. Using the new class
EpetraExt and Teuchos, one can compute a preconditioner just by
applying the operator. The class requires the graph of the operator,
and the number of PDE equations, which is supposed to be constant.
------------------------------------------------------------------------------
Mar 2006
* Improved the
ML/Epetra wrappers:
if the
ML_Operator is a wrapper of
an Epetra object, then
ML automatically takes the Epetra pointer
stored in the data field of the ML_operator, and avoid an additional
RowMatrix wrapper. This makes the IFPACK relaxation smoothers
competitive with
ML's internal ones for the finest-level matrix.
* Minor fixes to ml_RowMatrix: NumMyCols() was not correct.
------------------------------------------------------------------------------
Feb 2006
* Several fixes to the energy minimization procedures. The code is
now several times faster and more memory effective.
------------------------------------------------------------------------------
Dec 2005
* Added support for additional prolongator smoother sweeps (higher
degree polynomial smoothing). This should be used with aggressive
coarsening (e.g., METIS, ParMETIS).
------------------------------------------------------------------------------
Aug 2005
* Added capabilities for algebraic nonlinear multigrid
The approach is based on a (possibly nonsymmetric) FAS-V-cycle
(FAS=full approximation scheme) and uses the package
NOX to supply nonlinear smoother/solvers. It is also
capable of generating it's own tangent stiffness matrix if
the user supplies a problem graph only.
This nonlinear multigrid scheme uses NOX interfaces to
interface to the application and can act
as a preconditioner to
some NOX nonlinear solution scheme (e.g. nonlinear CG) or
See the example ml/examples/NonlinML on how to use it.
------------------------------------------------------------------------------
Jul 2005
* Improved the organization of the MLAPI source files and examples.
Now the compilation of the MLAPI sources is about 20% faster,
and the compilation of the MLAPI examples up to 3 times faster.
Some never-used examples and classes have been deleted.
* Drop the support for command line parameters. A similar
capability is supported by the Python interface.
------------------------------------------------------------------------------
Jun 2005
* Completed the
ML wrapper
for Python,
using SWIG. The
ML module
still requires a manual configuration of shared libraries,
as done (on Linux/GCC at the moment) with script
make_shared_linux.sh, located in the PyTrilinos directory.
are available,
for both serial and parallel runs. The
ML module
is compatible with the Epetra and AztecOO modules.
* Changed the wrapper names and contents for Epetra matrices.
is done only once in the construction of the preconditioner.
This results in an improvement of the performances up to
30% for smore test problems.
------------------------------------------------------------------------------
Apr 2005
* Added a simple finite element code, that can be used to test
ML and MLAPI preconditioners. The code offers a pure Galerkin and
a SUPG discretization for second order PDEs, in 2D and 3D, using
triangles, quads, tets, and hexahedra. L2 and H1 norms of the
computed solution and error can be computed. Results can be
visualized using MEDIT.
------------------------------------------------------------------------------
Mar 2005
* In the MLAPI namespace, added class MultiLevelAdaptiveSA, which
implements the \alpha SA algorithm (computation of slow
converging modes for problems with non-smooth kernels).
as Ifpack_Preconditioner, so that
ML can be used
as local
solver in a domain decomposition preconditioner.
* Extended capabilities to read matrices from file in various
formats.
* Added support for adaptive smoothed aggregation within MLAPI.
A new class, called MultiLevelAdaptiveSA, has been added.
* Added a prototype of class for non-symmetric smoothed
aggregation.
* Added capability to write visualization files in legacy VTK
(Visualization toolkit) format. These are readable by paraview,
which is freely available from www.paraview.org. Supports 1D/2D/3D
point cloud visualization for aggregates,
as well
as solution
visualization.
------------------------------------------------------------------------------
Feb 2005
* Improved the MLAPI files.
------------------------------------------------------------------------------
Jan 2005
* The first cut of the MLAPI is now available. MLAPI is the
MATLAB-like parallel programming module of
ML. Right now only
a limited subset of
ML functionalities is available.
Epetra_Operator and no longer from Epetra_RowMatrix). Updated the
filtering/GGB algorithm, which now supports only Anasazi and the
non-symmetric cycle. Some never-used methods have been deleted
(like scaling).
* Improved compilation on several machines; now
ML *should* compile
with no warnings on Linux using `-g -ansi -pedantic -Wall
-Wno-format-extra-args'.
------------------------------------------------------------------------------
Dec 2004
* Improved the organization of the examples, introduces more
detailed comments and some README files. Deleted some outdated
examples.
* Bug fixes to the auxiliary matrix algorithm for problems defined
on stretched grids.
------------------------------------------------------------------------------
Nov 2004 (current version 3.1)
*
ML now supports Zoltan
as coarsening scheme (RCB only). Zoltan
can be used to create the aggregates, but also to redistribute
the next-level operator among the specified number of
processors (which can be less than the available number of
processoes)
* Several minor and major fixes to the example suite
* Added a test to verify the correctness of compiled examples
* Extended the test harness scripts and files
* a variable-block partiononing scheme (based on METIS) is
now available.
------------------------------------------------------------------------------
Oct 2004
* Support for new IFPACK smoothers.
ML now supports IFPACK's
variable block Jacobi, Gauss-Seidel and symmetric Gauss-Seidel
preconditioners,
as well
as the IFPACK-Amesos preconditioners
(subdomain-based exact LU factorizations)
* Fixes support for Amesos solver (introducing LAPACK as coarse
solver)
------------------------------------------------------------------------------
May 2004 (current version 3.0, distributed with Trilinos 4.0)
* Update the ml user's guide (in the doc subdirectory)
* Improved interface to C++. Introduced two classes to use
ML_Epetra namespace): MultiLevelOperator and
are now supported
* Improved interface to Amesos. Now
ML can use Anasazi to estimate
the maximum eigenvalue for both symmetric and non-symmetric
problems.
* Improve interface to Anasazi
*
Add power method to estimate lambda max for non-syymmetric
problems
* Improve the MLS preconditioner for block systems
* New options for configure. Drop --with-ml_epetra (and similar
for other Trilinos packages), and use --enable-epetra (and similar)
* Fixed various compiler warnings for LINUX (GNU and Intel),
SGI 64, DEC, west-cplant, ASCI Red
------------------------------------------------------------------------------
Apr 2004
* Change to support new Teuchos methods' name
* Change to support new Amesos methods' name
* Now support to
ML native interface to SuperLU and SuperLUDIST
is deprecated in favor of Amesos interface
------------------------------------------------------------------------------
Jan 2004
*
Add METIS and ParMETIS aggregation schemes
*
Add interface to Amesos
*
Add interface to IFPACK
*
Add interface to Anasazi
*
Add configure options --with-ml_epetra, --with-ml_parmetis2x,
--with-ml_parmetis3x, --with-ml_ifpack, --with-ml_anasazi
*
Add two-level additive and hybrid domain decomposition
preconditioners (not officially supported)
------------------------------------------------------------------------------
Sep 2003 (version 2.0, distributed with Trilinos 3.1)
*
ML has now been put "autotooled", i.e., autoconf and automake.
* Haim Waisman's GGB method has been implemented.
* Bill Cochran's cache optimizations for multiple RHSs have been
implemented.
* Bill also has added code so that
ML will compile with c++ compilers.
------------------------------------------------------------------------------
ml2_1_0_0-branch-patch_1
* 1st patch for release ml2_1_0_0 (trilinos-release-3-01-branch).
* Bug fix for eigenvalue estimate that was causing Alegra
sinmag benchmark to fail.
* Added definitions for make macro CXX in architecture-dependent
makefiles in order for Alegra to be able to build epetra interfaces.
* Minor changes to block matrix (equivalent real form)
capabilities.
* Fixed compiler warnings.
------------------------------------------------------------------------------
mystring = ml2_1_0_0
* Many minor fixes to get the commuting relationship T_h P_n = P_e T_H
exactly right.
* Serial implementation of enriched prolongator.
* New norm for convergence of Maxwell solver. This norm measure
and scales properly the range space and null space components of
the (curl,curl) operator.
------------------------------------------------------------------------------
mystring = ml2_0_0_5
* Changes in aggregation post-processing to improve aggregate quality.
* Added wrappers so that
ML can use Epetra objects & so that
AztecOO can use
ML as a preconditioner.
* Added block Maxwell capabilities for real block systems that are
equivalent to the complex systems arising from Maxwell in the
frequency domain.
------------------------------------------------------------------------------
mystring = ml2_0_0_3
* Added in smoothing of Reitzinger/Schoeberl prolongator.
* Least squares and smoothed l.s. prolongators in serial for R/S AMG.
* Enhanced detection of degenerate coarse grid matrices in building
R/S AMG hierarchy.
------------------------------------------------------------------------------
mystring = ml2_0_0_2
* Symmetrize Hiptmair smoother and finished off MLS within Hiptmair.
------------------------------------------------------------------------------
ml2_0_0_1
* MLS polynomial smoother
* matrix does not need to be scaled.
* Added more print control:
- "ml_inputfile" now takes an additional argument in the general
- problem specs section:
- "Print Level = [an integer]"
- 0 => minimal output
- 1 => some output (default)
- 2,3,... => increasing amounts of output
------------------------------------------------------------------------------
ml2_0_0_0
* AMG for Maxwell's equations
* Reitzinger Schoeberl AMG.
* Hiptmair smoother.