Xpetra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Xpetra_SerialPlatform.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Xpetra: A linear algebra interface package
4 //
5 // Copyright 2012 NTESS and the Xpetra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef XPETRA_SERIALPLATFORM_HPP
11 #define XPETRA_SERIALPLATFORM_HPP
12 
13 #include <Teuchos_DefaultSerialComm.hpp>
14 #include <Teuchos_Describable.hpp>
15 
16 #include <Xpetra_ConfigDefs.hpp>
17 #include <Tpetra_KokkosCompat_DefaultNode.hpp>
18 
19 namespace Xpetra {
20 
22 template <class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
23 class SerialPlatform : public Teuchos::Describable {
24  public:
26  typedef Node NodeType;
28 
29 
31  explicit SerialPlatform(const Teuchos::RCP<Node> &node);
32 
35 
37 
39 
40 
42  const Teuchos::RCP<const Teuchos::SerialComm<int> > getComm() const;
43 
45  private:
46  SerialPlatform(const SerialPlatform<Node> &platform);
47 
48  protected:
50  Teuchos::RCP<const Teuchos::SerialComm<int> > comm_;
51 };
52 
53 template <class Node>
54 SerialPlatform<Node>::SerialPlatform(const Teuchos::RCP<Node> & /* node */)
55  : comm_(Teuchos::rcp(new Teuchos::SerialComm<int>())) {}
56 
57 template <class Node>
59 
60 template <class Node>
61 const Teuchos::RCP<const Teuchos::SerialComm<int> >
63  return comm_;
64 }
65 
66 } // namespace Xpetra
67 
68 #endif // XPETRA_SERIALPLATFORM_HPP
const Teuchos::RCP< const Teuchos::SerialComm< int > > getComm() const
Comm Instance.
A implementation of the Platform class for serial platforms.
Node NodeType
Typedef indicating the node type over which the platform is templated. This default to the Kokkos def...
Teuchos::RCP< const Teuchos::SerialComm< int > > comm_
Teuchos::Comm object instantiated for the platform.
SerialPlatform(const Teuchos::RCP< Node > &node)
Constructor.