24#ifdef ESPRESSO_WALBERLA
40#include <unordered_map>
69 std::vector<int>
const &
values) {
77 std::shared_ptr<::walberla::EKReactionBaseIndexed> m_reaction_impl;
78 std::shared_ptr<EKIndexedReaction> m_reaction_sip;
79 std::unordered_map<std::string, std::vector<int>> m_shape_val;
85 m_reaction_impl = m_reaction_sip->get_impl();
92 m_shape_val[
"is_boundary"] = std::vector<int>(1, 1);
99 return *m_reaction_impl->get_lattice();
Vector implementation and trait types for boost qvm interoperability.
Class that runs and controls the BlockForest in waLBerla.
std::string_view name() const
::LatticeWalberla const & get_lattice() const override
void do_construct(VariantMap const ¶ms) override
Variant do_call_method(std::string const &name, VariantMap const ¶ms) override
Utils::Vector3i m_slice_upper_corner
Utils::Vector3i m_slice_lower_corner
std::vector< int > m_shape
virtual void set_slice_is_boundary(Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner, std::vector< int > const &is_boundary)=0
virtual void ghost_communication()=0
virtual std::vector< int > get_slice_is_boundary(Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const =0
auto get_lattice() const noexcept
T get_value(Variant const &v)
Extract value of specific type T from a Variant.
std::unordered_map< std::string, Variant > VariantMap
Recursive variant implementation.
Adapter that exposes EKReactionBaseIndexed with the interface expected by LatticeSlice::gather_3d / s...
void set_slice_is_boundary(Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner, std::vector< int > const &values)
::walberla::EKReactionBaseIndexed * m_impl
void ghost_communication()
::LatticeWalberla const & get_lattice() const noexcept
std::vector< int > get_slice_is_boundary(Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const