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\}}\)
Public Member Functions | Protected Attributes | List of all members
Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 > Class Template Referenceabstract

#include <deal.II/base/mpi_consensus_algorithms.h>

Inheritance diagram for Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >:
[legend]

Public Member Functions

 Interface (Process< T1, T2 > &process, const MPI_Comm &comm)
 
virtual ~Interface ()=default
 
virtual std::vector< unsigned intrun ()=0
 

Protected Attributes

Process< T1, T2 > & process
 
const MPI_Commcomm
 
const bool job_supports_mpi
 
const unsigned int my_rank
 
const unsigned int n_procs
 

Detailed Description

template<typename T1, typename T2>
class Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >

A base class for algorithms that implement the task of coming up with communication patterns to retrieve data from other processes in a dynamic-sparse way. In computer science, this is often called a consensus problem.

Dynamic-sparse means in this context:

Naturally, the user has to provide:

This base class only introduces a basic interface to achieve these goals, while derived classes implement different algorithms to actually compute such communication patterns. The last two features of the list above this paragraph are implemented in classes derived from ConsensusAlgorithm::Process.

Template Parameters
T1The type of the elements of the vector to be sent.
T2The type of the elements of the vector to be received.

Definition at line 166 of file mpi_consensus_algorithms.h.

Constructor & Destructor Documentation

◆ Interface()

template<typename T1 , typename T2 >
Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >::Interface ( Process< T1, T2 > &  process,
const MPI_Comm comm 
)

◆ ~Interface()

template<typename T1 , typename T2 >
virtual Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >::~Interface ( )
virtualdefault

Destructor.

Member Function Documentation

◆ run()

template<typename T1 , typename T2 >
virtual std::vector< unsigned int > Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >::run ( )
pure virtual

Member Data Documentation

◆ process

template<typename T1 , typename T2 >
Process<T1, T2>& Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >::process
protected

Reference to the process provided by the user.

Definition at line 186 of file mpi_consensus_algorithms.h.

◆ comm

template<typename T1 , typename T2 >
const MPI_Comm& Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >::comm
protected

MPI communicator.

Definition at line 191 of file mpi_consensus_algorithms.h.

◆ job_supports_mpi

template<typename T1 , typename T2 >
const bool Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >::job_supports_mpi
protected

Cache if job supports MPI.

Definition at line 196 of file mpi_consensus_algorithms.h.

◆ my_rank

template<typename T1 , typename T2 >
const unsigned int Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >::my_rank
protected

Rank of this process.

Definition at line 201 of file mpi_consensus_algorithms.h.

◆ n_procs

template<typename T1 , typename T2 >
const unsigned int Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >::n_procs
protected

Number of processes in the communicator.

Definition at line 206 of file mpi_consensus_algorithms.h.


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