Loading [MathJax]/extensions/TeX/newcommand.js
 Reference documentation for deal.II version 9.3.3
\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}} \newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=} \newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]} \newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
trilinos_epetra_communication_pattern.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2015 - 2021 by the deal.II authors
4//
5// This file is part of the deal.II library.
6//
7// The deal.II library is free software; you can use it, redistribute
8// it, and/or modify it under the terms of the GNU Lesser General
9// Public License as published by the Free Software Foundation; either
10// version 2.1 of the License, or (at your option) any later version.
11// The full text of the license can be found in the file LICENSE.md at
12// the top level directory of deal.II.
13//
14// ---------------------------------------------------------------------
15
16#ifndef dealii_trilinos_epetra_communication_pattern_h
17#define dealii_trilinos_epetra_communication_pattern_h
18
19
20#include <deal.II/base/config.h>
21
22#ifdef DEAL_II_WITH_TRILINOS
23
24# ifdef DEAL_II_WITH_MPI
25
27
28# include <Epetra_Import.h>
29
30# include <memory>
31
33
34namespace LinearAlgebra
35{
36 namespace EpetraWrappers
37 {
44 {
45 public:
53 CommunicationPattern(const IndexSet &vector_space_vector_index_set,
54 const IndexSet &read_write_vector_index_set,
55 const MPI_Comm &communicator);
56
60 virtual void
61 reinit(const IndexSet &vector_space_vector_index_set,
62 const IndexSet &read_write_vector_index_set,
63 const MPI_Comm &communicator) override;
64
68 virtual const MPI_Comm &
69 get_mpi_communicator() const override;
70
74 const Epetra_Import &
75 get_epetra_import() const;
76
77 private:
81 std::shared_ptr<const MPI_Comm> comm;
82
86 std::unique_ptr<Epetra_Import> importer;
87 };
88 } // end of namespace EpetraWrappers
89} // end of namespace LinearAlgebra
90
92
93# endif
94
95#endif
96
97#endif
CommunicationPattern(const IndexSet &vector_space_vector_index_set, const IndexSet &read_write_vector_index_set, const MPI_Comm &communicator)
virtual void reinit(const IndexSet &vector_space_vector_index_set, const IndexSet &read_write_vector_index_set, const MPI_Comm &communicator) override
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:402
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:403