28 namespace CellChemistry {
31 using boost::property_tree::ptree;
42 const auto& p = m_cd.m_parameters->get_child(
"wortel");
46 m_aux_breakdown = p.get<
double>(
"aux_breakdown");
47 m_aux_production = p.get<
double>(
"aux_production");
48 m_aux_shy2_breakdown = p.get<
double>(
"aux_shy2_breakdown");
49 m_aux_sink = p.get<
double>(
"aux_sink");
50 m_aux_source = p.get<
double>(
"aux_source");
51 m_ck_breakdown = p.get<
double>(
"ck_breakdown");
52 m_ck_shy2_production = p.get<
double>(
"ck_shy2_production");
53 m_ck_sink = p.get<
double>(
"ck_sink");
54 m_ck_source = p.get<
double>(
"ck_source");
55 m_ga_breakdown = p.get<
double>(
"ga_breakdown");
56 m_ga_production = p.get<
double>(
"ga_production");
57 m_km_aux_ck = p.get<
double>(
"km_aux_ck");
58 m_km_aux_shy2 = p.get<
double>(
"km_aux_shy2");
59 m_shy2_breakdown = p.get<
double>(
"shy2_breakdown");
60 m_shy2_production = p.get<
double>(
"shy2_production");
61 m_vm_aux_ck = p.get<
double>(
"vm_aux_ck");
73 dchem[0] = m_aux_source + (cell->
GetArea()) * m_aux_production - m_aux_breakdown * (cell->GetChemical(0)) ;
74 dchem[1] = m_ck_source + ( m_vm_aux_ck * (cell->
GetArea()) * m_km_aux_ck / ( m_km_aux_ck + (cell->GetChemical(0) / (cell->
GetArea())) ) ) - m_ck_breakdown * (cell->GetChemical(1)) ;
78 dchem[0] = -m_aux_sink + (cell->
GetArea()) * m_aux_production - m_aux_breakdown * (cell->GetChemical(0)) ;
79 dchem[1] = -m_ck_sink + ( m_vm_aux_ck * (cell->
GetArea()) * m_km_aux_ck / ( m_km_aux_ck + (cell->GetChemical(0) / (cell->
GetArea())) ) ) - m_ck_breakdown * (cell->GetChemical(1)) ;
83 dchem[0] = (cell->
GetArea()) * m_aux_production - m_aux_breakdown * (cell->GetChemical(0)) ;
84 dchem[1] = ( m_vm_aux_ck * (cell->
GetArea()) * m_km_aux_ck / ( m_km_aux_ck + (cell->GetChemical(0) / (cell->
GetArea())) ) ) - m_ck_breakdown * (cell->GetChemical(1)) ;
89 if( ( cell->GetChemical(1) / (cell->
GetArea()) ) > m_ck_shy2_production )
91 dchem[2] = m_shy2_production * (cell->
GetArea()) - (cell->GetChemical(2)) * ( m_shy2_breakdown + m_aux_shy2_breakdown * ( (cell->GetChemical(0) / cell->
GetArea()) / ( m_km_aux_shy2 + cell->GetChemical(0) / cell->
GetArea()) ) );
95 dchem[2] = - m_shy2_breakdown * (cell->GetChemical(2));
99 if( cell->GetCellType() > 2 && cell->GetCellType() < 8 )
101 dchem[3] = m_ga_production - m_ga_breakdown * cell->GetChemical(3);
105 dchem[3] = 2 * m_ga_production - m_ga_breakdown * cell->GetChemical(3);
Core data with mesh, parameters, random engine and time data.
A cell contains walls and nodes.
void operator()(Cell *cell, double *dchem)
Execute.
void Initialize(const CoreData &cd)
Initialize or re-initialize.
CellChemistry for Wortel model.
Namespace for components of the Default model group.
Wortel(const CoreData &cd)
Initializing constructor.
BoundaryType enumeration class.
int GetIndex() const
Return the index.
Interface/Implementation for ReduceCellWalls.
double GetArea() const
Return the area of the cell.