Final, final changes before 2.8.0b :)

This commit is contained in:
kolev1 2011-11-04 23:57:46 +00:00
parent 4d148ee46d
commit 2bb7111a06
4 changed files with 23 additions and 4 deletions

View File

@ -931,7 +931,7 @@ The available cycle types in ADS are:
\item \code{cycle_type=6}: additive solver $(1+020)$ \item \code{cycle_type=6}: additive solver $(1+020)$
\item \code{cycle_type=7}: multiplicative solver $(0201020)$ \item \code{cycle_type=7}: multiplicative solver $(0201020)$
\item \code{cycle_type=8}: additive solver $(0(1+2)0)$ \item \code{cycle_type=8}: additive solver $(0(1+2)0)$
\item \code{cycle_type=11}: multiplicative solver $(013454310)$ \item \code{cycle_type=11}: multiplicative solver $(01345054310)$
\item \code{cycle_type=12}: additive solver $(0+1+3+4+5)$ \item \code{cycle_type=12}: additive solver $(0+1+3+4+5)$
\item \code{cycle_type=13}: multiplicative solver $(034515430)$ \item \code{cycle_type=13}: multiplicative solver $(034515430)$
\item \code{cycle_type=14}: additive solver $(01(3+4+5)10)$ \item \code{cycle_type=14}: additive solver $(01(3+4+5)10)$

View File

@ -1738,7 +1738,7 @@ HYPRE_Int HYPRE_ADSSetTol(HYPRE_Solver solver , double tol);
* 6 & 3-level additive solver (1+020) \\ * 6 & 3-level additive solver (1+020) \\
* 7 & 3-level multiplicative solver (0201020) \\ * 7 & 3-level multiplicative solver (0201020) \\
* 8 & 3-level additive solver (0(1+2)0) \\ * 8 & 3-level additive solver (0(1+2)0) \\
* 11 & 5-level multiplicative solver (013454310) \\ * 11 & 5-level multiplicative solver (01345054310) \\
* 12 & 5-level additive solver (0+1+3+4+5) \\ * 12 & 5-level additive solver (0+1+3+4+5) \\
* 13 & 5-level multiplicative solver (034515430) \\ * 13 & 5-level multiplicative solver (034515430) \\
* 14 & 5-level additive solver (01(3+4+5)10) \\ * 14 & 5-level additive solver (01(3+4+5)10) \\

View File

@ -319,7 +319,7 @@ HYPRE_Int hypre_ADSSetTol(void *solver,
* 7 = 3-level multipl. solver (0201020) <-- small number of iterations * 7 = 3-level multipl. solver (0201020) <-- small number of iterations
* 8 = 3-level additive solver (0(1+2)0) <-- small solution time * 8 = 3-level additive solver (0(1+2)0) <-- small solution time
* 9 = 3-level multipl. solver (01210) with discrete divergence * 9 = 3-level multipl. solver (01210) with discrete divergence
* 11 = 5-level multipl. solver (013454310) <-- small solution time, memory * 11 = 5-level multipl. solver (01345054310)<-- small solution time, memory
* 12 = 5-level additive solver (0+1+3+4+5) * 12 = 5-level additive solver (0+1+3+4+5)
* 13 = 5-level multipl. solver (034515430) <-- small solution time, memory * 13 = 5-level multipl. solver (034515430) <-- small solution time, memory
* 14 = 5-level additive solver (01(3+4+5)10) * 14 = 5-level additive solver (01(3+4+5)10)
@ -1040,6 +1040,14 @@ HYPRE_Int hypre_ADSSetup(void *solver,
HYPRE_BoomerAMGSetInterpType(ads_data -> B_Piz, ads_data -> B_Pi_interp_type); HYPRE_BoomerAMGSetInterpType(ads_data -> B_Piz, ads_data -> B_Pi_interp_type);
HYPRE_BoomerAMGSetPMaxElmts(ads_data -> B_Piz, ads_data -> B_Pi_Pmax); HYPRE_BoomerAMGSetPMaxElmts(ads_data -> B_Piz, ads_data -> B_Pi_Pmax);
/* Don't use exact solve on the coarsest level (matrices may be singular) */
HYPRE_BoomerAMGSetCycleRelaxType(ads_data -> B_Pix,
ads_data -> B_Pi_relax_type, 3);
HYPRE_BoomerAMGSetCycleRelaxType(ads_data -> B_Piy,
ads_data -> B_Pi_relax_type, 3);
HYPRE_BoomerAMGSetCycleRelaxType(ads_data -> B_Piz,
ads_data -> B_Pi_relax_type, 3);
/* Construct the coarse space matrices by RAP */ /* Construct the coarse space matrices by RAP */
if (!hypre_ParCSRMatrixCommPkg(ads_data -> Pix)) if (!hypre_ParCSRMatrixCommPkg(ads_data -> Pix))
hypre_MatvecCommPkgCreate(ads_data -> Pix); hypre_MatvecCommPkgCreate(ads_data -> Pix);
@ -1229,7 +1237,7 @@ HYPRE_Int hypre_ADSSolve(void *solver,
hypre_sprintf(cycle,"%s","01210"); hypre_sprintf(cycle,"%s","01210");
break; break;
case 11: case 11:
hypre_sprintf(cycle,"%s","013454310"); hypre_sprintf(cycle,"%s","01345054310");
break; break;
case 12: case 12:
hypre_sprintf(cycle,"%s","(0+1+3+4+5)"); hypre_sprintf(cycle,"%s","(0+1+3+4+5)");

View File

@ -2290,6 +2290,17 @@ HYPRE_Int hypre_AMSSetup(void *solver,
HYPRE_BoomerAMGSetInterpType(ams_data -> B_Piz, ams_data -> B_Pi_interp_type); HYPRE_BoomerAMGSetInterpType(ams_data -> B_Piz, ams_data -> B_Pi_interp_type);
HYPRE_BoomerAMGSetPMaxElmts(ams_data -> B_Piz, ams_data -> B_Pi_Pmax); HYPRE_BoomerAMGSetPMaxElmts(ams_data -> B_Piz, ams_data -> B_Pi_Pmax);
if (ams_data -> beta_is_zero)
{
/* don't use exact solve on the coarsest level (matrices may be singular) */
HYPRE_BoomerAMGSetCycleRelaxType(ams_data -> B_Pix,
ams_data -> B_Pi_relax_type, 3);
HYPRE_BoomerAMGSetCycleRelaxType(ams_data -> B_Piy,
ams_data -> B_Pi_relax_type, 3);
HYPRE_BoomerAMGSetCycleRelaxType(ams_data -> B_Piz,
ams_data -> B_Pi_relax_type, 3);
}
if (ams_data -> cycle_type == 0) if (ams_data -> cycle_type == 0)
{ {
HYPRE_BoomerAMGSetMaxLevels(ams_data -> B_Pix, 2); HYPRE_BoomerAMGSetMaxLevels(ams_data -> B_Pix, 2);