FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Global::Transfer< LocalTransfer_, Mirror_ > Class Template Reference

Global grid-transfer operator class template. More...

#include <transfer.hpp>

Public Types

typedef LocalTransfer_::MatrixType LocalMatrixType
 our internal local matrix type More...
 
typedef LocalTransfer_ LocalTransferType
 our local transfer More...
 
typedef LocalTransfer_::VectorType LocalVectorType
 our internal local vector type More...
 
typedef Global::Muxer< LocalVectorType, Mirror_ > MuxerType
 our coarse grid multiplexer type More...
 
template<typename DT2_ , typename IT2_ >
using TransferTypeByDI = Transfer< typename LocalTransfer_::template TransferTypeByDI< DT2_, IT2_ >, typename Mirror_::template MirrorType< DT2_, IT2_ > >
 Our 'base' class type. More...
 
typedef Global::Vector< LocalVectorType, Mirror_ > VectorType
 our global vector type More...
 

Public Member Functions

 Transfer ()
 standard constructor More...
 
template<typename... Args_>
 Transfer (const MuxerType *coarse_muxer, Args_ &&... args)
 Constructor. More...
 
 Transfer (Transfer &&other)
 move-constructor More...
 
virtual ~Transfer ()
 virtual destructor More...
 
std::size_t bytes () const
 
Transfer clone (LAFEM::CloneMode clone_mode=LAFEM::CloneMode::Weak) const
 Creates a clone of this object. More...
 
void compile ()
 
template<typename LocalTransfer2_ , typename Mirror2_ >
void convert (MuxerType *coarse_muxer, const Transfer< LocalTransfer2_, Mirror2_ > &other)
 container conversion function More...
 
bool is_ghost () const
 Checks whether this transfer is a ghost-operator. More...
 
LocalTransfer_ & local ()
 
const LocalTransfer_ & local () const
 
Transferoperator= (Transfer &&other)
 move-assign operator More...
 
bool prol (VectorType &vec_fine, const VectorType &vec_coarse) const
 Applies the prolongation operator. More...
 
void prol_cancel () const
 Cancels the prolongation. More...
 
bool prol_recv (VectorType &vec_fine) const
 Receives the prolongation for a ghost operator. More...
 
bool rest (const VectorType &vec_fine, VectorType &vec_coarse) const
 Applies the restriction operator. More...
 
bool rest_send (const VectorType &vec_fine) const
 Sends the restriction for a ghost operator. More...
 
bool trunc (const VectorType &vec_fine, VectorType &vec_coarse) const
 Applies the truncation operator. More...
 
bool trunc_send (const VectorType &vec_fine) const
 Sends the truncation for a ghost operator. More...
 

Public Attributes

const MuxerType_coarse_muxer
 the coarse-level multiplexer More...
 
LocalTransfer_ _transfer
 the local transfer operator More...
 
LocalVectorType _vec_tmp
 a temporary local vector More...
 

Static Public Attributes

static constexpr bool is_global = true
 
static constexpr bool is_local = false
 

Detailed Description

template<typename LocalTransfer_, typename Mirror_>
class FEAT::Global::Transfer< LocalTransfer_, Mirror_ >

Global grid-transfer operator class template.

Author
Peter Zajac

Definition at line 22 of file transfer.hpp.

Member Typedef Documentation

◆ LocalMatrixType

template<typename LocalTransfer_ , typename Mirror_ >
typedef LocalTransfer_::MatrixType FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::LocalMatrixType

our internal local matrix type

Definition at line 28 of file transfer.hpp.

◆ LocalTransferType

template<typename LocalTransfer_ , typename Mirror_ >
typedef LocalTransfer_ FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::LocalTransferType

our local transfer

Definition at line 26 of file transfer.hpp.

◆ LocalVectorType

template<typename LocalTransfer_ , typename Mirror_ >
typedef LocalTransfer_::VectorType FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::LocalVectorType

our internal local vector type

Definition at line 30 of file transfer.hpp.

◆ MuxerType

template<typename LocalTransfer_ , typename Mirror_ >
typedef Global::Muxer<LocalVectorType, Mirror_> FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::MuxerType

our coarse grid multiplexer type

Definition at line 36 of file transfer.hpp.

◆ TransferTypeByDI

template<typename LocalTransfer_ , typename Mirror_ >
template<typename DT2_ , typename IT2_ >
using FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::TransferTypeByDI = Transfer< typename LocalTransfer_::template TransferTypeByDI<DT2_, IT2_>, typename Mirror_::template MirrorType<DT2_, IT2_> >

Our 'base' class type.

Definition at line 40 of file transfer.hpp.

◆ VectorType

