BioCMAMC-ST
Models::Monod Struct Reference

Simplified Monod model for glucose consumption and biomass growth. More...

#include <monod.hpp>

Public Types

enum class  particle_var : int {
  l = 0 , l_max , mu_p , mue ,
  _init_only_cell_lenghtening , phi_s_c , __COUNT__
}
 Enumeration for the Monod model variables. More...
using uniform_weight = std::true_type
using Self = Monod
using FloatType = float
using SelfParticle = MC::ParticlesModel<Self::n_var, Self::FloatType>
using Config = std::nullopt_t

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 double mass (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 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 MC::ContribIndexBounds get_bounds ()
static std::vector< std::string_view > names ()
static std::vector< std::size_t > get_number ()

Public Attributes

MODEL_CONSTANT FloatType y_s_x = 2
 Model constants used in biomass growth and cell elongation.
MODEL_CONSTANT FloatType mu_max = 0.77 / 3600.
 Maximum specific growth rate (1/s), converted from per hour.
MODEL_CONSTANT FloatType tau_meta = 1. / mu_max
 Metabolic time constant (s), inverse of max growth rate.
MODEL_CONSTANT FloatType l_max_m = 2e-6
 Maximum cell length (m)
MODEL_CONSTANT FloatType l_min_m = l_max_m / 2.
 Minimum cell length (m), half of maximum length.
MODEL_CONSTANT FloatType k_s = 1e-3
 Monod constant for substrate concentration (m)
MODEL_CONSTANT FloatType d_m = 0.6e-6
 Cell diameter (m)
MODEL_CONSTANT FloatType lin_density
 Linear density of the biomass (kg/m), calculated from cell diameter.
MODEL_CONSTANT auto initial_length_dist

Static Public Attributes

static constexpr std::size_t n_var = INDEX_FROM_ENUM(particle_var::__COUNT__)
static constexpr std::string_view name = "monod"

Detailed Description

Simplified Monod model for glucose consumption and biomass growth.

This model links glucose consumption and biomass growth using the Monod equation. It models biomass growth through cell elongation for rod-shaped strains, and cell division is assumed to be deterministic. The primary purpose of this model is for validation and to demonstrate how the framework operates without requiring the typical formation. Instead, it focuses on the core dynamics of glucose consumption and biomass growth through the Monod law.

Member Typedef Documentation

◆ Config

using Models::Monod::Config = std::nullopt_t

◆ FloatType

using Models::Monod::FloatType = float

◆ Self

◆ SelfParticle

◆ uniform_weight

using Models::Monod::uniform_weight = std::true_type

Member Enumeration Documentation

◆ particle_var

enum class Models::Monod::particle_var : int
strong

Enumeration for the Monod model variables.

This enum represents the different variables used in the Monod model. These variables do not strictly correspond to the state vector (xi), as some are auxiliary variables (e.g., phi_s_c) not part of the primary state. The Monod factor is used to convert the growth rate into elongation rates.

Enumerator

Length of the cell.

l_max 

Maximum cell length (assumed constant for all cells)

mu_p 

Maximum specific growth rate (potential growth rate)

mue 

Effective growth rate (used for export purposes only)

_init_only_cell_lenghtening 

Factor for converting growth rate into elongation rate

phi_s_c 

Instantaneous glucose consumption rate.

__COUNT__ 

Helper for determining the size of the variable list.

Member Function Documentation

◆ division()

KOKKOS_INLINE_FUNCTION void Models::Monod::division ( const MC::pool_type & random_pool,
std::size_t idx,
std::size_t idx2,
const SelfParticle & arr,
const SelfParticle & buffer_arr )
inlinestatic
Note
Important to note that new_current_length is not l_max/2 but l/2 This is completly different but as growth is slow and time step has to be small it's ok

◆ get_bounds()

MC::ContribIndexBounds Models::Monod::get_bounds ( )
inlinestatic

◆ get_number()

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

◆ init()

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

◆ mass()

KOKKOS_INLINE_FUNCTION double Models::Monod::mass ( std::size_t idx,
const SelfParticle & arr )
inlinestatic
Here is the caller graph for this function:

◆ names()

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

◆ update()

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

Member Data Documentation

◆ d_m

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

Cell diameter (m)

◆ initial_length_dist

MODEL_CONSTANT auto Models::Monod::initial_length_dist
Initial value:
l_max_m * 0.75, l_max_m * 0.75 / 4, l_min_m, l_max_m)
Represents a TruncatedNormal (Gaussian) probability distribution.
Definition prng_extension.hpp:362
MODEL_CONSTANT FloatType l_min_m
Minimum cell length (m), half of maximum length.
Definition monod.hpp:69
MODEL_CONSTANT FloatType l_max_m
Maximum cell length (m)
Definition monod.hpp:68

◆ k_s

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

Monod constant for substrate concentration (m)

◆ l_max_m

MODEL_CONSTANT FloatType Models::Monod::l_max_m = 2e-6

Maximum cell length (m)

◆ l_min_m

MODEL_CONSTANT FloatType Models::Monod::l_min_m = l_max_m / 2.

Minimum cell length (m), half of maximum length.

◆ lin_density

MODEL_CONSTANT FloatType Models::Monod::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:49
MODEL_CONSTANT FloatType d_m
Cell diameter (m)
Definition monod.hpp:71
float FloatType
Definition monod.hpp:54

Linear density of the biomass (kg/m), calculated from cell diameter.

◆ mu_max

MODEL_CONSTANT FloatType Models::Monod::mu_max = 0.77 / 3600.

Maximum specific growth rate (1/s), converted from per hour.

◆ n_var

std::size_t Models::Monod::n_var = INDEX_FROM_ENUM(particle_var::__COUNT__)
staticconstexpr

◆ name

std::string_view Models::Monod::name = "monod"
staticconstexpr

◆ tau_meta

MODEL_CONSTANT FloatType Models::Monod::tau_meta = 1. / mu_max

Metabolic time constant (s), inverse of max growth rate.

◆ y_s_x

MODEL_CONSTANT FloatType Models::Monod::y_s_x = 2

Model constants used in biomass growth and cell elongation.

These constants define various parameters for the model, including maximum growth rates, cell size, and other metabolic factors. The units are specified in meters (m) unless otherwise indicated. Specific yield of biomass per unit substrate (m)


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