Proto
3.2
|
#include "Proto_MBDisjointBoxLayout.H"
#include "Proto_MBBoundaryData.H"
#include "Proto_MBDataPoint.H"
#include "implem/Proto_MBLevelBoxDataImplem.H"
Go to the source code of this file.
Classes | |
class | Proto::MBLevelBoxData< T, C, MEM, CTR > |
Multiblock Level Box Data. More... | |
class | Proto::MBLevelMap< MAP, MEM > |
Single Level Mapped Multiblock Map. More... | |
class | Proto::MBLevelCopierOp< T, C, SRC_MEM, DST_MEM, CTR > |
Level Copier Operator. More... | |
class | Proto::MBLevelCopier< T, C, SRC_MEM, DST_MEM, CTR > |
Level Copier. More... | |
class | Proto::MBLevelFullCopierOp< T, C, SRC_MEM, DST_MEM, CTR > |
Full Level Copier Operator (Includes all ghost cells) More... | |
class | Proto::MBLevelFullCopier< T, C, SRC_MEM, DST_MEM, CTR > |
Full Level Copier (Includes all ghost cells) More... | |
class | Proto::MBLevelExchangeCopierOp< T, C, MEM, CTR > |
Exchange Copier Operator. More... | |
class | Proto::MBLevelExchangeCopier< T, C, MEM, CTR > |
Exchange Copier. More... | |
class | Proto::MBLevelBoxData< T, C, MEM, CTR > |
Multiblock Level Box Data. More... | |
Namespaces | |
Proto | |
Macros | |
#define | _PROTO_MB_LEVEL_DATA_ |
Functions | |
template<typename IN > | |
const IN & | Proto::parse_mb_level_arg (MBIndex &a_index, Centering C, const IN &a_arg) |
template<typename T , unsigned int C, MemType MEM, Centering CTR> | |
const BoxData< T, C, MEM > & | Proto::parse_mb_level_arg (MBIndex &a_index, Centering _CTR, const MBLevelBoxData< T, C, MEM, CTR > &a_arg) |
template<typename Func , typename MAP , MemType MEM> | |
const BoxData< double, DIM, MEM > | Proto::parse_mb_level_arg (MBIndex &a_index, Centering C, const MBLevelMap< MAP, MEM > &a_arg) |
template<int I = 0, typename Func , typename... LArgs, typename... FArgs> | |
std::enable_if< I==sizeof...(LArgs), void >::type | Proto::call_mb_level_forall (Func &a_func, MBIndex &a_index, Centering CTR, std::tuple< LArgs... > a_args, FArgs &&... a_fargs) |
Proto::exchange () | |
Variables | |
template<int I = 0, typename Func , typename... LArgs, typename... FArgs> | |
std::enable_if< I< sizeof...(LArgs), void >::typecall_mb_level_forall(Func &a_func, MBIndex &a_index, Centering CTR, std::tuple< LArgs... > a_args, FArgs &&... a_fargs){ auto &arg=parse_mb_level_arg(a_index, CTR, std::get< I >a_args));call_mb_level_forall< I+1 >a_func, a_index, CTR, a_args, a_fargs..., arg);}template< typename T, unsigned int C, MemType MEM, Centering CTR >template< typename Func, typename... Srcs >void MBLevelBoxData< T, C, MEM, CTR >::initialize(Func &a_func, Srcs &... a_srcs){ auto srcs=std::tuple< Srcs &... >a_srcs...);for(auto iter :(m_layout)) { auto &patch=(*this)[iter];auto block=layout().block(iter);call_mb_level_forall(a_func, iter, CTR, srcs, patch, block);} }template< typename T, unsigned int C, MemType MEM, Centering CTR >template< typename Func, typename... Srcs >void MBLevelBoxData< T, C, MEM, CTR >::initConvolve(Func &a_func, Srcs &... a_srcs){ auto g=ghost();g[0]=g[0]+Point::Ones();MBLevelBoxData< T, C, MEM, CTR > tmp(m_layout, g);tmp.initialize(a_func, a_srcs...);for(auto iter :m_layout) { auto &tmp_i=tmp[iter];auto &patch=(*this)[iter];Operator::convolve(patch, tmp_i);}}template< typename T, unsigned int C, MemType MEM, Centering CTR >void MBLevelBoxData< T, C, MEM, CTR >::setVal(T a_value){ for(auto data :m_data) { data-> | Proto::setVal (a_value) |
#define _PROTO_MB_LEVEL_DATA_ |