message: Added flag based on hypre version
diff: @@ -1560,25 +1560,44 @@ void HypreParMatrix::Destroy()
  }
  }
  +#if MFEM_HYPRE_VERSION < 21400
  +
  HypreParMatrix *Add(double alpha, const HypreParMatrix &A,
  double beta, const HypreParMatrix &B)
  {
  - hypre_ParCSRMatrix *C;
  - hypre_ParcsrAdd(alpha, A, beta, B, &C);
  + hypre_ParCSRMatrix *C_hypre =
  + internal::hypre_ParCSRMatrixAdd(const_cast<HypreParMatrix &>(A),
  + const_cast<HypreParMatrix &>(B));
  + MFEM_VERIFY(C_hypre, "error in hypre_ParCSRMatrixAdd");
  +
  + hypre_MatvecCommPkgCreate(C_hypre);
  + HypreParMatrix *C = new HypreParMatrix(C_hypre);
  + *C = 0.0;
  + C->Add(alpha, A);
  + C->Add(beta, B);
  +
  + return C;
  +}
  +
  +HypreParMatrix * ParAdd(const HypreParMatrix *A, const HypreParMatrix *B)
  +{
  + hypre_ParCSRMatrix * C = internal::hypre_ParCSRMatrixAdd(*A,*B);
  +
  hypre_MatvecCommPkgCreate(C);
  return new HypreParMatrix(C);
  }
  -HypreParMatrix * ParMult(const HypreParMatrix *A, const HypreParMatrix *B)
  -{
  - hypre_ParCSRMatrix * ab;
  - ab = hypre_ParMatmul(*A,*B);
  - hypre_ParCSRMatrixSetNumNonzeros(ab);
  +#else
  - hypre_MatvecCommPkgCreate(ab);
  +HypreParMatrix *Add(double alpha, const HypreParMatrix &A,
  + double beta, const HypreParMatrix &B)
  +{
  + hypre_ParCSRMatrix *C;
  + hypre_ParcsrAdd(alpha, A, beta, B, &C);
  + hypre_MatvecCommPkgCreate(C);
  - return new HypreParMatrix(ab);
  + return new HypreParMatrix(C);
  }
  HypreParMatrix * ParAdd(const HypreParMatrix *A, const HypreParMatrix *B)
  @@ -1590,6 +1609,18 @@ HypreParMatrix * ParAdd(const HypreParMatrix *A, const HypreParMatrix *B)
  return new HypreParMatrix(C);
  }
  +#endif
  +
  +HypreParMatrix * ParMult(const HypreParMatrix *A, const HypreParMatrix *B)
  +{
  + hypre_ParCSRMatrix * ab;
  + ab = hypre_ParMatmul(*A,*B);
  + hypre_ParCSRMatrixSetNumNonzeros(ab);
  +
  + hypre_MatvecCommPkgCreate(ab);
  +
  + return new HypreParMatrix(ab);
  +}
  HypreParMatrix * RAP(const HypreParMatrix *A, const HypreParMatrix *P)
  {
  