Commit 41634123 authored by Zolnierczuk, Piotr's avatar Zolnierczuk, Piotr
Browse files

added H2O/D2O viscosity parameterization, transmission noplot

parent 3596356f
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -393,3 +393,36 @@ def tx_model(t, Q, T, components='all'):
    return res.get(components)




# ===============================================================
# H2O and D2O viscosity parameterization
# by Cho et al.  J. Phys. Chem. B 103 (1999), 1991-1994
# ===============================================================
def eta_h2o(T):
    """returns water viscosity in  Pa*s
    T in Kelvin
    """
    A = 802.25336e-3
    a = 3.4741e-3
    b =-1.7413e-5
    c = 2.7719e-8
    gamma = 1.53026
    T0 = 225.334 # K
    dt = T-T0
    return A*(dt+a*dt**2+b*dt**3+c*dt**4)**(-gamma)

def eta_d2o(T):
    """returns heavy water viscosity in  Pa*s
    T in Kelvin
    """
    A = 885.60402e-3
    a = 2.7990e-3
    b =-1.6342e-5
    c = 2.9067e-8
    gamma = 1.55255
    T0 = 231.832 # K
    dt = T-T0
    return A*(dt+a*dt**2+b*dt**3+c*dt**4)**(-gamma)

+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ def main():
                        help="plot in semilogy")
    parser.add_argument('--tmin', '-t', type=int, dest='tmin')
    parser.add_argument('--tmax', '-T', type=int, dest='tmax')
    parser.add_argument('--save', '-s', dest='plotfile')
    parser.add_argument('--version', action='version',
                        version='%(prog)s pysen={version}'.format(version=version()))

+9 −0
Original line number Diff line number Diff line
@@ -59,5 +59,14 @@ class WaterModelTestCase(unittest.TestCase):
        self.assertAlmostEqual(wm.WHR_H(t, self.T)        , 0.0363, 4)
        #self.assertAlmostEqual(wm.WRD_H(t, self.Q, self.T), 1.0   , 4)

    def test_viscosity(self):
        C = 273.15
        self.assertAlmostEqual(wm.eta_h2o( 5.0+C)*1e3, 1.519, 3)
        self.assertAlmostEqual(wm.eta_h2o(20.0+C)*1e3, 1.002, 3)
        self.assertAlmostEqual(wm.eta_h2o(70.0+C)*1e3, 0.404, 3)
        self.assertAlmostEqual(wm.eta_d2o( 5.0+C)*1e3, 1.988, 3)
        self.assertAlmostEqual(wm.eta_d2o(20.0+C)*1e3, 1.251, 3)
        self.assertAlmostEqual(wm.eta_d2o(70.0+C)*1e3, 0.474, 3)

if __name__ == "__main__":
    unittest.main(exit=False, verbosity=2)