From: kronbichler Date: Thu, 21 Aug 2008 21:32:12 +0000 (+0000) Subject: Make AMG preconditioner also work for MPI based compiler (right now it still runs... X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e25b223f48f368792021f750d94cd262444890e;p=dealii-svn.git Make AMG preconditioner also work for MPI based compiler (right now it still runs only on one process anyway). git-svn-id: https://svn.dealii.org/trunk@16646 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/lac/include/lac/trilinos_precondition_amg.h b/deal.II/lac/include/lac/trilinos_precondition_amg.h index b0aff0cec0..3ab5cfbc1b 100755 --- a/deal.II/lac/include/lac/trilinos_precondition_amg.h +++ b/deal.II/lac/include/lac/trilinos_precondition_amg.h @@ -22,6 +22,12 @@ #ifdef DEAL_II_USE_TRILINOS +#ifdef DEAL_II_COMPILER_SUPPORTS_MPI +# include +# include +#else +# include +#endif // some forward declarations namespace ML_Epetra @@ -105,7 +111,11 @@ namespace TrilinosWrappers */ boost::shared_ptr multigrid_operator; +#ifdef DEAL_II_COMPILER_SUPPORTS_MPI + Epetra_MpiComm communicator; +#else Epetra_SerialComm communicator; +#endif boost::shared_ptr Map; /** diff --git a/deal.II/lac/source/trilinos_precondition_amg.cc b/deal.II/lac/source/trilinos_precondition_amg.cc index 26a1361fa2..41e2fbef58 100755 --- a/deal.II/lac/source/trilinos_precondition_amg.cc +++ b/deal.II/lac/source/trilinos_precondition_amg.cc @@ -16,7 +16,9 @@ #include #include -#include + +#ifdef DEAL_II_USE_TRILINOS + #include #include #include @@ -24,16 +26,15 @@ #include #include - - -#ifdef DEAL_II_USE_TRILINOS - DEAL_II_NAMESPACE_OPEN namespace TrilinosWrappers { - PreconditionAMG::PreconditionAMG () + PreconditionAMG::PreconditionAMG () : +#ifdef DEAL_II_COMPILER_SUPPORTS_MPI + communicator (MPI_COMM_WORLD) +#endif {} @@ -57,7 +58,6 @@ namespace TrilinosWrappers ExcMessage ("Drop tolerance must be a non-negative number.")); const unsigned int n_rows = matrix.m(); - const SparsityPattern *sparsity_pattern = &(matrix.get_sparsity_pattern()); // Init Epetra Matrix, avoid // storing the nonzero elements.