Final, final changes before 2.8.0b :)
This commit is contained in:
parent
4d148ee46d
commit
2bb7111a06
@ -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)$
|
||||||
|
|||||||
@ -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) \\
|
||||||
|
|||||||
@ -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)");
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user