24#ifdef ESPRESSO_WALBERLA
50 [[
nodiscard]] std::shared_ptr<::walberla::EKReactionBase>
77 auto get_order = [](
Variant const &v) {
83 [get_order](
double sum,
auto &element) {
84 return sum + get_order(element);
150 return get_instance()->get_lattice()->get_grid_dimensions();
171 if (
method ==
"set_node_is_boundary") {
175 m_ekreaction_impl->set_node_is_boundary(
179 if (
method ==
"get_node_is_boundary") {
183 auto const result = m_ekreaction_impl->get_node_is_boundary(index);
190 std::shared_ptr<::walberla::EKReactionBaseIndexed> m_ekreaction_impl;
Bind parameters in the script interface.
Variant get_parameter(const std::string &name) const final
void add_parameters(std::vector< AutoParameter > &¶ms)
Utils::Vector3i get_mapped_index(Utils::Vector3i const &index, Utils::Vector3i const &shape) const
Context * context() const
Responsible context.
void do_construct(VariantMap const &args) override
void do_construct(VariantMap const &args) override
Variant do_call_method(std::string const &method, VariantMap const ¶meters) override
auto get_conversion_coefficient() const noexcept
auto get_is_gpu(VariantMap const &args) const
double m_conv_coefficient
std::shared_ptr<::walberla::EKReactionBase > m_ekreaction
auto get_agrid(VariantMap const &args) const
std::shared_ptr<::walberla::EKReactionBase > get_instance() const
auto calculate_bulk_conversion_factor(VariantMap const &args) const
auto make_instance(VariantMap const &args, F &allocator) const
std::vector< std::shared_ptr< EKReactant > > reactants_type
T get_value(Variant const &v)
Extract value of specific type T from a Variant.
std::unordered_map< std::string, Variant > VariantMap
constexpr const None none
None-"literal".
T reduce_optional(boost::mpi::communicator const &comm, std::optional< T > const &result)
Reduce an optional on the head node.
std::shared_ptr< EKReactionBaseIndexed > new_ek_reaction_indexed_gpu(std::shared_ptr< LatticeWalberla > const &lattice, typename EKReactionBase::reactants_type const &reactants, double coefficient)
std::shared_ptr< EKReactionBase > new_ek_reaction_bulk_gpu(std::shared_ptr< LatticeWalberla > const &lattice, typename EKReactionBase::reactants_type const &reactants, double coefficient)
std::shared_ptr< EKReactionBaseIndexed > new_ek_reaction_indexed_cpu(std::shared_ptr< LatticeWalberla > const &lattice, typename EKReactionBase::reactants_type const &reactants, double coefficient)
std::shared_ptr< EKReactionBase > new_ek_reaction_bulk_cpu(std::shared_ptr< LatticeWalberla > const &lattice, typename EKReactionBase::reactants_type const &reactants, double coefficient)
static constexpr const ReadOnly read_only
Recursive variant implementation.