#ifndef KINEMATICVISCOSITY_HH #define KINEMATICVISCOSITY_HH #include <cmath> // pow #include <string> inline double kerosenekinematicviscosity(const double T) /* * B.S.Massey * Mechanics of fluids * ISBN: 0 412 34280 4 * log-log plot of kinematic viscosity versus temperature is linear for kerosene * L(n) = log10(n) * * T = 0 deg C : nu = 4.0 mm2/s * T = 100 deg C : nu = 0.9 mm2/s * * deg C => K, mm2/s => m2/s * * T1 = 273.15 : nu1 = 4.0e-6 m2/s * T2 = 373.15 : nu2 = 0.9e-6 m2/s * * L(nu) = m L(T) + c * * m = (L(nu2) - L(nu1)) / (L(T2) - L(T1)) * = L(nu2/nu1) / L(T2/T1) * = L(0.9/4.0) / L(373.15/273.15) * = -4.781567507 * * c = L(nu1) - m * L(T1) * = L(4.0e-6) - m * L(273.15) * = 6.251876827 * * nu {m2/s} = 10^(m * L(T {Kelvin}) + c) * * = 10^(m * L(T) + c) * = 10^c * (10^L(T))^m * = 10^c * T^m * * 10^c = 1.78598097e6 * * nu = 1.78598097e6 * T^(-4.781567507) */ { return 1.79e6 * pow(T, -4.78); } inline double kinematicviscosity(const std::string fluid, const double T) { if ("kerosene" == fluid) { return kerosenekinematicviscosity(T); } else { std::cerr << __FILE__ << ": fluid \"" << fluid << "\" unknown" << std::endl; exit(-1); } } #endif // KINEMATICVISCOSITY_HH