26 using boost::property_tree::ptree;
29 namespace CellChemistry {
39 const auto& p = m_cd.m_parameters->get_child(
"auxin_transport");
41 m_aux_breakdown = p.get<
double>(
"aux_breakdown");
42 m_k1 = p.get<
double>(
"k1");
43 m_k2 = p.get<
double>(
"k2");
44 m_km = p.get<
double>(
"km");
45 m_kr = p.get<
double>(
"kr");
46 m_r = p.get<
double>(
"r");
49 void PINFlux2::operator()(
Cell* cell,
double* dchem)
52 dchem[1] = -SumFluxFromWalls( cell );
54 dchem[0] = -m_aux_breakdown * cell->GetChemical(0);
57 double PINFlux2::SumFluxFromWalls(
Cell* cell)
59 using std::placeholders::_1;
60 using std::placeholders::_2;
61 using std::placeholders::_3;
63 function<double(Cell*, Cell*, Wall*)> f = bind(&PINFlux2::Flux,
this, _1, _2, _3);
64 double const sum = ReduceCellWalls<double>(cell, f);
68 double PINFlux2::Flux(
Cell* this_cell,
Cell* adjacent_cell,
Wall* w)
79 double const adj_auxin = adjacent_cell->GetChemical(0);
80 double const receptor = adj_auxin * m_r / (m_kr + adj_auxin);
84 if (w->GetC1() == this_cell) {
85 pin_atwall = w->GetTransporters1(1);
87 pin_atwall = w->GetTransporters2(1);
91 double const chem = this_cell->GetChemical(1);
92 double const pin_flux = m_k1 * chem * receptor / (m_km + chem) - m_k2 * pin_atwall;
Core data with mesh, parameters, random engine and time data.
A cell contains walls and nodes.
Namespace for components of the Default model group.
CellChemistry::PINFlux2 header file.
Interface/Implementation for ReduceCellWalls.
A cell wall, runs between cell corner points and consists of wall elements.