Commit Graph

63 Commits

Author SHA1 Message Date
ulrikey
c6a707fca0 Added the redundant coarse grid solve 2011-10-06 23:08:25 +00:00
falgout
e3181f26b1 Added 64 bit feature using HYPRE_Int (see tracker [issue489] for details).
Changed MPI routines to hypre_MPI routines.
Added hypre_printf, etc. routines.
Added AUTOTEST tests to look for 'int' and 'MPI_' calls.
Added a new approach for the Fortran interface (not implemented everywhere yet).
2010-12-20 19:27:44 +00:00
baker59
9bd0f1a8b5 Added the new elasticity interpolation routines. 2010-11-30 21:04:04 +00:00
baker59
d60adad0c5 Added new smoothers: Chebyshev (to AMG and AMS), FCF-Jaconi, and CG.
Added threaded version of L1-Jacobi.
2010-03-17 23:33:14 +00:00
ulrikey
81b4a12219 added new interpolation operators for aggressive coarsening 2009-08-13 22:43:47 +00:00
ulrikey
b39374690d replaced copyright headers 2008-07-18 01:34:48 +00:00
baker59
cbca5f0384 Added the option to not assume the matrix blocks for the Schwarz
smoothers are SPD (this primarily involved adding a new user option
and replacing the LAPACK and ESSL functions that do the inversions
with ones that use LU instead of Cholesky factorizations).

Added the new hypre error checking to Schwarz smoothers.
2008-01-29 23:44:05 +00:00
ulrikey
2c206fd354 added some changes, fixed some bugs regarding using Euclid as a smoother in AMG 2007-11-30 21:35:35 +00:00
ulrikey
3c53de2e94 changed copyright statement to reflect new management. 2007-11-13 19:34:01 +00:00
ulrikey
16805f1a9b some bug fixes and new capabilities for compatible relaxation 2007-08-31 00:05:54 +00:00
ulrikey
b3e653a74c incorporated Bram Metsch's CGC and CGC-E coarsening 2007-06-05 20:40:51 +00:00
baker59
7e2a19cf4c 1. Add some more block interpolations and one more modified unknown
interpolation.

2. Fixed hybrid method to work with aggressive coarsenings.

3. Updated stats for block matirx to use a different norm.

4. Added -NodalDiag options to treat diagonal entries differently in
nodal coarsening.
2007-02-15 19:28:52 +00:00
hill66
402d34179c Updated license info. 2006-09-22 22:06:21 +00:00
ulrikey
ec42a98133 added error codes 2006-09-14 21:36:38 +00:00
ulrikey
68d1b69275 extended truncation routine to include parameter P_max_elmts (allow to
truncate, so only P-max_elmts absolute largest weights are kept)
added new long range interpolation routines
2006-09-07 22:41:38 +00:00
hill66
e5ec2c6dec Modified HEADER to include LGPL (license) info. 2006-07-27 23:26:57 +00:00
painter
9ce2f84ebc Jacobi interpolation available for BoomerAMG 2006-04-18 22:52:44 +00:00
ulrikey
850dd4f6b4 fixed various bugs and added new parameter options 2006-03-14 23:55:06 +00:00
ulrikey
a08153c2e2 added compatible relaxation on one proc 2006-03-07 23:09:30 +00:00
ulrikey
b4e4c3c5eb added aggressive coarsening and multipass interpolation 2005-10-07 22:22:45 +00:00
painter
acfd027b7f lots of "get" functions mirroring existing "set" functions for parameters 2005-09-22 22:13:05 +00:00
painter
be7acacb93 add many "Get" functions corresponding to existing "Set" functions 2005-09-19 22:14:45 +00:00
painter
75364c73c1 1. BoomerAMG keeps track of the number of iterations accumulated over all
calls.  This is needed for user-level performance monitoring if it is a
preconditioner for a Krylov method such as PCG.  The regular iteration count
only tells you about the last time PCG invoked BoomerAMG.  There are ifdefs
so you can eliminate this if you like - remove #define CUMNUMIT.

