36 #include "Owen11Parameters.hpp" 37 #include "MetabolicStimulusCalculator.hpp" 39 template<
unsigned DIM>
41 mQRef(
Owen11Parameters::mpReferenceFlowRateForMetabolicStimulus->GetValue(
"MetabolicStimulusCalculator")),
42 mKm(
Owen11Parameters::mpBasalMetabolicStimulus->GetValue(
"MetabolicStimulusCalculator")),
43 mMaxStimulus(1.e12 *
unit::per_second)
48 template<
unsigned DIM>
54 template <
unsigned DIM>
62 template<
unsigned DIM>
68 template<
unsigned DIM>
74 template<
unsigned DIM>
80 template<
unsigned DIM>
83 mQRef = units::fabs(qRef);
86 template<
unsigned DIM>
89 mKm = units::fabs(km);
92 template<
unsigned DIM>
98 template<
unsigned DIM>
101 std::vector<boost::shared_ptr<VesselSegment<DIM> > > segments = this->
mpNetwork->GetVesselSegments();
102 for (
unsigned idx = 0; idx < segments.size(); idx++)
104 units::quantity<unit::rate> metabolic_stimulus;
105 units::quantity<unit::dimensionless> haematocrit = segments[idx]->GetFlowProperties()->GetHaematocrit();
106 units::quantity<unit::flow_rate> flow_rate = units::fabs(segments[idx]->GetFlowProperties()->GetFlowRate());
108 if (flow_rate > 0.0 * unit::metre_cubed_per_second)
110 if (haematocrit > 0.0)
112 metabolic_stimulus =
mKm * log10(
mQRef / (flow_rate * haematocrit) + 1.0);
116 metabolic_stimulus =
mKm;
121 metabolic_stimulus = 0.0 * unit::per_second;
123 segments[idx]->GetFlowProperties()->SetGrowthStimulus(segments[idx]->GetFlowProperties()->GetGrowthStimulus() + metabolic_stimulus);
boost::shared_ptr< VesselNetwork< DIM > > mpNetwork