40template<
unsigned D,
typename T,
typename U>
45 std::vector<cpu::sisd::Column<U>>
_data;
59 bool operator() (T output[],
const int input[]);
63 U&
get(std::size_t iCell,
int iD=0);
76 "BlockData only offers DUMMY_FIELD for communication");
84 bool*
getBlock(std::size_t iBlock, std::size_t& sizeBlock,
bool loadingMode)
override;
90template<
unsigned D,
typename T,
typename U>
95template <Platform PLATFORM>
bool operator()(T output[], const int input[])
bool * getBlock(std::size_t iBlock, std::size_t &sizeBlock, bool loadingMode) override
Returns the address of the i-th block and its size.
bool hasCommunicatable(std::type_index field) const
std::size_t getSerializableSize() const override
Returns the binary size of the data to be saved.
Platform getPlatform() const
Column< U > & getColumn(unsigned iD)
BlockData(BlockData< D, T, U > &&)=default
std::size_t getNblock() const override
Returns the number of blocks.
std::vector< cpu::sisd::Column< U > > _data
virtual ~BlockData()=default
ConcreteCommunicatable< std::vector< cpu::sisd::Column< U > > > _communicatable
BlockData(Cuboid< T, D > &cuboid, int overlap=0, int size=1)
static constexpr Platform platform
U & get(std::size_t iCell, int iD=0)
auto & getCommunicatable(std::type_index field)
Base class for serializable objects of constant size. For dynamic size use BufferSerializable.
Plain column for SISD CPU targets (default)
Top level namespace for all of OpenLB.
std::conditional_t< D==2, BlockF2D< T >, BlockF3D< T > > BlockF
Platform
OpenLB execution targets.
std::conditional_t< D==2, Cuboid2D< T >, Cuboid3D< T > > Cuboid
#define OLB_ASSERT(COND, MESSAGE)
Curried BlockData template for use in callUsingConcretePlatform.
Base of a descriptor tag.