BioCMAMC-ST
Models::SimpleModel Struct Reference

Rod-shaped cell growing on glucose, dividing on a timer. More...

#include <simple_model.hpp>

Public Types

enum class  particle_var : int {
  length = 0 , age , t_div , phi_s ,
  __COUNT__
}
using uniform_weight = std::true_type
using Self = SimpleModel
using FloatType = float
using Config = std::nullopt_t
using SelfParticle = MC::ParticlesModel<Self::n_var, Self::FloatType>
using SelfContribs = MC::ParticlesContribs<Self::n_c, Self::FloatType>

Static Public Member Functions

static KOKKOS_INLINE_FUNCTION void init (const MC::pool_type &random_pool, std::size_t idx, const SelfParticle &arr)
static KOKKOS_INLINE_FUNCTION MC::Status update (const MC::pool_type &random_pool, FloatType d_t, std::size_t idx, const SelfParticle &arr, const SelfContribs &arr_contribs, std::size_t position_index, const MC::LocalConcentration &c)
static KOKKOS_INLINE_FUNCTION void division (const MC::pool_type &random_pool, std::size_t idx, std::size_t idx2, const SelfParticle &arr, const SelfParticle &buffer_arr)
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 std::vector< std::string_view > species ()

Public Attributes

MODEL_CONSTANT std::size_t n_var = INDEX_FROM_ENUM(particle_var::__COUNT__)
MODEL_CONSTANT std::size_t n_c = 1
MODEL_CONSTANT std::string_view name = "simple"
MODEL_CONSTANT FloatType l_dot_max = 8 * 2e-10
MODEL_CONSTANT FloatType l_max_m = 5e-6
MODEL_CONSTANT FloatType l_min_m = 0.9e-6
MODEL_CONSTANT FloatType d_m = 0.6e-6
MODEL_CONSTANT FloatType k_s = 1e-3
MODEL_CONSTANT FloatType lin_density = c_linear_density(static_cast<FloatType>(1000), d_m)
MODEL_CONSTANT FloatType phi_s_max = _get_phi_s_max<FloatType>(lin_density, l_dot_max)
MODEL_CONSTANT auto l_dist
MODEL_CONSTANT auto t_div_dist

Detailed Description

Rod-shaped cell growing on glucose, dividing on a timer.

Elongation follows a Monod law on glucose. Division is not triggered by length but by an age threshold drawn per cell, so the population spreads even with a deterministic growth rate.

Member Typedef Documentation

◆ Config

using Models::SimpleModel::Config = std::nullopt_t

◆ FloatType

◆ Self

◆ SelfContribs

◆ SelfParticle

◆ uniform_weight

using Models::SimpleModel::uniform_weight = std::true_type

Member Enumeration Documentation

◆ particle_var

enum class Models::SimpleModel::particle_var : int
strong
Enumerator
length 
age 
t_div 
phi_s 
__COUNT__ 

Member Function Documentation

◆ division()

KOKKOS_INLINE_FUNCTION void Models::SimpleModel::division ( const MC::pool_type & random_pool,
std::size_t idx,
std::size_t idx2,
const SelfParticle & arr,
const SelfParticle & buffer_arr )
static

◆ get_number()

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

◆ init()

KOKKOS_INLINE_FUNCTION void Models::SimpleModel::init ( const MC::pool_type & random_pool,
std::size_t idx,
const SelfParticle & arr )
static

◆ mass()

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

◆ names()

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

◆ species()

std::vector< std::string_view > Models::SimpleModel::species ( )
inlinestatic

◆ update()

KOKKOS_INLINE_FUNCTION MC::Status Models::SimpleModel::update ( const MC::pool_type & random_pool,
FloatType d_t,
std::size_t idx,
const SelfParticle & arr,
const SelfContribs & arr_contribs,
std::size_t position_index,
const MC::LocalConcentration & c )
static

Member Data Documentation

◆ d_m

MODEL_CONSTANT FloatType Models::SimpleModel::d_m = 0.6e-6

◆ k_s

MODEL_CONSTANT FloatType Models::SimpleModel::k_s = 1e-3

◆ l_dist

MODEL_CONSTANT auto Models::SimpleModel::l_dist
Initial value:
l_min_m, l_min_m / 5., l_min_m * 0.5, l_max_m)
Represents a TruncatedNormal (Gaussian) probability distribution.
Definition prng_extension.hpp:354
MODEL_CONSTANT FloatType l_max_m
Definition acetate.hpp:156
MODEL_CONSTANT FloatType l_min_m
Definition acetate.hpp:157

◆ l_dot_max

MODEL_CONSTANT FloatType Models::SimpleModel::l_dot_max = 8 * 2e-10

◆ l_max_m

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

◆ l_min_m

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

◆ lin_density

MODEL_CONSTANT FloatType Models::SimpleModel::lin_density = c_linear_density(static_cast<FloatType>(1000), d_m)

◆ n_c

MODEL_CONSTANT std::size_t Models::SimpleModel::n_c = 1

◆ n_var

MODEL_CONSTANT std::size_t Models::SimpleModel::n_var = INDEX_FROM_ENUM(particle_var::__COUNT__)

◆ name

MODEL_CONSTANT std::string_view Models::SimpleModel::name = "simple"

◆ phi_s_max

MODEL_CONSTANT FloatType Models::SimpleModel::phi_s_max = _get_phi_s_max<FloatType>(lin_density, l_dot_max)

◆ t_div_dist

MODEL_CONSTANT auto Models::SimpleModel::t_div_dist
Initial value:
500. / 2.,
10.,
1200.)

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