31 using boost::property_tree::ptree;
34 namespace CellChemistry {
41 void AuxinGrowth::Initialize(
const CoreData& cd)
44 const auto& p = m_cd.m_parameters->get_child(
"auxin_transport");
46 m_aux_breakdown = p.get<
double>(
"aux_breakdown");
47 m_aux_cons = p.get<
double>(
"aux_cons");
48 m_k1 = p.get<
double>(
"k1");
49 m_k2 = p.get<
double>(
"k2");
50 m_km = p.get<
double>(
"km");
51 m_kr = p.get<
double>(
"kr");
52 m_pin_breakdown = p.get<
double>(
"pin_breakdown");
53 m_pin_production = p.get<
double>(
"pin_production");
54 m_pin_production_in_epidermis = p.get<
double>(
"pin_production_in_epidermis");
55 m_r = p.get<
double>(
"r");
56 m_sam_auxin = p.get<
double>(
"sam_auxin");
57 m_sam_auxin_breakdown = p.get<
double>(
"sam_auxin_breakdown");
60 void AuxinGrowth::operator()(
Cell* cell,
double* dchem)
62 using std::placeholders::_1;
63 using std::placeholders::_2;
64 using std::placeholders::_3;
69 double const chem = cell->GetChemical(0);
73 function<double(Cell*, Cell*, Wall*)> f
74 = bind(&AuxinGrowth::Complex_PijAj,
this, _1, _2, _3);
75 dPidt = -m_k1 * ReduceCellWalls<double>(cell, f) + m_k2 * sum_Pij;
78 dPidt += (cell->HasBoundaryWall() ? m_pin_production_in_epidermis : m_pin_production) * chem
79 - cell->GetChemical(1) * m_pin_breakdown;
82 if (cell->GetBoundaryType() == BoundaryType::SAM) {
84 dchem[0] = -m_sam_auxin_breakdown * chem;
88 dchem[0] = m_aux_cons - m_aux_breakdown * chem;
92 double AuxinGrowth::Complex_PijAj(
Cell* here,
Cell* nb,
Wall* w)
96 (nb->IsBoundaryPolygon() && w->IsAuxinSink()) ? m_sam_auxin : nb->GetChemical(0);
97 double const receptor = nb_aux * m_r / (m_kr + nb_aux);
98 double const chem = here->GetChemical(1);
100 return chem * receptor / (m_km + chem);
Core data with mesh, parameters, random engine and time data.
A cell contains walls and nodes.
Core data used during model execution.
CellChemistry for AuxinGrowth model.
Namespace for components of the Default model group.
Interface for WallAttributes.
BoundaryType enumeration class.
Interface/Implementation for ReduceCellWalls.
Interface for CellAttributes.
double GetSumTransporters(unsigned int ch) const
Sum transporters at this cell's side of the walls.
A cell wall, runs between cell corner points and consists of wall elements.