Discrete gradient/curl column ownership patch from Umberto.

This commit is contained in:
Tzanio 2015-01-20 08:58:57 -08:00
parent ee6a53f968
commit 22cb6e6a65
2 changed files with 10 additions and 2 deletions

View File

@ -973,12 +973,16 @@ HYPRE_Int hypre_ADSSetup(void *solver,
/* Construct the coarse space matrix by RAP */
if (!ads_data -> A_C)
{
HYPRE_Int C_owned_col_starts;
if (!hypre_ParCSRMatrixCommPkg(ads_data -> C))
hypre_MatvecCommPkgCreate(ads_data -> C);
if (!hypre_ParCSRMatrixCommPkg(ads_data -> A))
hypre_MatvecCommPkgCreate(ads_data -> A);
C_owned_col_starts = hypre_ParCSRMatrixOwnsColStarts(ads_data -> C);
hypre_BoomerAMGBuildCoarseOperator(ads_data -> C,
ads_data -> A,
ads_data -> C,
@ -988,7 +992,7 @@ HYPRE_Int hypre_ADSSetup(void *solver,
in part of the domain). */
hypre_ParCSRMatrixFixZeroRows(ads_data -> A_C);
hypre_ParCSRMatrixOwnsColStarts(ads_data -> C) = 1;
hypre_ParCSRMatrixOwnsColStarts(ads_data -> C) = C_owned_col_starts;
hypre_ParCSRMatrixOwnsRowStarts(ads_data -> A_C) = 0;
}

View File

@ -2198,12 +2198,16 @@ HYPRE_Int hypre_AMSSetup(void *solver,
/* If not given, construct the coarse space matrix by RAP */
if (!ams_data -> A_G)
{
HYPRE_Int G_owned_col_starts;
if (!hypre_ParCSRMatrixCommPkg(ams_data -> G))
hypre_MatvecCommPkgCreate(ams_data -> G);
if (!hypre_ParCSRMatrixCommPkg(ams_data -> A))
hypre_MatvecCommPkgCreate(ams_data -> A);
G_owned_col_starts = hypre_ParCSRMatrixOwnsColStarts(ams_data -> G);
hypre_BoomerAMGBuildCoarseOperator(ams_data -> G,
ams_data -> A,
ams_data -> G,
@ -2213,7 +2217,7 @@ HYPRE_Int hypre_AMSSetup(void *solver,
if beta is zero in part of the domain). */
hypre_ParCSRMatrixFixZeroRows(ams_data -> A_G);
hypre_ParCSRMatrixOwnsColStarts(ams_data -> G) = 1;
hypre_ParCSRMatrixOwnsColStarts(ams_data -> G) = G_owned_col_starts;
hypre_ParCSRMatrixOwnsRowStarts(ams_data -> A_G) = 0;
ams_data -> owns_A_G = 1;