Tpetra parallel linear algebra  Version of the Day
Protected Attributes | List of all members
Tpetra::SerialPlatform< Node > Class Template Reference

Implementation of the Platform concept for non-MPI platforms. More...

#include <Tpetra_SerialPlatform.hpp>

Inherits Describable.

Public Types

Typedefs
typedef Node NodeType
 Kokkos Node type; the template parameter of this class. More...
 

Public Member Functions

Constructors and destructor
 SerialPlatform (int *argc, char ***argv)
 Constructor that accepts the same arguments as Tpetra::initialize(). More...
 
 SerialPlatform (const Teuchos::RCP< NodeType > &node)
 
 SerialPlatform (int *argc, char ***argv, const Teuchos::RCP< NodeType > &node)
 Constructor that accepts the same arguments as Tpetra::initialize(), plus a Kokkos Node. More...
 
virtual ~SerialPlatform ()
 Destructor (virtual for memory safety of derived classes). More...
 
Methods to access the communicator and Kokkos Node.
Teuchos::RCP< const Teuchos::Comm< int > > getComm () const
 The Teuchos::Comm instance with which this object was created. More...
 
Teuchos::RCP< Node > getNode () const
 The Kokkos Node instance with which this object was created. More...
 

Protected Attributes

Teuchos::RCP< const Teuchos::Comm< int > > comm_
 Teuchos::Comm object instantiated for the platform. More...
 
Teuchos::RCP< NodeTypenode_
 Kokkos Node object instantiated for the platform. More...
 

Detailed Description

template<class Node>
class Tpetra::SerialPlatform< Node >

Implementation of the Platform concept for non-MPI platforms.

Warning
This class will be DEPRECATED, in favor of the initialize() functions in Tpetra_Core.hpp. Please use those functions for safe, consistent initialization Kokkos, on which Tpetra depends. If you must use this class, please prefer the constructors that take argc and argv. Those constructors will call initialize() for you.

SerialPlatform is an implementation of Tpetra's Platform concept. Classes implementing the Platform concept are templated on the Kokkos Node type. They have at least the following public interface:

// This is not a real class; it just illustrates the concept.
template<class Node>
class Platform {
public:
typedef Node NodeType;
explicit Platform (const RCP<Node>& node);
RCP<const Comm<int> > getComm() const;
RCP<Node> getNode() const;
};

SerialPlatform uses a "communicator" containing one process. It is available whether or not Trilinos was built with MPI (the Message-Passing Interface which provides a distributed-memory parallel programming model).

Definition at line 82 of file Tpetra_SerialPlatform.hpp.

Member Typedef Documentation

◆ NodeType

template<class Node>
typedef Node Tpetra::SerialPlatform< Node >::NodeType

Kokkos Node type; the template parameter of this class.

Definition at line 88 of file Tpetra_SerialPlatform.hpp.

Constructor & Destructor Documentation

◆ SerialPlatform() [1/3]

template<class Node>
Tpetra::SerialPlatform< Node >::SerialPlatform ( int *  argc,
char ***  argv 
)
inlineexplicit

Constructor that accepts the same arguments as Tpetra::initialize().

Parameters
argc[in/out] First argument of Tpetra::initialize().
argv[in/out] Second argument of Tpetra::initialize().

Definition at line 99 of file Tpetra_SerialPlatform.hpp.

◆ SerialPlatform() [2/3]

template<class Node>
Tpetra::SerialPlatform< Node >::SerialPlatform ( const Teuchos::RCP< NodeType > &  node)
inlineexplicit

Constructor that accepts a Kokkos Node.

Parameters
node[in/out] The Kokkos Node instance. If null, this class will create a Node with default parameters, at some time no later than during the first call to getNode().

Definition at line 123 of file Tpetra_SerialPlatform.hpp.

◆ SerialPlatform() [3/3]

template<class Node>
Tpetra::SerialPlatform< Node >::SerialPlatform ( int *  argc,
char ***  argv,
const Teuchos::RCP< NodeType > &  node 
)
inlineexplicit

Constructor that accepts the same arguments as Tpetra::initialize(), plus a Kokkos Node.

Parameters
argc[in/out] First argument of Tpetra::initialize().
argv[in/out] Second argument of Tpetra::initialize().
node[in/out] The Kokkos Node instance. If null, this class will create a Node with default parameters, at some time no later than during the first call to getNode().

Definition at line 138 of file Tpetra_SerialPlatform.hpp.

◆ ~SerialPlatform()

template<class Node>
virtual Tpetra::SerialPlatform< Node >::~SerialPlatform ( )
inlinevirtual

Destructor (virtual for memory safety of derived classes).

Definition at line 149 of file Tpetra_SerialPlatform.hpp.

Member Function Documentation

◆ getComm()

template<class Node>
Teuchos::RCP<const Teuchos::Comm<int> > Tpetra::SerialPlatform< Node >::getComm ( ) const
inline

The Teuchos::Comm instance with which this object was created.

Definition at line 156 of file Tpetra_SerialPlatform.hpp.

◆ getNode()

template<class Node>
Teuchos::RCP<Node> Tpetra::SerialPlatform< Node >::getNode ( ) const
inline

The Kokkos Node instance with which this object was created.

Definition at line 161 of file Tpetra_SerialPlatform.hpp.

Member Data Documentation

◆ comm_

template<class Node>
Teuchos::RCP<const Teuchos::Comm<int> > Tpetra::SerialPlatform< Node >::comm_
protected

Teuchos::Comm object instantiated for the platform.

Definition at line 190 of file Tpetra_SerialPlatform.hpp.

◆ node_

template<class Node>
Teuchos::RCP<NodeType> Tpetra::SerialPlatform< Node >::node_
protected

Kokkos Node object instantiated for the platform.

Definition at line 192 of file Tpetra_SerialPlatform.hpp.


The documentation for this class was generated from the following file: