message: A couple of changes to get better convergence from hypre.  We may want to expose some of these options through an interface.
diff: @@ -3270,7 +3270,7 @@ void HypreBoomerAMG::SetDefaultOptions()
  int Pmax = 4; // max number of elements per row in P
  // AMG relaxation options:
  - int relax_type = 8; // 8 = l1-GS, 6 = symm. GS, 3 = GS, 18 = l1-Jacobi
  + int relax_type = 18; // 8 = l1-GS, 6 = symm. GS, 3 = GS, 18 = l1-Jacobi
  int relax_sweeps = 1; // relaxation sweeps on each level
  // Additional options:
  @@ -3280,14 +3280,14 @@ void HypreBoomerAMG::SetDefaultOptions()
  // AMG coarsening options:
  int coarsen_type = 8; // 10 = HMIS, 8 = PMIS, 6 = Falgout, 0 = CLJP
  int agg_levels = 0; // number of aggressive coarsening levels
  - double theta = 0.25; // strength threshold: 0.25, 0.5, 0.8
  + double theta = 0.5; // strength threshold: 0.25, 0.5, 0.8
  // AMG interpolation options:
  - int interp_type = 15; // or 3 = direct
  + int interp_type = 6; // or 3 = direct
  int Pmax = 4; // max number of elements per row in P
  // AMG relaxation options:
  - int relax_type = 7; // or 18 = l1-Jacobi
  + int relax_type = 18; // or 18 = l1-Jacobi
  int relax_sweeps = 1; // relaxation sweeps on each level
  // Additional options:
  @@ -3298,6 +3298,7 @@ void HypreBoomerAMG::SetDefaultOptions()
  HYPRE_BoomerAMGSetCoarsenType(amg_precond, coarsen_type);
  HYPRE_BoomerAMGSetAggNumLevels(amg_precond, agg_levels);
  HYPRE_BoomerAMGSetRelaxType(amg_precond, relax_type);
  + HYPRE_BoomerAMGSetRelaxWt(amg_precond, 1.0);
  if (relax_type == 7)
  {
  HYPRE_BoomerAMGSetRelaxWt(amg_precond, 1.0); // this is the hypre default
  