36 #include "Owen11Parameters.hpp" 37 #include "ViscosityCalculator.hpp" 38 #include "UnitCollection.hpp" 40 template<
unsigned DIM>
42 mPlasmaViscosity(
Owen11Parameters::mpPlasmaViscosity->GetValue(
"ViscosityCalculator"))
47 template<
unsigned DIM>
53 template <
unsigned DIM>
60 template<
unsigned DIM>
66 template<
unsigned DIM>
69 std::vector<boost::shared_ptr<VesselSegment<DIM> > > segments = this->
mpNetwork->GetVesselSegments();
70 for (
unsigned segment_index = 0; segment_index < segments.size(); segment_index++)
72 units::quantity<unit::length> radius = segments[segment_index]->GetRadius();
73 units::quantity<unit::dimensionless> haematocrit = segments[segment_index]->GetFlowProperties()->GetHaematocrit();
77 double micron_radius = (radius/unit::metres)*1.e6;
78 double power_term_1 = 1.0 / (1.0 + pow(10.0, -11.0) * pow(2.0 * micron_radius, 12));
80 double c = (0.8 + exp(-0.15 * micron_radius)) * (power_term_1 - 1) + power_term_1;
81 double mu_45 = 6.0 * exp(-0.17 * micron_radius) + 3.2 - 2.44 * exp(-0.06 * pow(2 * micron_radius, 0.645));
83 double power_term_2 = pow((2.0 * micron_radius / (2.0 * micron_radius - 1.1)), 2.0);
85 + (mu_45 - 1.0) * (((pow((1.0 - haematocrit), c)) - 1) / ((pow((1.0 - 0.45), c)) - 1.0)) * power_term_2) * power_term_2;
87 segments[segment_index]->GetFlowProperties()->SetViscosity(
mPlasmaViscosity*mu_rel);
static boost::shared_ptr< ViscosityCalculator< DIM > > Create()
units::quantity< unit::dynamic_viscosity > mPlasmaViscosity
void SetPlasmaViscosity(units::quantity< unit::dynamic_viscosity > viscosity)
boost::shared_ptr< VesselNetwork< DIM > > mpNetwork