Note: this is documentation for an old release. View the latest documentation at docs.fenicsproject.org/dolfinx/v0.9.0/cpp/doxygen/d2/d0b/classdolfinx_1_1la_1_1Vector.html
DOLFINx 0.7.3
DOLFINx C++ interface
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
Vector< T, Container > Class Template Reference

Distributed vector. More...

#include <Vector.h>

Public Types

using value_type = T
 Scalar type.
 
using container_type = Container
 Container type.
 

Public Member Functions

 Vector (std::shared_ptr< const common::IndexMap > map, int bs)
 Create a distributed vector.
 
 Vector (const Vector &x)
 Copy constructor.
 
 Vector (Vector &&x)
 Move constructor.
 
Vectoroperator= (const Vector &x)=delete
 
Vectoroperator= (Vector &&x)=default
 Move Assignment operator.
 
void set (value_type v)
 Set all entries (including ghosts)
 
void scatter_fwd_begin ()
 Begin scatter of local data from owner to ghosts on other ranks.
 
void scatter_fwd_end ()
 End scatter of local data from owner to ghosts on other ranks.
 
void scatter_fwd ()
 Scatter local data to ghost positions on other ranks.
 
void scatter_rev_begin ()
 Start scatter of ghost data to owner.
 
template<class BinaryOperation >
void scatter_rev_end (BinaryOperation op)
 End scatter of ghost data to owner. This process may receive data from more than one process, and the received data can be summed or inserted into the local portion of the vector.
 
template<class BinaryOperation >
void scatter_rev (BinaryOperation op)
 Scatter ghost data to owner. This process may receive data from more than one process, and the received data can be summed or inserted into the local portion of the vector.
 
std::shared_ptr< const common::IndexMapindex_map () const
 Get IndexMap.
 
constexpr int bs () const
 Get block size.
 
std::span< const value_typearray () const
 Get local part of the vector (const version)
 
std::span< value_typemutable_array ()
 Get local part of the vector.
 

Detailed Description

template<typename T, typename Container = std::vector<T>>
class dolfinx::la::Vector< T, Container >

Distributed vector.

Template Parameters
TScalar type
Containerdata container type

Constructor & Destructor Documentation

◆ Vector()

template<typename T , typename Container = std::vector<T>>
Vector ( std::shared_ptr< const common::IndexMap map,
int  bs 
)
inline

Create a distributed vector.

Parameters
mapIndexMap for parallel distribution of the data
bsBlock size

Member Function Documentation

◆ scatter_fwd()

template<typename T , typename Container = std::vector<T>>
void scatter_fwd ( )
inline

Scatter local data to ghost positions on other ranks.

Note
Collective MPI operation

◆ scatter_fwd_begin()

template<typename T , typename Container = std::vector<T>>
void scatter_fwd_begin ( )
inline

Begin scatter of local data from owner to ghosts on other ranks.

Note
Collective MPI operation

◆ scatter_fwd_end()

template<typename T , typename Container = std::vector<T>>
void scatter_fwd_end ( )
inline

End scatter of local data from owner to ghosts on other ranks.

Note
Collective MPI operation

◆ scatter_rev()

template<typename T , typename Container = std::vector<T>>
template<class BinaryOperation >
void scatter_rev ( BinaryOperation  op)
inline

Scatter ghost data to owner. This process may receive data from more than one process, and the received data can be summed or inserted into the local portion of the vector.

Parameters
opIndexMap operation (add or insert)
Note
Collective MPI operation

◆ scatter_rev_begin()

template<typename T , typename Container = std::vector<T>>
void scatter_rev_begin ( )
inline

Start scatter of ghost data to owner.

Note
Collective MPI operation

◆ scatter_rev_end()

template<typename T , typename Container = std::vector<T>>
template<class BinaryOperation >
void scatter_rev_end ( BinaryOperation  op)
inline

End scatter of ghost data to owner. This process may receive data from more than one process, and the received data can be summed or inserted into the local portion of the vector.

Parameters
opThe operation to perform when adding/setting received values (add or insert)
Note
Collective MPI operation

◆ set()

template<typename T , typename Container = std::vector<T>>
void set ( value_type  v)
inline

Set all entries (including ghosts)

Parameters
[in]vThe value to set all entries to (on calling rank)

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