24#ifdef ESPRESSO_WALBERLA
54 auto get_slices_bounding_boxes()
const {
60 auto const sentinel = get_sentinel_index(lattice);
62 lattice.get_local_grid_range();
63 for (
auto const i : {0, 1, 2}) {
82 template <
class LatticeModel,
typename T>
89 template <
class LatticeModel,
typename T>
Vector implementation and trait types for boost qvm interoperability.
Abstract representation of a lattice-based model.
Class that runs and controls the BlockForest in waLBerla.
auto get_ghost_layers() const
Interface to carry out simple operations on lattice indices.
Variant gather_3d(std::vector< int > const &data_dims, LatticeModel const &lattice_model, std::vector< T >(LatticeModel::*getter)(Utils::Vector3i const &, Utils::Vector3i const &) const, double units_conversion=1.) const
Utils::Vector3i m_slice_upper_corner
void scatter_3d(Variant const &grid_values, std::vector< int > const &data_dims, LatticeModel &lattice_model, void(LatticeModel::*setter)(Utils::Vector3i const &, Utils::Vector3i const &, std::vector< T > const &), double units_conversion=1.)
Utils::Vector3i m_slice_lower_corner
virtual ::LatticeWalberla const & get_lattice() const =0
std::vector< int > m_shape
static DEVICE_QUALIFIER constexpr Vector< T, N > broadcast(typename Base::value_type const &value) noexcept
Create a vector that has all entries set to the same value.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
make_recursive_variant< ObjectRef > Variant
Possible types for parameters.
std::vector< T, allocator< T > > vector