The distributed software contains a README file with installation
instructions, a userguide, the Fortran sources (including some
examples), and precompiled Matlab functions for Unix 64 bit,
Windows 32 bit, Windows 64 bit and Mac OS 64 bit architectures;
sources are also
provided to compile Matlab functions for other architectures.
Software repositories referenced below are password protected.
To obtain temporary access, you need to obtain a license from ULB.
Three types of license are offered:
AGMG is available at no cost for academic research and teaching.
See here for more details.
Commercial (per site):
For use internal to your company we offer site licences.
Please contact us for a price.
For incorporation of AGMG in software that you distribute,
we offer an incorporation licence.
Pricing is done on a case-by-case basis. Please
contact us to discuss your
Note that some modules are specific to the professional version; i.e. are
distributed only with commercial licenses.
Click here or
contact us for details.
If interested, academia and research institutions can purchase a license for
the professional version at modest price (this kind of expense -
license purchase - is admissible for many research grants).
Purchasing the professional version also allows transfer between colleagues,
whereas all academic licenses are stricty personal. Access to the
latest modules can also be granted within the framework of a
scientific partnership with us.
If you obtained an Academic license, go
If you obtained a Commercial license, go
Changes from release 4.2.2:
- Correction of the auxiliary files dagmg_intparamC.c and zagmg_intparamC.c
- In some case, AGMG may detect that the maximum accuracy has been reached and therefore stops iterations regardless the tolerance parameter (see Section 18.104.22.168 of the user guide).
Changes from release 4.2.1:
- The new several instances mode is introduced, which allows one to hold simultaneously in memory several instances of the AGMG preconditioner, related to different matrices (with possibly different sizes).
Changes from release 4.1.1:
- The user can select between different sparse matrix formats for the input matrix.
- AGMG works automatically in assembly mode for the input matrix (duplicated entries are summed).
- Drivers are provided for Long (8 bytes/64 bits) integer arguments.
- Professional version only. Multithreading is now available also for Matlab and Octave.
- AGMG can solve at once for several right hand sides, with significant speedup compared with successive solves.
- All input arguments are unchanged on output, except the right hand side vector. This implies that iter is not
anymore an output argument. (The performed number of iterations is accessed in another way.)
- Fatal errors, including failure in memory allocation, cause returning to the calling program with the variable status set to a positive number, while the memory specifically allocated for this aborted call is cleaned.
- The convergence history is returned to the calling program.
- Some internal parameters can be tuned.
- Professional version only. The number of threads is specified by calling an auxiliary function (Instead of setting an environment variable).
- Julia is supported for Linux OS.
- Slight inconsistencies with the Fortran standard have been cleared, which formerly caused a lot of error messages when compiling the MUMPS part of the provided source files, even preventing the use of the most recent gfortran versions.
Changes from release 3.3.2:
- Professional version only. New main drivers for the MPI and Hybrid versions (AGMGPARG & AGMGPARG8) providing a much simpler interface based on global column numbers.
Changes from release 3.3.0:
- Professional version only. Multithreading is available for both the standard and MPI versions.
- Options ijob=202 and ijob=212 have been added for faster execution when needing several successive solves with the same system matrix.
Changes from release 3.2.1:
- Improved treatment of singular systems.
- Professional version only. Improved parallel performance (verified weak scalability up to 370,000 cores).
Changes from release 3.2.0:
- Professional version only.
The parallel version does not require anymore the installation of the parallel MUMPS library.
- The smoother is now SOR with automatic estimation of the relaxation parameter instead of Gauss-Seidel. In many cases, AGMG still uses Gauss-Seidel as before, but this provides additional robustness, especially in non symmetric cases.
- Default parameters for the parallel version have been modified,
to improve scalability when using many processors.
- Some compilation issues raised by the most recent versions of
gfortran and ifort have been solved, as well as some compatibility issues
with the latest releases of the MUMPS library.
Changes from release 3.1.2:
- The printed output has been slightly changed: the work (number of
floating points operations) is now reported in term of “work units per digit of accuracy”.
Changes from release 3.1.1:
- A few bugs that sometimes prevented the compilation have been fixed; the
code (especially MUMPS relates routines) has been also cleaned to avoid
superfluous warning messages with some compilers.
- The parameters that control the aggregation are now automatically
adapted in case of too slow coarsening.
- Coverage of singular systems is now provided.
Changes from release 3.0 (the first three have no influence
on the software usage):
- The aggregation algorithm is no longer the one described in [Y.N., ETNA, 2010]. It has been exchanged for the one in [A.N. & Y.N., SISC, 2012] in the
symmetric case and for the one in [Y.N., SISC, 2012] for general nonsymmetric
matrices (Note that this is the user who tells if the problem is to be
treated as a symmetric one or not via the argument nrest).
- Systems on the coarsest grid are now
solved with the (sequential) MUMPS sparse direct solver, which
- The meaning of argument
nrest is slightly changed, as it influences also
the aggregation process.
The rule however remains that nrest
should be set to 1 only if the system matrix is symmetric and
- It is now possible to solve a system with the transpose of the input
matrix. This corresponds to further allowed values for
- The naming schemes and the calling sequence of each driver routine
remain unchanged from releases 2.x, but there are slight differences
with respect to releases 1.x.
Whereas with releases 2.x routines were provided for backward
compatibility, these are no longer supported; i.e. application programs based
on the naming scheme and calling sequence
of releases 1.x need to be adapted to the new scheme.
Main AGMG page