template<typename LocalTransfer_ , typename Mirror_ >
typedef Global::Vector<LocalVectorType, Mirror_> FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::VectorType

our global vector type

Definition at line 33 of file transfer.hpp.

Constructor & Destructor Documentation

◆ Transfer() [1/3]

template<typename LocalTransfer_ , typename Mirror_ >
FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::Transfer ( )
inline

standard constructor

Definition at line 57 of file transfer.hpp.

Referenced by FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::clone().

◆ Transfer() [2/3]

template<typename LocalTransfer_ , typename Mirror_ >
FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::Transfer ( Transfer< LocalTransfer_, Mirror_ > &&  other)
inline

move-constructor

Definition at line 63 of file transfer.hpp.

◆ Transfer() [3/3]

template<typename LocalTransfer_ , typename Mirror_ >
template<typename... Args_>
FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::Transfer ( const MuxerType coarse_muxer,
Args_ &&...  args 
)
inlineexplicit

Constructor.

Parameters
[in]coarse_muxerThe coarse-level muxer.
[in]argsThe arguments that are passed to the local transfer operator constructor.

Definition at line 80 of file transfer.hpp.

◆ ~Transfer()

template<typename LocalTransfer_ , typename Mirror_ >
virtual FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::~Transfer ( )
inlinevirtual

virtual destructor

Definition at line 88 of file transfer.hpp.

Member Function Documentation

◆ bytes()

◆ clone()

template<typename LocalTransfer_ , typename Mirror_ >
Transfer FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::clone ( LAFEM::CloneMode  clone_mode = LAFEM::CloneMode::Weak) const
inline

Creates a clone of this object.

Parameters
[in]clone_modeThe desired clone mode
Returns
A clone of this object

Definition at line 125 of file transfer.hpp.

References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::Transfer(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, and FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer.

◆ compile()

template<typename LocalTransfer_ , typename Mirror_ >
void FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::compile ( )
inline

Definition at line 148 of file transfer.hpp.

◆ convert()

template<typename LocalTransfer_ , typename Mirror_ >
template<typename LocalTransfer2_ , typename Mirror2_ >
void FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::convert ( MuxerType coarse_muxer,
const Transfer< LocalTransfer2_, Mirror2_ > &  other 
)
inline

◆ is_ghost()

template<typename LocalTransfer_ , typename Mirror_ >
bool FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::is_ghost ( ) const
inline

Checks whether this transfer is a ghost-operator.

Definition at line 194 of file transfer.hpp.

References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, and FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_ghost().

◆ local() [1/2]

template<typename LocalTransfer_ , typename Mirror_ >
LocalTransfer_ & FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::local ( )
inline

◆ local() [2/2]

template<typename LocalTransfer_ , typename Mirror_ >
const LocalTransfer_ & FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::local ( ) const
inline
Returns
the local transfer operator

Definition at line 137 of file transfer.hpp.

References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer.

◆ operator=()

template<typename LocalTransfer_ , typename Mirror_ >
Transfer & FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::operator= ( Transfer< LocalTransfer_, Mirror_ > &&  other)
inline

◆ prol()

template<typename LocalTransfer_ , typename Mirror_ >
bool FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::prol ( VectorType vec_fine,
const VectorType vec_coarse 
) const
inline

◆ prol_cancel()

template<typename LocalTransfer_ , typename Mirror_ >
void FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::prol_cancel ( ) const
inline

Cancels the prolongation.

Definition at line 314 of file transfer.hpp.

References XASSERTM.

◆ prol_recv()

◆ rest()

template<typename LocalTransfer_ , typename Mirror_ >
bool FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::rest ( const VectorType vec_fine,
VectorType vec_coarse 
) const
inline

◆ rest_send()

template<typename LocalTransfer_ , typename Mirror_ >
bool FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::rest_send ( const VectorType vec_fine) const
inline

◆ trunc()

template<typename LocalTransfer_ , typename Mirror_ >
bool FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::trunc ( const VectorType vec_fine,
VectorType vec_coarse 
) const
inline

◆ trunc_send()

template<typename LocalTransfer_ , typename Mirror_ >
bool FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::trunc_send ( const VectorType vec_fine) const
inline

Member Data Documentation

◆ _coarse_muxer

◆ _transfer

◆ _vec_tmp

◆ is_global

template<typename LocalTransfer_ , typename Mirror_ >
constexpr bool FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::is_global = true
staticconstexpr

Definition at line 44 of file transfer.hpp.

◆ is_local

template<typename LocalTransfer_ , typename Mirror_ >
constexpr bool FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::is_local = false
staticconstexpr

Definition at line 45 of file transfer.hpp.


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