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).
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.
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.
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.
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.
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.
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.
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