1#ifndef __BIO__EXT_MODULE_DEF__
2#define __BIO__EXT_MODULE_DEF__
4#include "Kokkos_Core_fwd.hpp"
6#ifdef DECLARE_EXPORT_UDF
7# include <dynlib/dyn_module.hpp>
8# include <dynlib/dynlib.hpp>
11#include <Kokkos_Core.hpp>
12#include <mc/prng/prng.hpp>
13#include <mc/traits.hpp>
14#include <models/udf_model.hpp>
43 const std::size_t position_index,
47 Kokkos::DefaultHostExecutionSpace& ep, std::size_t n);
60 static std::vector<std::string_view> (*
names)();
62 static std::vector<std::size_t> (*
get_number)();
66#ifdef DECLARE_EXPORT_UDF
70 [[nodiscard]]
static std::shared_ptr<DynamicLibrary>
71 init_lib(std::string_view path);
77#ifdef DECLARE_EXPORT_UDF
96using get_number_udf_ptr
104 MODULE_ITEM(init_udf)
105 MODULE_ITEM(update_udf)
106 MODULE_ITEM(division_udf)
107 MODULE_ITEM(mass_udf)
108 MODULE_ITEM(names_udf)
109 MODULE_ITEM(get_number_udf)
110 MODULE_ITEM(set_nvar_udf)
111 MODULE_ITEM(set_nc_udf)
112 MODULE_ITEM(get_config_udf)
Status
Definition alias.hpp:125
gen_pool_type< Kokkos::DefaultExecutionSpace > pool_type
Definition alias.hpp:100
KernelConcentrationType LocalConcentration
Definition alias.hpp:170
Kokkos::View< F **, ComputeSpace::array_layout, ComputeSpace, Kokkos::MemoryTraits< Kokkos::MemoryTraitsFlags::Restrict > > DynParticlesModel
Definition alias.hpp:72
Unsafe namespace to handle UDF (User-defined function) via dynamic library loading.
Definition udf_includes.hpp:21
Kokkos::View< float ** > Config
Definition udf_model.hpp:20
MC::DynParticlesModel< FloatType > SelfParticle
Definition udf_model.hpp:18
MC::DynParticlesContribs< FloatType > SelfContribs
Definition udf_model.hpp:19
Static class to access to low-level configuration to load dynamic library.
Definition udf_includes.hpp:27
static std::vector< std::string_view >(* names)()
Definition udf_includes.hpp:60
static MC::Status(* update_udf)(const MC::pool_type &random_pool, float d_t, std::size_t idx, const Models::UdfModel::SelfParticle &arr, const Models::UdfModel::SelfContribs &arr_contribs, const std::size_t position_index, const MC::LocalConcentration &c)
Definition udf_includes.hpp:37
static Models::UdfModel::Config(* get_config_udf)(Kokkos::DefaultHostExecutionSpace &ep, std::size_t n)
Definition udf_includes.hpp:46
static void(* init_udf)(const MC::pool_type &random_pool, std::size_t idx, const Models::UdfModel::SelfParticle &arr, const Models::UdfModel::Config &config)
Definition udf_includes.hpp:31
static void(* division_udf)(const MC::pool_type &random_pool, std::size_t idx, std::size_t idx2, const MC::DynParticlesModel< float > &arr, const MC::DynParticlesModel< float > &buffer_arr)
Definition udf_includes.hpp:49
static std::size_t(* set_nvar_udf)()
Definition udf_includes.hpp:28
static std::vector< std::size_t >(* get_number)()
Definition udf_includes.hpp:62
static double(* mass)(std::size_t idx, const MC::DynParticlesModel< float > &arr)
Definition udf_includes.hpp:56
static std::size_t(* set_nc_udf)()
Definition udf_includes.hpp:29