27 namespace CellHousekeep {
40 auto& p = m_cd.m_parameters;
42 m_cell_base_area = p->get<
double>(
"cell_mechanics.base_area");
43 m_cell_expansion_rate = p->get<
double>(
"cell_mechanics.cell_expansion_rate");
44 m_division_ratio = p->get<
double>(
"cell_mechanics.division_ratio");
45 m_elastic_modulus = p->get<
double>(
"cell_mechanics.elastic_modulus");
46 m_response_time = p->get<
double>(
"cell_mechanics.response_time");
47 m_time_step = p->get<
double>(
"model.time_step");
48 m_viscosity_const = p->get<
double>(
"cell_mechanics.viscosity_const");
50 m_area_incr = m_cell_expansion_rate * m_time_step;
51 m_div_area = m_division_ratio * m_cell_base_area;
56 const string ham_select = m_cd.m_parameters->get<
string>(
"model.mc_hamiltonian");
58 const double chem = cell->GetChemical(0);
59 const double t_area = cell->GetTargetArea();
60 const double t_length = cell->GetTargetLength();
62 const double update_t_area = t_area + chem / (1. + chem) * m_area_incr;
63 const double update_t_length = t_length * sqrt(update_t_area / t_area);
65 cell->SetTargetArea(update_t_area);
66 cell->SetTargetLength(update_t_length);
68 if (ham_select ==
"ElasticWall") {
71 for (list<Wall*>::iterator i = cell->
GetWalls().begin(); i != cell->
GetWalls().end(); ++i) {
73 if (w->
GetLength() > 1.50 * w->GetRestLength()) {
80 if (ham_select ==
"Maxwell") {
82 const double solute = m_viscosity_const * sqrt(cell->
GetArea());
83 const double update_solute = solute - (solute - cell->GetSolute()) * exp(-0.1 * m_time_step/m_response_time);
84 cell->SetSolute(update_solute);
86 for (list<Wall*>::iterator i = cell->
GetWalls().begin(); i != cell->
GetWalls().end(); ++i) {
89 const double update_rest_length = w->
GetLength()
91 * exp(-0.01 * m_elastic_modulus * m_time_step / m_viscosity_const);
92 w->SetRestLength(update_rest_length);
Core data with mesh, parameters, random engine and time data.
A cell contains walls and nodes.
void Initialize(const CoreData &cd)
Initialize or re-initialize.
Auxin(const CoreData &cd)
Initializing constructor.
void operator()(Cell *cell)
Execute.
const std::list< Wall * > & GetWalls() const
Access the cell's walls.
CellHousekeep::Auxin header file.
Namespace for components of the Default model group.
double GetLength() const
Returns (and calculates, if length marked as dirty) the length along all nodes.
double GetArea() const
Return the area of the cell.
A cell wall, runs between cell corner points and consists of wall elements.