BioCMAMC-ST
Models::TwoMetaNb Struct Reference

#include <two_meta_nb.hpp>

Public Types

enum class  particle_var : int {
  age = INDEX_FROM_ENUM(Uptakeparticle_var::COUNT) , length , nu1 , nu2 ,
  l_cp , nu_eff_1 , nu_eff_2 , contrib_phi_s ,
  contrib_phi_o2 , contrib_phi_ac , phi_pts , COUNT
}
using uniform_weight = std::true_type
using Self = TwoMetaNb
using FloatType = float
using Config = std::nullopt_t
using SelfParticle = MC::ParticlesModel<Self::n_var, Self::FloatType>

Static Public Member Functions

static KOKKOS_INLINE_FUNCTION double mass (std::size_t idx, const SelfParticle &arr)
static std::vector< std::string_view > names ()
static std::vector< std::size_t > get_number ()
static KOKKOS_INLINE_FUNCTION void preinit ()
static KOKKOS_INLINE_FUNCTION void init (const MC::KPRNG::pool_type &random_pool, std::size_t idx, const SelfParticle &arr)
static KOKKOS_INLINE_FUNCTION MC::Status update (const MC::KPRNG::pool_type &random_pool, FloatType d_t, std::size_t idx, const SelfParticle &arr, const MC::LocalConcentration &c)
static KOKKOS_INLINE_FUNCTION void division (const MC::KPRNG::pool_type &random_pool, std::size_t idx, std::size_t idx2, const SelfParticle &arr, const SelfParticle &buffer_arr)
static KOKKOS_INLINE_FUNCTION void contribution (std::size_t idx, std::size_t position, double weight, const SelfParticle &arr, const MC::ContributionView &contributions)

Public Attributes

MODEL_CONSTANT FloatType MolarMassG
MODEL_CONSTANT FloatType MolarMassO2
MODEL_CONSTANT FloatType l_max_m = 5e-6
MODEL_CONSTANT FloatType l_c_m = 3e-6
MODEL_CONSTANT FloatType d_m = 0.3e-6
MODEL_CONSTANT FloatType l_min_m = 0.9e-6
MODEL_CONSTANT FloatType dl_max_ms
MODEL_CONSTANT FloatType lin_density
MODEL_CONSTANT FloatType y_sx_1
MODEL_CONSTANT FloatType y_sx_2 = y_sx_1 / 3.
MODEL_CONSTANT FloatType y_sa = 0.8
MODEL_CONSTANT FloatType y_os_molar = 3
MODEL_CONSTANT FloatType tau_1 = 1000.
MODEL_CONSTANT FloatType tau_2 = 1000.
MODEL_CONSTANT FloatType phi_max = (dl_max_ms * lin_density) * y_sx_1
MODEL_CONSTANT FloatType phi_o2_max
MODEL_CONSTANT FloatType nu_max_kg_s = dl_max_ms * lin_density
MODEL_CONSTANT FloatType k_o
MODEL_CONSTANT FloatType k = 1e-2
MODEL_CONSTANT FloatType k_perm = 1e-3
MODEL_CONSTANT FloatType beta = 7
MODEL_CONSTANT FloatType tau_ap_1 = 300
MODEL_CONSTANT FloatType tau_ap_2 = 200
MODEL_CONSTANT FloatType tau_ap_3 = 1000
MODEL_CONSTANT auto length_c_dist
MODEL_CONSTANT FloatType adder_mean = 1.5e-6
MODEL_CONSTANT auto adder_dist

Static Public Attributes

static constexpr std::size_t n_var = INDEX_FROM_ENUM(particle_var::COUNT)
static constexpr std::string_view name = "two_mode_nb"

Member Typedef Documentation

◆ Config

using Models::TwoMetaNb::Config = std::nullopt_t

◆ FloatType

◆ Self

◆ SelfParticle

◆ uniform_weight

using Models::TwoMetaNb::uniform_weight = std::true_type

Member Enumeration Documentation

◆ particle_var

enum class Models::TwoMetaNb::particle_var : int
strong
Enumerator
age 
length 
nu1 
nu2 
l_cp 
nu_eff_1 
nu_eff_2 
contrib_phi_s 
contrib_phi_o2 
contrib_phi_ac 
phi_pts 
COUNT 

Member Function Documentation

◆ contribution()

KOKKOS_INLINE_FUNCTION void Models::TwoMetaNb::contribution ( std::size_t idx,
std::size_t position,
double weight,
const SelfParticle & arr,
const MC::ContributionView & contributions )
static

◆ division()

KOKKOS_INLINE_FUNCTION void Models::TwoMetaNb::division ( const MC::KPRNG::pool_type & random_pool,
std::size_t idx,
std::size_t idx2,
const SelfParticle & arr,
const SelfParticle & buffer_arr )
static
Here is the call graph for this function:

◆ get_number()

std::vector< std::size_t > Models::TwoMetaNb::get_number ( )
inlinestatic

◆ init()

KOKKOS_INLINE_FUNCTION void Models::TwoMetaNb::init ( const MC::KPRNG::pool_type & random_pool,
std::size_t idx,
const SelfParticle & arr )
static
Here is the call graph for this function:

◆ mass()

KOKKOS_INLINE_FUNCTION double Models::TwoMetaNb::mass ( std::size_t idx,
const SelfParticle & arr )
inlinestatic

◆ names()

std::vector< std::string_view > Models::TwoMetaNb::names ( )
inlinestatic

