| FEAT 3
    Finite Element Analysis Toolbox | 
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 | 
| Transfer & | operator= (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 | 
Global grid-transfer operator class template.
Definition at line 22 of file transfer.hpp.
| typedef LocalTransfer_::MatrixType FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::LocalMatrixType | 
our internal local matrix type
Definition at line 28 of file transfer.hpp.
| typedef LocalTransfer_ FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::LocalTransferType | 
our local transfer
Definition at line 26 of file transfer.hpp.
| typedef LocalTransfer_::VectorType FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::LocalVectorType | 
our internal local vector type
Definition at line 30 of file transfer.hpp.
| typedef Global::Muxer<LocalVectorType, Mirror_> FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::MuxerType | 
our coarse grid multiplexer type
Definition at line 36 of file transfer.hpp.
| 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.
| typedef Global::Vector<LocalVectorType, Mirror_> FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::VectorType | 
our global vector type
Definition at line 33 of file transfer.hpp.
| 
 | inline | 
standard constructor
Definition at line 57 of file transfer.hpp.
Referenced by FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::clone().
| 
 | inline | 
move-constructor
Definition at line 63 of file transfer.hpp.
| 
 | inlineexplicit | 
Constructor.
| [in] | coarse_muxer | The coarse-level muxer. | 
| [in] | args | The arguments that are passed to the local transfer operator constructor. | 
Definition at line 80 of file transfer.hpp.
| 
 | inlinevirtual | 
virtual destructor
Definition at line 88 of file transfer.hpp.
| 
 | inline | 
Definition at line 143 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer, and FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_vec_tmp.
Referenced by FEAT::Control::BlockedBasicSystemLevel< dim_, DataType_, IndexType_, BlockedMatrix_, TransferMatrix_ >::bytes(), FEAT::Control::ScalarBasicSystemLevel< DataType_, IndexType_, ScalarMatrix_, TransferMatrix_ >::bytes(), FEAT::Control::ScalarMixedSystemLevel< dim_, DataType_, IndexType_, MatrixBlockA_, MatrixBlockB_, MatrixBlockD_, ScalarMatrix_, TransferMatrixV_, TransferMatrixP_ >::bytes(), FEAT::Control::Stokes3FieldSystemLevel< dim_, nsc_, DataType_, IndexType_, MatrixBlockA_, MatrixBlockB_, MatrixBlockD_, MatrixBlockM_, MatrixBlockK_, MatrixBlockL_, ScalarMatrix_, TransferMatrixV_, TransferMatrixP_, TransferMatrixS_ >::bytes(), and FEAT::Control::StokesBlockedSystemLevel< dim_, DataType_, IndexType_, MatrixBlockA_, MatrixBlockB_, MatrixBlockD_, ScalarMatrix_, TransferMatrixV_, TransferMatrixP_, TransferMatrixS_ >::bytes().
| 
 | inline | 
Creates a clone of this object.
| [in] | clone_mode | The desired clone mode | 
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.
| 
 | inline | 
Definition at line 148 of file transfer.hpp.
| 
 | inline | 
container conversion function
Definition at line 107 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer, and FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_vec_tmp.
| 
 | 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().
| 
 | inline | 
Definition at line 131 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer.
Referenced by FEAT::Control::Meshopt::MeshoptSystemLevel< DT_, IT_, Functional_ >::assemble_system_transfer().
| 
 | inline | 
Definition at line 137 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer.
| 
 | inline | 
move-assign operator
Definition at line 93 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer, and FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_vec_tmp.
| 
 | inline | 
Applies the prolongation operator.
| [out] | vec_fine | The prolonged fine-mesh primal vector. | 
| [in] | vec_coarse | The coarse-mesh primal vector to be prolonged. | 
true Definition at line 294 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_vec_tmp, FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_child(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_parent(), FEAT::Global::Vector< LocalVector_, Mirror_ >::local(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::split(), FEAT::Global::Vector< LocalVector_, Mirror_ >::sync_0(), and XASSERT.
| 
 | inline | 
| 
 | inline | 
Receives the prolongation for a ghost operator.
| [out] | vec_fine | The prolonged fine-mesh primal vector. | 
Definition at line 325 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_vec_tmp, FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_ghost(), FEAT::Global::Vector< LocalVector_, Mirror_ >::local(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::split_recv(), FEAT::Global::Vector< LocalVector_, Mirror_ >::sync_0(), and XASSERT.
| 
 | inline | 
Applies the restriction operator.
| [in] | vec_fine | The fine-mesh dual vector to be restricted. | 
| [out] | vec_coarse | The restricted coarse-mesh dual vector. | 
true Definition at line 252 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_vec_tmp, FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_child(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_parent(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join(), FEAT::Global::Vector< LocalVector_, Mirror_ >::local(), FEAT::Global::Vector< LocalVector_, Mirror_ >::sync_0(), and XASSERT.
| 
 | inline | 
Sends the restriction for a ghost operator.
| [in] | vec_fine | The fine-mesh dual vector to be restricted. | 
Definition at line 274 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_vec_tmp, FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_ghost(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join_send(), FEAT::Global::Vector< LocalVector_, Mirror_ >::local(), and XASSERT.
| 
 | inline | 
Applies the truncation operator.
| [in] | vec_fine | The fine-mesh dual vector to be truncated. | 
| [out] | vec_coarse | The truncated coarse-mesh dual vector. | 
true Definition at line 210 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_vec_tmp, FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_child(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_parent(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join(), FEAT::Global::Vector< LocalVector_, Mirror_ >::local(), FEAT::Global::Vector< LocalVector_, Mirror_ >::sync_0(), and XASSERT.
| 
 | inline | 
Sends the truncation for a ghost operator.
| [in] | vec_fine | The fine-mesh dual vector to be truncated. | 
Definition at line 232 of file transfer.hpp.
References FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer, FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_vec_tmp, FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_ghost(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join_send(), FEAT::Global::Vector< LocalVector_, Mirror_ >::local(), and XASSERT.
| const MuxerType* FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_coarse_muxer | 
the coarse-level multiplexer
Definition at line 49 of file transfer.hpp.
Referenced by FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::clone(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::convert(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::is_ghost(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::operator=(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::prol(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::prol_recv(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::rest(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::rest_send(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::trunc(), and FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::trunc_send().
| LocalTransfer_ FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::_transfer | 
the local transfer operator
Definition at line 51 of file transfer.hpp.
Referenced by FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::bytes(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::clone(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::convert(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::local(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::operator=(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::prol(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::prol_recv(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::rest(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::rest_send(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::trunc(), and FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::trunc_send().
| 
 | mutable | 
a temporary local vector
Definition at line 53 of file transfer.hpp.
Referenced by FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::bytes(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::convert(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::operator=(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::prol(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::prol_recv(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::rest(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::rest_send(), FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::trunc(), and FEAT::Global::Transfer< LocalTransfer_, Mirror_ >::trunc_send().
| 
 | staticconstexpr | 
Definition at line 44 of file transfer.hpp.
| 
 | staticconstexpr | 
Definition at line 45 of file transfer.hpp.