597 lines
21 KiB
Plaintext
597 lines
21 KiB
Plaintext
#BHEADER**********************************************************************
|
|
# Copyright (c) 2007, Lawrence Livermore National Security, LLC.
|
|
# Produced at the Lawrence Livermore National Laboratory.
|
|
# Written by the HYPRE team. UCRL-CODE-222953.
|
|
# All rights reserved.
|
|
#
|
|
# This file is part of HYPRE (see http://www.llnl.gov/CASC/hypre/).
|
|
# Please see the COPYRIGHT_and_LICENSE file for the copyright notice,
|
|
# disclaimer, contact information and the GNU Lesser General Public License.
|
|
#
|
|
# HYPRE is free software; you can redistribute it and/or modify it under the
|
|
# terms of the GNU General Public License (as published by the Free Software
|
|
# Foundation) version 2.1 dated February 1999.
|
|
#
|
|
# HYPRE is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the IMPLIED WARRANTY OF MERCHANTABILITY or FITNESS
|
|
# FOR A PARTICULAR PURPOSE. See the terms and conditions of the GNU General
|
|
# Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public License
|
|
# along with this program; if not, write to the Free Software Foundation,
|
|
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
# $Revision$
|
|
#EHEADER**********************************************************************
|
|
|
|
|
|
|
|
#=============================================================================
|
|
# This file chronicles user-level changes to hypre, beginning with the most
|
|
# recent release.
|
|
#=============================================================================
|
|
|
|
Version 2.3.1a released, 2008/01/31.
|
|
|
|
- A bug fix (uninitialized variables introduced when AMS was added to
|
|
the FEI preconditioner list).
|
|
|
|
- Fixed a memory allocation bug in new SStruct SetNeighborPart feature.
|
|
|
|
- Added a new option for the Schwarz smoothers
|
|
(HYPRE_BoomerAMGSetSchwarzUseNonSymm and HYPRE_SchwarzSetNonSymm) to
|
|
use LU instead of Cholesky LAPACK functions to invert the matrix
|
|
blocks.
|
|
|
|
-Fixed a bug with the Schwarz smoothers and the ESSL compile.
|
|
|
|
|
|
#====================================
|
|
|
|
Version 2.3.0a released, 2008/01/28.
|
|
|
|
- Completed the implementation of SStructGridSetNeighborBox to work for all
|
|
variable types (not just cell-centered). In the process, we discovered that
|
|
the interface design for this routine can result in ambiguous coordinate
|
|
transformations between parts, so the new SetNeighborPart routine (below)
|
|
should be used instead.
|
|
|
|
- Introduced the SStructGridSetNeighborPart routine. Users migrating from
|
|
SetNeighborBox to this new routine only need to change the name ("Box" to
|
|
"Part") and append an additional argument 'index_dir'. See the reference
|
|
manual for details.
|
|
|
|
- The SStructSplit solver can now be used as a standalone solver (before, it
|
|
could only be used as a preconditioner). Added HYPRE_Jacobi as an option to
|
|
SetStructSolver.
|
|
|
|
- Added Get(Box)Values routines for Struct/SStruct Matrix.
|
|
|
|
- Added nodal interpolation schemes to BoomerAMG for systems problems.
|
|
|
|
- Added capability to change Euclid runtime parameters using individual
|
|
functions.
|
|
|
|
- Improved use of Euclid as smoother in BoomerAMG.
|
|
|
|
- Fixed two potential bugs in BoomerAMG.
|
|
|
|
- Fixed a major bug with the OpenMP code in hypre (beginning with v1.7.5b,
|
|
OpenMP support was effectively disabled in the code). Also made several
|
|
additional OpenMP changes/fixes.
|
|
|
|
#====================================
|
|
|
|
Version 2.2.0b released, 2007/09/20.
|
|
|
|
- Renovate the FEI block preconditioner which will be useful for ALE3D
|
|
simulation of mixed variable type problem
|
|
|
|
#====================================
|
|
|
|
Version 2.1.0a released, 2007/06/25.
|
|
|
|
- Added the CGC and CGC-E coarsening algorithms, which have been developed
|
|
and implemented by Michael Griebel, Bram Metsch and Alex Schweitzer of
|
|
the University of Bonn.
|
|
|
|
- Added several new solver types to AMS and improved the AMS/FEI integration.
|
|
|
|
- Better handling of the relative change test in GMRES.
|
|
|
|
- Improved weights for Struct and SStruct weighted Jacobi.
|
|
|
|
- Added a 'make check' target that does a simple code verification test.
|
|
|
|
- Added truncation for interpolation according to the number of elements to the
|
|
ParCSR Hybrid AMG Solver.
|
|
|
|
- Renovated the hypre fei implementation for use in ARES.
|
|
|
|
#====================================
|
|
|
|
Version 2.0.0 released, 2006/12/15.
|
|
|
|
- Minor documentation updates.
|
|
|
|
#====================================
|
|
|
|
Version 1.14.0b released, 2006/11/30.
|
|
|
|
- Added python support to Babel interface.
|
|
|
|
- Changed the name of several internal header files to use the '_hypre_' prefix.
|
|
This should not affect most users, since these are internal headers.
|
|
|
|
- Added AME, a new Maxwell eigensolver based on AMS and LOBPCG.
|
|
|
|
- Changes to Struct code to hopefully improve efficiency of MG solver setup.
|
|
|
|
- Efficiency improvements for new long-range interpolation algorithms in
|
|
BoomerAMG, including:
|
|
* extended interpolation is now like modified, i.e no absolute values
|
|
* added an extended interpolation which only extends when there are no
|
|
common coarse neighbors
|
|
* changed standard interpolation to only extend at strong F neighbors
|
|
(instead of all neighbors) for better efficiency
|
|
|
|
#====================================
|
|
|
|
Version 1.13.0b released, 2006/10/03.
|
|
|
|
- Babel-based interface updated to Babel version 1.0.0, plus various
|
|
improvements, such as an interface to the hypre error handler. Pre-built
|
|
interfaces are included for C, Fortran, and C++.
|
|
|
|
- Various modifications to BoomerAMG:
|
|
* Eliminated the possibility to set relaxation on the finest grid
|
|
* Added various new long-range interpolation algorithms: standard (with and
|
|
without weight separation), extended, and F-F interpolation. These routines
|
|
will improve convergence for the low complexity coarsening algorithms PMIS
|
|
and HMIS.
|
|
* Added the possibility to set a maximal number of weights per row <n> when
|
|
truncating the interpolation operator. When this option is used, only the
|
|
absolutely largest <n> weights per row are kept.
|
|
|
|
- Modifications to the fac user interface to permit easier problem set up.
|
|
|
|
- Shared libraries can be built by using the --enable-shared option when
|
|
configuring. NOTE: the directory where the shared libraries reside MUST be
|
|
defined in the LD_LIBRARY_PATH variable.
|
|
|
|
- Incorporated the GNU Lesser General Public License.
|
|
|
|
- Now using Roundup for issue tracking; send email to hypre-support@llnl.gov
|
|
|
|
#====================================
|
|
|
|
Version 1.12.0a released, 2006/07/26.
|
|
|
|
- First release of AMS, a new solver for (semi)definite Maxwell problems.
|
|
|
|
- First release of Maxwell, a semi-structured Maxwell solver.
|
|
|
|
- Modifications to the fac user interface to permit easier set up of the problem.
|
|
|
|
#====================================
|
|
|
|
Version 1.11.1b released, 2006/05/30.
|
|
|
|
- Corrected FEI build to allow user to specify a system FEI and build internal
|
|
HYPRE routines.
|
|
|
|
#====================================
|
|
|
|
Version 1.11.0b released, 2006/04/24.
|
|
|
|
- Added configure option --without-FEI to disable build of internal FEI
|
|
routines.
|
|
|
|
- Added a new system for handling error codes in hypre.
|
|
|
|
- Added configure option --print-errors to enable printing of HYPRE error
|
|
messages.
|
|
|
|
- Modified configure to only depend on having a C compiler available.
|
|
|
|
- Added compatible relaxation on one processor.
|
|
|
|
- Updated all F90_HYPRE_* files to be consistent with HYPRE_* files.
|
|
|
|
- Updated ex5.c to include:
|
|
* an option to print the system matrix and rhs
|
|
* a description of how to read in a matrix and rhs in IJ format.
|
|
|
|
- Corrected error that occured when more than one Euclid solver object is used
|
|
at the same time
|
|
|
|
- Added Maxwell capabilities via Sandia's ML solvers; see details in
|
|
FEI_mv/fei-hypre/CHANGELOG.
|
|
|
|
- Replaced PILUT with Euclid in test code sstruct.c.
|
|
|
|
#====================================
|
|
|
|
Version 1.10.0b released, 2005/12/19.
|
|
|
|
- configure updates
|
|
* always runs --without-blas --without-lapack unless otherwise specified
|
|
* cross-compiling enabled
|
|
* added --with-no-global-partition option
|
|
|
|
- makefile updates
|
|
* changed eigensolvers subdirectory to multivector
|
|
|
|
- Added a set of simple example codes covering the Struct, SStruct and IJ
|
|
interfaces. See README.html in the examples subdirectory for more details.
|
|
|
|
- The --with-no-global-partition option was added to reduce storage and improve
|
|
run times on very large numbers of processors (such as BlueGene/L). Currently
|
|
only the IJ interface solvers have been optimized. For small or modest
|
|
numbers of processors (typically < 1000-5000 depending on the machine), this
|
|
option is not needed (and will likely be slower).
|
|
|
|
- Added aggressive coarsening, which can be applied to all available coarsening
|
|
schemes (via HYPRE_BoomerAMGSetNumAggLevels and HYPRE_BoomerAMGSetNumPaths)
|
|
|
|
- Added multipass interpolation and direct interpolation.
|
|
|
|
- Added the capability of nodal coarsening for systems AMG.
|
|
|
|
- expanded coverage of Babel-based interface
|
|
|
|
#====================================
|
|
|
|
Version 1.9.0b released, 2005/02/10.
|
|
|
|
- Added updated LOBPCG source code and test files.
|
|
|
|
- Added a vector Laplace problem for testing systems AMG.
|
|
|
|
- Added FAC to semi-struct
|
|
|
|
#====================================
|
|
|
|
Version 1.9.0a released, 2005/01/18.
|
|
|
|
- NOTE: Link lines may need to be changed depending on configure options used.
|
|
|
|
- The build system introduced in v1.8.3a was too difficult to maintain, so we
|
|
have reverted to a system similar to the previous one. In particular, all of
|
|
the new automake and libtool stuff was removed. In the new system, each
|
|
directory (except 'config') has ONLY a 'Makefile' (no more 'Makefile.in' or
|
|
'Makefile.am' files). When the 'configure' script is run, the single file
|
|
'config/Makefile.config' is created. This file is included in all Makefiles
|
|
in all sub-directories. Shared libraries CANNOT be created with this system.
|
|
|
|
- The makefile targets are now more inline with GNU standards. To get details,
|
|
type 'make help'.
|
|
|
|
- The makefile target 'nofei' has been removed and is now run by default.
|
|
|
|
- The library files 'libHYPRE_blas.a' and 'libHYPRE_lapack.a' are no longer
|
|
created when 'configure' is run '--without-blas' and/or '--without-lapack'.
|
|
This created confusion before and really didn't make sense anyway. These
|
|
options are now consistent with the '--without-MPI' option. Also, there is
|
|
no longer any danger of name conflicts with external blas or lapack libraries
|
|
as was the case before.
|
|
|
|
- Added new parallel coarsening schemes PMIS and HMIS with reduced complexities
|
|
as well as the option of using one pass of Ruge-Stueben only.
|
|
|
|
- Added the capability to set values from any processor through the IJ matrix
|
|
and vector interfaces.
|
|
|
|
- Added support to the PFMG solver for matrices with constant coefficients.
|
|
|
|
- Reverted back to the first approach for setting periodic conditions. The
|
|
periodic flag now contains the periodicity value, and is not just a boolean.
|
|
|
|
#====================================
|
|
|
|
Version 1.8.3a released, 2004/01/21.
|
|
|
|
- The build system has been revamped to enable the building of shared
|
|
libraries (in addition to static libraries, as before). The new
|
|
system more closely follows GNU standards, and will hopefully show
|
|
improved flexibility and platform support. Users can build hypre
|
|
as before by typing 'configure' followed by 'make'. A few makefile
|
|
target changes to note are:
|
|
|
|
* 'make clean' replaces 'make veryclean'
|
|
* 'make all' no longer builds the drivers in the 'test' directory.
|
|
If needed, build them from within the 'test' directory or
|
|
use the 'make test' target.
|
|
|
|
Technical notes: We are now using GNU automake-1.8.2 to support
|
|
Makefile.in generation; autoconf-2.59 to generate configure; and
|
|
libtool-1.5 to provide shared library support. The GNU tools,
|
|
autoheader, libtoolize, and aclocal are also used. These tools are
|
|
only used by hypre developers and are *not* needed to build hypre.
|
|
|
|
- Separated the lapack and blas routines into two libraries. Blas and
|
|
lapack support (whether to use the routines distributed with hypre or
|
|
use already installed libraries) is determined by configure, and can
|
|
be overridden with '--with-blas=<lib>' and '--with-lapack=<lib>'.
|
|
NOTE: This change affects your link line!
|
|
|
|
- A new directory 'lib' contains a new Hypre library, 'libHYPRE.a' (and
|
|
'libHYPRE.so' if configured for shared libraries) which contain
|
|
all of the libHYPRE_*.a objects with in a single library.
|
|
|
|
- Fixed the PFMG and SMG solvers to work in the case of pure Neumann
|
|
boundary conditions.
|
|
|
|
#====================================
|
|
|
|
Version 1.8.2b released, 2003/10/22.
|
|
|
|
- Performance improvements for Struct solvers when there are many
|
|
boxes per processor in the grid. For 125 boxes or more in 3D,
|
|
the speedup in the setup phases of PFMG and SMG can be significant
|
|
(we have seen as much as a factor of 30).
|
|
|
|
- New non-Galerkin option in PFMG can improve convergence and memory
|
|
usage. This option maintains either a 5-pt stencil in 2D or a 7-pt
|
|
stencil in 3D on all grid levels.
|
|
|
|
- New non-symmetric red/black smoother in PFMG can improve
|
|
convergence on some problems.
|
|
|
|
- New optimizations in the smoothers in PFMG lead to as much as 30%
|
|
faster times.
|
|
|
|
- Added a new interpolation option to AMG that is useful for solving
|
|
hyperbolic equations. It treats fine weak connections like fine
|
|
strong connections.
|
|
|
|
#====================================
|
|
|
|
Version 1.8.1b released, 2003/05/21.
|
|
|
|
- Minor bug fixes and performance improvements.
|
|
|
|
#====================================
|
|
|
|
Version 1.8.0b released, 2003/04/08.
|
|
|
|
- New Babelized HYPRE interface introduced. Babel is a tool that
|
|
provides language interoperability. HYPRE will eventually migrate
|
|
to using Babel exclusively. See 'docs/babel_transition_info.txt' for
|
|
information on how to use the new interface.
|
|
|
|
- PFMG: bug fix for red/black relaxation.
|
|
|
|
- Eigenvalue solver LOBPCG has been added. See 'docs/lobpcg_info.txt'
|
|
for documentation.
|
|
|
|
#====================================
|
|
|
|
Version 1.7.11a released, 2003/03/14.
|
|
|
|
- BiCGSTAB has been added to struct and sstruct interface
|
|
|
|
- added automatic determination of relaxation parameters for use with symmetric
|
|
smoothers in BoomerAMG
|
|
|
|
#====================================
|
|
|
|
Version 1.7.10b released, 2002/12/02.
|
|
|
|
- New Hybrid solvers available for ParCSR and Struct.
|
|
|
|
- IJ: Modified the 'GetValues' part of the matrix interface to make
|
|
it possible to get matrix values without knowing the nonzero
|
|
structure. In particular, added a new option to IJMatrixGetValues,
|
|
and added new routines IJMatrixGetRowCounts, IJMatrixGetLocalRange,
|
|
and IJVectorGetLocalRange.
|
|
|
|
- SStruct: Fixed a bug when connecting a part to itself with SetNeighborBox.
|
|
|
|
- FEI: Added a few more smoothers and amg methods in mli, fixed a few memory
|
|
leaks uncovered by running ale3d, added new aggregation coarsening for
|
|
handling multiple materials. For more details, see
|
|
FEI_mv/fei-hypre/CHANGELOG.
|
|
|
|
#====================================
|
|
|
|
Version 1.7.9b released, 2002/10/18.
|
|
|
|
- SStruct: Added an if around sorting and eliminating duplicate
|
|
iUventries so that its only executed when there are at least 2
|
|
such entries.
|
|
|
|
#====================================
|
|
|
|
Version 1.7.8b released, 2002/09/25.
|
|
|
|
- SStruct: Changed the MatrixSetSymmetric interface (this was actually
|
|
not implemented before anyway). The new interface allows much more
|
|
flexibility in controlling which parts of the matrix are symmetric.
|
|
|
|
#====================================
|
|
|
|
Version 1.7.7b released, 2002/08/08.
|
|
|
|
- limited release SStruct optimizations testing
|
|
- the krylov library has been renamed to HYPRE_krylov
|
|
|
|
#====================================
|
|
|
|
Version 1.7.6b released, 2002/03/27.
|
|
|
|
- SStruct: Changed SetNeighborBox function to allow the case where the
|
|
NeighborBox does not even intersect the grid. This functionality
|
|
is convenient in some application situations.
|
|
|
|
- SStruct: Made additional changes to the SetNeighborBox function to
|
|
allow NeighborBox information to be redundantly declared by users.
|
|
This functionality is also convenient in some application situations.
|
|
|
|
- SStruct: Optimized the implementation of MatrixSetBoxValues.
|
|
|
|
#====================================
|
|
|
|
Version 1.7.5b released, 2002/01/16.
|
|
|
|
- SStruct: Modified SetNeighborBox boxes to reach off of the global grid.
|
|
|
|
- krylov solvers (PCG, GMRES, BiCGSTAB and CGNR ) are the first
|
|
solvers to use the new definitions for logging, which are
|
|
logging = 0: no printout, no storing of norms or rel. res. norms
|
|
logging = 1: no printout, norms (and relative residual norms for PCG)
|
|
are stored
|
|
logging > 1: norms (and relative residual norms for PCG) are stored
|
|
and printed out to standard output during each iteration
|
|
step.
|
|
|
|
#====================================
|
|
|
|
Version 1.7.0b released, 2001/11/12.
|
|
|
|
- Bug fixes: SStruct interface under threads was producing incorrect
|
|
results. That is now fixed.
|
|
|
|
#====================================
|
|
|
|
Version 1.6.0 released, 2001/07/27.
|
|
|
|
- The Euclid PILU preconditioning library has been added to the release.
|
|
See Section 7.7.5 of the user manual and Section 6.6.4 of the reference
|
|
manual for details.
|
|
|
|
#====================================
|
|
|
|
Version 1.5.0b released, 2001/07/18.
|
|
|
|
- New draft of the IJ interface: This new draft is not backward compatible
|
|
with the previous draft. See the file `docs/V1.5.0b.IJ_transition_info'
|
|
for details on transitioning to the new interface. See the User's Manual
|
|
and Reference Manual for usage information.
|
|
|
|
- Added SetRelChange option to GMRES solver.
|
|
|
|
#====================================
|
|
|
|
Version 1.4.0b released, 2001/01/10.
|
|
|
|
- Changed SStruct interface: The SStructGraphAddEntries routine now
|
|
only sets one graph entry at a time. See the reference manual for
|
|
details on the new prototype and usage.
|
|
|
|
- Both PCG and GMRES are available now when using the Struct or SStruct
|
|
matrix classes (only one or the other was previously available).
|
|
|
|
#====================================
|
|
|
|
- First working multiprocessor version of SStruct interface.
|
|
|
|
- Fixed a bug in PILUT that effected multiprocessor runs.
|
|
|
|
- Additional interface for Krylov solvers: most function calls are
|
|
available with more generic naming, e.g. HYPRE_PCGSetPrecond
|
|
may be called instead of HYPRE_ParCSRPCGSetPrecond or
|
|
HYPRE_StructPCGSetPrecond.
|
|
|
|
#====================================
|
|
|
|
Version 1.3.1b released, 2000/10/12.
|
|
|
|
#====================================
|
|
|
|
Version 1.3.0b released, 2000/10/11.
|
|
|
|
- The number of threads to use in an OpenMP run can now be specified via
|
|
either the OMP_NUM_THREADS environment variable, or by the routine
|
|
omp_set_num_threads().
|
|
|
|
- Added fortran interface support for compilers that mangle names with
|
|
all capitals (e.g., Cray fortran compilers). To use, specify the
|
|
'--with-CFLAGS=-DHYPRE_CRAY' option on the 'configure' line.
|
|
|
|
#====================================
|
|
|
|
Version 1.2.0 released, 2000/09/22.
|
|
|
|
#====================================
|
|
|
|
Version 1.1.0 released, 2000/09/07.
|
|
|
|
- Setup time for PILUT has been dramatically reduced in the case of
|
|
very small drop tolerances, and memory problems that were causing
|
|
coredumps on >2 processors have been fixed.
|
|
|
|
- Changed Struct interface include file names to be consistent with
|
|
the rest of the library. They are now:
|
|
|
|
HYPRE_struct_mv.h
|
|
HYPRE_struct_ls.h
|
|
|
|
The Struct library names have also changed similarly.
|
|
|
|
- Removed the `stencil' argument from `HYPRE_StructVectorCreate'.
|
|
|
|
- Added a new interface for semi-structured grids. This is still very
|
|
much a beta implementation, and should be used with extreme caution
|
|
until further notice.
|
|
|
|
- The main header files have been restructured to be more readable.
|
|
They will soon include full documentation for their interfaces.
|
|
|
|
#====================================
|
|
|
|
New internal installation: V1.0.0, 2000/07/06
|
|
|
|
- Now installing both optimized and debugging versions of the library.
|
|
The optimized library is in the usual place; the debugging library
|
|
is in the subdirectory 'debug'.
|
|
|
|
- Added support for the FEI v1.4, with additional capabilities for handling
|
|
parallel slide surface reduction and general Schur complement reduction.
|
|
|
|
- Using a new version numbering scheme. The C macro HYPRE_Version()
|
|
may be used to retrieve version information.
|
|
|
|
#====================================
|
|
|
|
New internal installation: V2000-05-31
|
|
|
|
- OpenMP threading added to BoomerAMG.
|
|
|
|
to convert code to use the new names.
|
|
|
|
- Changed default coarsening type for BoomerAMG. This version does
|
|
Ruge/Stueben coarsening on the interior of each processor to generate
|
|
an initial independent set for the CLJP coarsening algorithm.
|
|
|
|
- Various BoomerAMG optimizations.
|
|
|
|
#====================================
|
|
|
|
New internal installation: V2000-03-30
|
|
|
|
- New AddToValues and AddToBoxValues routines for Struct interface.
|
|
|
|
- Fairly extensive changes to SMG/PFMG codes to fix setup phase
|
|
scalability problems. These changes should result in slightly
|
|
slower setup phase times for small-scale problems, but much
|
|
improved setup phase times for very large-scale (greater than
|
|
1000 processors) problems.
|
|
|
|
- AMG and GMRES solvers have minor fixes for reproducibility under
|
|
restart.
|
|
|
|
- A subtle coarse grid operator bug in AMG was removed. AMG no longer
|
|
frees from an uninitialized pointer to an empty domain coarse grid
|
|
operator.
|
|
|
|
- Minimum iteration count controls have been installed for AMG, GMRES,
|
|
and CGNR.
|
|
|
|
- Fortran interface wrappers have been made for ParCSRMatrixMatvec and
|
|
ParCSRMatrixMatvecT calls
|
|
|
|
#====================================
|
|
|
|
New internal installation: V2000-01-14
|