◆ preinit()

KOKKOS_INLINE_FUNCTION void Models::TwoMetaNb::preinit ( )
inlinestatic

◆ update()

KOKKOS_INLINE_FUNCTION MC::Status Models::TwoMetaNb::update ( const MC::KPRNG::pool_type & random_pool,
FloatType d_t,
std::size_t idx,
const SelfParticle & arr,
const MC::LocalConcentration & c )
static
Here is the call graph for this function:

Member Data Documentation

◆ adder_dist

MODEL_CONSTANT auto Models::TwoMetaNb::adder_dist
Initial value:
=
adder_mean / 2.,
adder_mean / 20.,
adder_mean * 10)
Represents a TruncatedNormal (Gaussian) probability distribution.
Definition prng_extension.hpp:263
MODEL_CONSTANT FloatType adder_mean
Definition two_meta_nb.hpp:87

◆ adder_mean

MODEL_CONSTANT FloatType Models::TwoMetaNb::adder_mean = 1.5e-6

◆ beta

MODEL_CONSTANT FloatType Models::TwoMetaNb::beta = 7

◆ d_m

MODEL_CONSTANT FloatType Models::TwoMetaNb::d_m = 0.3e-6

◆ dl_max_ms

MODEL_CONSTANT FloatType Models::TwoMetaNb::dl_max_ms
Initial value:
=
10 * 2e-10

◆ k

MODEL_CONSTANT FloatType Models::TwoMetaNb::k = 1e-2

◆ k_o

MODEL_CONSTANT FloatType Models::TwoMetaNb::k_o
Initial value:
=
0.0001

◆ k_perm

MODEL_CONSTANT FloatType Models::TwoMetaNb::k_perm = 1e-3

◆ l_c_m

MODEL_CONSTANT FloatType Models::TwoMetaNb::l_c_m = 3e-6

◆ l_max_m

MODEL_CONSTANT FloatType Models::TwoMetaNb::l_max_m = 5e-6

◆ l_min_m

MODEL_CONSTANT FloatType Models::TwoMetaNb::l_min_m = 0.9e-6

◆ length_c_dist

MODEL_CONSTANT auto Models::TwoMetaNb::length_c_dist
Initial value:
=
MODEL_CONSTANT FloatType l_min_m
Definition two_meta_nb.hpp:52
MODEL_CONSTANT FloatType l_c_m
Definition two_meta_nb.hpp:50
MODEL_CONSTANT FloatType l_max_m
Definition two_meta_nb.hpp:49

◆ lin_density

MODEL_CONSTANT FloatType Models::TwoMetaNb::lin_density
Initial value:
=
c_linear_density(static_cast<FloatType>(1000), d_m)
KOKKOS_INLINE_FUNCTION consteval F c_linear_density(F rho, F d)
Definition utils.hpp:40
MODEL_CONSTANT FloatType d_m
Definition fixed_length.hpp:46
float FloatType
Definition fixed_length.hpp:27

◆ MolarMassG

MODEL_CONSTANT FloatType Models::TwoMetaNb::MolarMassG
Initial value:

◆ MolarMassO2

MODEL_CONSTANT FloatType Models::TwoMetaNb::MolarMassO2
Initial value:

◆ n_var

std::size_t Models::TwoMetaNb::n_var = INDEX_FROM_ENUM(particle_var::COUNT)
staticconstexpr

◆ name

std::string_view Models::TwoMetaNb::name = "two_mode_nb"
staticconstexpr

◆ nu_max_kg_s

MODEL_CONSTANT FloatType Models::TwoMetaNb::nu_max_kg_s = dl_max_ms * lin_density

◆ phi_max

MODEL_CONSTANT FloatType Models::TwoMetaNb::phi_max = (dl_max_ms * lin_density) * y_sx_1

◆ phi_o2_max

MODEL_CONSTANT FloatType Models::TwoMetaNb::phi_o2_max
Initial value:
=
MODEL_CONSTANT FloatType phi_max
Definition two_meta_nb.hpp:69
MODEL_CONSTANT FloatType MolarMassG
Definition two_meta.hpp:60
MODEL_CONSTANT FloatType MolarMassO2
Definition two_meta.hpp:62
MODEL_CONSTANT FloatType y_os_molar
Definition two_meta.hpp:69

◆ tau_1

MODEL_CONSTANT FloatType Models::TwoMetaNb::tau_1 = 1000.

◆ tau_2

MODEL_CONSTANT FloatType Models::TwoMetaNb::tau_2 = 1000.

◆ tau_ap_1

MODEL_CONSTANT FloatType Models::TwoMetaNb::tau_ap_1 = 300

◆ tau_ap_2

MODEL_CONSTANT FloatType Models::TwoMetaNb::tau_ap_2 = 200

◆ tau_ap_3

MODEL_CONSTANT FloatType Models::TwoMetaNb::tau_ap_3 = 1000

◆ y_os_molar

MODEL_CONSTANT FloatType Models::TwoMetaNb::y_os_molar = 3

◆ y_sa

MODEL_CONSTANT FloatType Models::TwoMetaNb::y_sa = 0.8

◆ y_sx_1

MODEL_CONSTANT FloatType Models::TwoMetaNb::y_sx_1
Initial value:
=
1. / 2.217737e+00

◆ y_sx_2

MODEL_CONSTANT FloatType Models::TwoMetaNb::y_sx_2 = y_sx_1 / 3.

The documentation for this struct was generated from the following file: