16 #ifndef dealii_trilinos_tpetra_communication_pattern_h 17 #define dealii_trilinos_tpetra_communication_pattern_h 20 #include <deal.II/base/config.h> 22 #if defined(DEAL_II_TRILINOS_WITH_TPETRA) && defined(DEAL_II_WITH_MPI) 24 # include <deal.II/lac/communication_pattern_base.h> 26 # include <Tpetra_Export.hpp> 27 # include <Tpetra_Import.hpp> 31 DEAL_II_NAMESPACE_OPEN
35 namespace TpetraWrappers
40 class CommunicationPattern :
public CommunicationPatternBase
50 CommunicationPattern(
const IndexSet &vector_space_vector_index_set,
51 const IndexSet &read_write_vector_index_set,
52 const MPI_Comm &communicator);
58 reinit(
const IndexSet &vector_space_vector_index_set,
59 const IndexSet &read_write_vector_index_set,
60 const MPI_Comm &communicator)
override;
65 virtual const MPI_Comm &
66 get_mpi_communicator()
const override;
71 const Tpetra::Import<int, types::global_dof_index> &
72 get_tpetra_import()
const;
77 const Tpetra::Export<int, types::global_dof_index> &
78 get_tpetra_export()
const;
84 std::shared_ptr<const MPI_Comm> comm;
89 std::unique_ptr<Tpetra::Import<int, types::global_dof_index>>
95 std::unique_ptr<Tpetra::Export<int, types::global_dof_index>>
101 DEAL_II_NAMESPACE_CLOSE