2.  very minor code fixes, comments, etc.
2005-06-20 18:36:16 +00:00
ulrikey
12bd5d9baa potentially improved performance of coarsening and interpolation by using
different Commpkg for strength matrix S. Added a new parameter S_commpkg_switch
which sets the smallest strength threshold, for which this capability is used.
This required the addition of a new parameter (int array that maps S-indices
to A-indices) to the interpolation routine.
Note that while this change does not affect Falgout, CLJP, PMIS and HMIS
convergence behaviour and complexities, it affects ruge, ruge2b and ruge3c.
This can be avoided by setting S_commpkg_switch to 1.
2004-11-19 22:55:52 +00:00
ulrikey
0b6be5147a added nodal version, which uses nodal coarsening, but interpolation used for
the "unknown" approach.
2004-05-05 01:12:31 +00:00
ulrikey
131fe342ff Redesigned routines that set smoother parameters (such as relax-types,
number of sweeps, relaxation parameters, etc.) for BoomerAMG and
unstructured hybrid solver
2003-06-06 23:30:11 +00:00
ulrikey
ea53726913 implemented the new logging/ print_level standards 2003-02-28 17:56:54 +00:00
ulrikey
96cb9359da removed the function and parameter int *smooth_option and replaced
it by int smooth_type and int smooth_num_levels,
where smooth_type defines the type of complicated smoother (i.e. no
point smoother, e.g. Schwarz, Euclid, etc.) and smooth_num_levels the
number of levels for which the smoother is used starting with the finest level.
2002-10-19 00:11:08 +00:00
chow
4694c2371c Integrated LS interpolation into BoomerAMG. 2002-10-11 00:40:52 +00:00
chow
a40bb04faa Added parameter for number of sample vectors in GSMG. 2002-07-16 23:10:46 +00:00
painter
bd96306fa8 fix pointer level bug caught by "get strict checking" compile 2002-07-12 22:29:28 +00:00
ulrikey
7aa95e4b53 added (inner and outer) relaxation parameters to Gauss-Seidel routines,
also added a backward solve procedure.
This required an additional parameter for hypre_BoomerAMGRelax.
Complete list of  choices for smoothers are now:
relax_type = 0 -> Jacobi or CF-Jacobi
relax_type = 1 -> Gauss-Seidel <--- very slow, sequential
relax_type = 2 -> Gauss_Seidel: interior points in parallel, boundary sequential
relax_type = 3 -> hybrid: SOR-J mix off-processor, SOR on-processor with outer relaxation parameters (forward solve)
relax_type = 4 -> hybrid: SOR-J mix off-processor, SOR on-processor  with outer relaxation parameters (backward solve)
relax_type = 5 -> hybrid: GS-J mix off-processor, chaotic GS on-node
relax_type = 6 -> hybrid: SSOR-J mix off-processor, SSOR on-processor  with outer relaxation parameters
relax_type = 9 -> Direct Solve
2002-07-11 21:45:30 +00:00
painter
5ad8647267 Implement new logging/printing standard for BoomerAMG. This is a minimal
implementation needed to support the Babel interface.  The changes are:

 Eliminate the BoomerAMGSetLogging functions, and the 3-argument
BoomerAMGSetPrintLevel functions.  In their place are 2-argument
BoomerAMGSetPrintLevel and BoomerAMGSetPrintFileName functions.
Before and now, these serve to control how much (if any) data is printed,
and (in principle - never implemented) where it is printed to.

 Add BoomerAMGSetLogLevel functions.  Setting the log level does not control
printing, but does control additional computations of diagnostic information.
This involves an additional member, int log_level, of the struct ParAMGData.

 Add capability to store the last residual in an additional array.  The user
can get it through HYPRE_BoomerAMGGetResidual.  This is done only if
HYPRE_BoomerAMGSetLogLevel has been called, with a log level >2.  This involves
an additional member, double *residual (default NULL), of the struct ParAMGData.
2002-07-10 18:25:09 +00:00
ulrikey
79ea946401 corrected typo: Printlevel -> PrintLevel 2002-06-27 15:31:21 +00:00
ulrikey
252989f45a added various parameters for the more complex smoothers such
as ParaSails, PILUT and Euclid (also added Euclid as a smoother)
2002-06-25 22:44:32 +00:00
ulrikey
1d701ea20a changed ioutdat in BoomerAMG to be called print_level 2002-06-20 16:16:50 +00:00
chow
4f538f6970 Added functionality for GSMG. 2001-12-14 22:31:29 +00:00
falgout
6eb701004e Changed 'char *' to 'const char *' in several routines. 2001-07-17 04:50:58 +00:00
ulrikey
3f5d30a2f4 added relaxation-weight for additive Schwarz-smoother and the
possibility to change the number of sweeps for special smoothers
independently from the conventional smoothers
2001-02-03 00:02:33 +00:00
ulrikey
51b3675264 changed the Schwarz smoother so it can be also used as a preconditioner
for CG , created the hypre_SchwarzData data structure , added some
parameters to the hypre_ParAMGData structure and deleted some that
were not needed anymore due to the new data structure
2001-02-01 22:09:36 +00:00
ulrikey
cae021f54b added the possibility of using additional smoothers:
ParaSails
Pilut
Schwarz (for 1 proc only)
2000-11-07 20:10:45 +00:00
ulrikey
7f36e7920b Modified for 'systems' version of AMG (the function or 'unknown' approach)
this required an additional array dof_func which contains the function
number for each unknown
2000-11-03 00:33:23 +00:00
lambda
43d113506c Implemented HYPRE_ParCSRGMRESGetPrecond, HYPRE_BoomerAMGSetSetupType, and
modified HYPRE_BoomerAMGSetup implementation, so that AMG-GMRES AMG setup
can be controlled from a Fortran code
2000-06-30 21:57:09 +00:00
ulrikey
b64112be0e implemented function name changes from ParAMG to BoomerAMG 2000-05-02 18:42:44 +00:00
lambda
d93056b972 Setting relax_weights = 1, giving plain Jacobi weighting for Jacobi
parts of solver
2000-03-17 01:32:18 +00:00
lambda
1bbb9f923a Removed HYPRE_ParCSRGMRESReinitPrecond work 2000-02-18 18:11:48 +00:00
lambda
ebee3d663f Added HYPRE_ParAMGReinit so that AMG solver can be reinitialized whenever linear
system has been destroyed
2000-02-15 00:41:49 +00:00
lambda
2b16febb6f Using Gauss-Seidel Jacobi relaxation on coarsest level 2000-02-03 22:05:21 +00:00
lambda
9cb52bc03b Installed control of minimum number of iterations 2000-01-05 21:42:07 +00:00
falgout
99e30faadb Changed definition of strength-of-connection to better handle
diagonally dominant matrices.
1999-12-22 22:35:53 +00:00