예제 #1
0
    def test_fig6_PTIB_settlement(self):

        qu = 100
        qp = 10
        H = 10
        Hw = 1.0
        kv0 = 1e-9
        mvl = 4e-3
        e00 = 3
        Gs = 2.75
        gamw = 10  #N
        drn = 0
        nterms = 100

        obj = XieAndLeo2004(qu=qu,
                            qp=qp,
                            H=H,
                            Hw=Hw,
                            kv0=kv0,
                            mvl=mvl,
                            e00=e00,
                            Gs=Gs,
                            gamw=gamw,
                            drn=drn,
                            nterms=nterms)

        t = np.array([
            4.00000000e+06, 9.30767268e+06, 2.16581927e+07, 5.03968420e+07,
            1.17269327e+08, 2.72876128e+08, 6.34960421e+08, 1.47750094e+09,
            3.43802378e+09, 8.00000000e+09
        ])

        settle = np.array([[
            0.23527598, 0.35889561, 0.54746796, 0.83512073, 1.27388766,
            1.93317306, 2.73900674, 3.22703668, 3.29624648, 3.29679953
        ]])

        assert_allclose(obj.settlement_PTPB(np.array([0.0]), t), settle)
예제 #2
0
    def test_fig6_PTPB_Us(self):

        qu = 100
        qp = 10
        H = 10
        Hw = 1.0
        kv0 = 1e-9
        mvl = 4e-3
        e00 = 3
        Gs = 2.75
        gamw = 10  #N
        drn = 0
        nterms = 100

        obj = XieAndLeo2004(qu=qu,
                            qp=qp,
                            H=H,
                            Hw=Hw,
                            kv0=kv0,
                            mvl=mvl,
                            e00=e00,
                            Gs=Gs,
                            gamw=gamw,
                            drn=drn,
                            nterms=nterms)

        t = np.array([
            4.00000000e+06, 9.30767268e+06, 2.16581927e+07, 5.03968420e+07,
            1.17269327e+08, 2.72876128e+08, 6.34960421e+08, 1.47750094e+09,
            3.43802378e+09, 8.00000000e+09
        ])

        Us = np.array([
            0.07136496, 0.10886182, 0.16606043, 0.25331256, 0.38640131,
            0.58637871, 0.83080779, 0.97883922, 0.99983224, 1.
        ])

        assert_allclose(obj.Us_PTPB(t), Us)
예제 #3
0
    def test_fig6_PTIB_Up(self):

        qu = 100
        qp = 10
        H = 10
        Hw = 1.0
        kv0 = 1e-9
        mvl = 4e-3
        e00 = 3
        Gs = 2.75
        gamw = 10  #N
        drn = 0
        nterms = 100

        obj = XieAndLeo2004(qu=qu,
                            qp=qp,
                            H=H,
                            Hw=Hw,
                            kv0=kv0,
                            mvl=mvl,
                            e00=e00,
                            Gs=Gs,
                            gamw=gamw,
                            drn=drn,
                            nterms=nterms)

        t = np.array([
            4.00000000e+06, 9.30767268e+06, 2.16581927e+07, 5.03968420e+07,
            1.17269327e+08, 2.72876128e+08, 6.34960421e+08, 1.47750094e+09,
            3.43802378e+09, 8.00000000e+09
        ])

        Up = np.array([
            0.06561541, 0.10009131, 0.15268168, 0.2329045, 0.35547031,
            0.54565008, 0.80191869, 0.97414702, 0.99979374, 1.
        ])

        assert_allclose(obj.Up_PTPB(t), Up)
예제 #4
0
    def test_fig6_PTIB_settlement(self):

        qu = 100
        qp = 10
        H = 10
        Hw = 1.0
        kv0 = 1e-9
        mvl = 4e-3
        e00 = 3
        Gs = 2.75
        gamw = 10  #N
        drn = 1
        nterms = 100

        obj = XieAndLeo2004(qu=qu,
                            qp=qp,
                            H=H,
                            Hw=Hw,
                            kv0=kv0,
                            mvl=mvl,
                            e00=e00,
                            Gs=Gs,
                            gamw=gamw,
                            drn=drn,
                            nterms=nterms)

        t = np.array([
            4.00000000e+06, 9.30767268e+06, 2.16581927e+07, 5.03968420e+07,
            1.17269327e+08, 2.72876128e+08, 6.34960421e+08, 1.47750094e+09,
            3.43802378e+09, 8.00000000e+09
        ])

        settle = np.array([[
            0.11763799, 0.17944781, 0.27373398, 0.41756036, 0.63695657,
            0.97162877, 1.48178939, 2.22256023, 2.97627998, 3.27758078
        ]])

        assert_allclose(obj.settlement_PTIB(np.array([0.0]), t), settle)
예제 #5
0
    def test_fig6_PTIB_Up(self):

        qu = 100
        qp = 10
        H = 10
        Hw = 1.0
        kv0 = 1e-9
        mvl = 4e-3
        e00 = 3
        Gs = 2.75
        gamw = 10  #N
        drn = 1
        nterms = 100

        obj = XieAndLeo2004(qu=qu,
                            qp=qp,
                            H=H,
                            Hw=Hw,
                            kv0=kv0,
                            mvl=mvl,
                            e00=e00,
                            Gs=Gs,
                            gamw=gamw,
                            drn=drn,
                            nterms=nterms)

        t = np.array([
            4.00000000e+06, 9.30767268e+06, 2.16581927e+07, 5.03968420e+07,
            1.17269327e+08, 2.72876128e+08, 6.34960421e+08, 1.47750094e+09,
            3.43802378e+09, 8.00000000e+09
        ])

        Up = np.array([
            0.0328077, 0.05004566, 0.07634084, 0.11645214, 0.17763889,
            0.27097897, 0.4141635, 0.63411239, 0.88384332, 0.99284489
        ])

        assert_allclose(obj.Up_PTIB(t), Up)
예제 #6
0
    def test_fig6_PTIB_Us(self):

        qu = 100
        qp = 10
        H = 10
        Hw = 1.0
        kv0 = 1e-9
        mvl = 4e-3
        e00 = 3
        Gs = 2.75
        gamw = 10  #N
        drn = 1
        nterms = 100

        obj = XieAndLeo2004(qu=qu,
                            qp=qp,
                            H=H,
                            Hw=Hw,
                            kv0=kv0,
                            mvl=mvl,
                            e00=e00,
                            Gs=Gs,
                            gamw=gamw,
                            drn=drn,
                            nterms=nterms)

        t = np.array([
            4.00000000e+06, 9.30767268e+06, 2.16581927e+07, 5.03968420e+07,
            1.17269327e+08, 2.72876128e+08, 6.34960421e+08, 1.47750094e+09,
            3.43802378e+09, 8.00000000e+09
        ])

        Us = np.array([
            0.03568248, 0.05443091, 0.08303022, 0.12665628, 0.19320452,
            0.29471879, 0.44946299, 0.67415692, 0.90277857, 0.99417048
        ])

        assert_allclose(obj.Us_PTIB(t), Us)
예제 #7
0
    def test_figure4_Us_equals_0p5_digitized(self):

        # this one is a bit difficult. I digitized fig 4 from xie and leo for
        # the line Us=0.5.  I then used xie and leo to back calulate the a
        # values corresponding to the digitized point.  then used those a values
        # to check the corresponding pore pressure values.

        qu = 100
        qp = 10
        H = 10
        Hw = 1.0
        kv0 = 1e-9
        mvl = 4e-3
        e00 = 3
        Gs = 2.75
        gamw = 10  #N
        drn = 1
        nterms = 100

        obj = XieAndLeo2004(qu=qu,
                            qp=qp,
                            H=H,
                            Hw=Hw,
                            kv0=kv0,
                            mvl=mvl,
                            e00=e00,
                            Gs=Gs,
                            gamw=gamw,
                            drn=drn,
                            nterms=nterms)

        a = np.array([
            0.02383584, 0.11392357, 0.18570972, 0.27481166, 0.3635012,
            0.45172817, 0.52204832, 0.60948048, 0.69635416, 0.78283411,
            0.86889152, 0.95449232, 1.03972932, 1.12456789, 1.20894234,
            1.29285641, 1.39301393, 1.47614686, 1.57530062, 1.65757701,
            1.73956316, 1.83732833, 1.91850293, 2.01533737, 2.09568643,
            2.19164531, 2.28713899, 2.38216436, 2.47675735, 2.57091444,
            2.66463215, 2.75794547, 2.85079954, 2.94330538, 3.05064294,
            3.1422562, 3.23354725, 3.33944257, 3.4449005, 3.54984556,
            3.63948794, 3.74356528, 3.84724822, 3.9357537, 4.03859903,
            4.15562183, 4.25758871, 4.35912844, 4.46032271, 4.57547209,
            4.67584576, 4.79012932, 4.90392578, 5.00317637, 5.11617632,
            5.22877168, 5.34102057, 5.45280693, 5.56423249, 5.67529646,
            5.78598068, 5.91011626, 6.02009368, 6.12976985, 6.25277697,
            6.37539618, 6.49764812, 6.61952496, 6.74112884, 6.8489472,
            6.96997937, 7.10401376, 7.22435667, 7.3444893, 7.4643678,
            7.59723099, 7.71657677, 7.84896193, 7.96788913, 8.09978589,
            8.23143334, 8.34976394, 8.48109602, 8.61220892, 8.74316219,
            8.86088196, 8.99160287, 9.1221999, 9.25266276, 9.60452413, 9.99508
        ])

        u = np.array([[
            0.436047, 1.74419, 3.05233, 4.21512, 5.52326, 6.8314, 7.99419,
            9.30233, 10.4651, 11.7733, 13.0814, 14.2442, 15.5523, 16.8605,
            18.0233, 19.186, 20.3488, 21.657, 22.8198, 23.9826, 25.2907,
            26.4535, 27.6163, 28.7791, 29.9419, 31.1047, 32.2674, 33.4302,
            34.593, 35.7558, 36.9186, 38.0814, 39.0988, 40.2616, 41.4244,
            42.4419, 43.6047, 44.6221, 45.7849, 46.8023, 47.8198, 48.8372, 50.,
            50.8721, 51.8895, 53.0523, 54.0698, 54.9419, 55.9593, 56.9767,
            57.8488, 58.8663, 59.7384, 60.6105, 61.4826, 62.3547, 63.3721,
            64.0988, 64.9709, 65.843, 66.5698, 67.4419, 68.1686, 68.8953,
            69.6221, 70.3488, 71.0756, 71.657, 72.3837, 72.9651, 73.6919,
            74.2733, 74.7093, 75.2907, 75.8721, 76.3081, 76.7442, 77.3256,
            77.7616, 78.1977, 78.4884, 78.7791, 79.2151, 79.5058, 79.7965,
            79.9419, 80.2326, 80.5233, 80.6686, 80.9593, 81.1047
        ]])

        assert_allclose(obj.u_PTIB(a, np.array([7.87244369e+08])),
                        u.T,
                        atol=0.5)
예제 #8
0
    def test_figure5_Us_equals_0p5_digitized(self):

        # this one is a bit difficult. I digitized fig 5 from xie and leo for
        # the line Us=0.5.  I then used xie and leo to back calulate the a
        # values corresponding to the digitized point.  then used those a values
        # to check the corresponding pore pressure values.

        qu = 100
        qp = 10
        H = 10
        Hw = 1.0
        kv0 = 1e-9
        mvl = 4e-3
        e00 = 3
        Gs = 2.75
        gamw = 10  #N
        drn = 0
        nterms = 100

        obj = XieAndLeo2004(qu=qu,
                            qp=qp,
                            H=H,
                            Hw=Hw,
                            kv0=kv0,
                            mvl=mvl,
                            e00=e00,
                            Gs=Gs,
                            gamw=gamw,
                            drn=drn,
                            nterms=nterms)

        a = np.array([
            0.02289084, 0.08166019, 0.1592776, 0.21712845, 0.27446339,
            0.35034062, 0.4069592, 0.46294925, 0.53722803, 0.61096618,
            0.68392617, 0.73829586, 0.81042068, 0.88178646, 0.95268288,
            1.02315097, 1.09302059, 1.17965214, 1.24844496, 1.31687808,
            1.40163487, 1.46891747, 1.55252576, 1.61904599, 1.70148456,
            1.78334316, 1.86467033, 1.94548742, 2.04176209, 2.12149695,
            2.21645107, 2.31074839, 2.404423, 2.49750554, 2.60541511,
            2.69730391, 2.80389126, 2.90982761, 3.01515179, 3.11990136,
            3.22411273, 3.34259041, 3.46044316, 3.57775453, 3.69456873,
            3.82545626, 3.95579799, 4.08567035, 4.21517543, 4.35866226,
            4.48749166, 4.63039646, 4.75883777, 4.90142733, 5.04396904,
            5.18653616, 5.32919711, 5.45773091, 5.60080211, 5.72981954,
            5.87354154, 6.00331129, 6.13349986, 6.24963259, 6.38083102,
            6.49798246, 6.61566338, 6.73391895, 6.83791618, 6.94243466,
            7.04750993, 7.16829246, 7.25947883, 7.36644948, 7.45874141,
            7.55158307, 7.64500296, 7.73903078, 7.83370941, 7.92904715,
            8.009015, 8.08945757, 8.18673931, 8.2684616, 8.33428654,
            8.41702202, 8.50034747, 8.56751182, 8.65209349, 8.72022258,
            8.80599002, 8.87514782, 8.94487601, 9.01500734, 9.08561288,
            9.15692164, 9.22868735, 9.30092662, 9.37388661, 9.42900301,
            9.50288862, 9.55887868, 9.63397705, 9.69063019, 9.74788885,
            9.82465744
        ])

        u = np.array([[
            1.24575, 3.06473, 5.086, 6.90498, 8.92598, 10.7452, 12.7662,
            14.5852, 16.4045, 18.4257, 20.245, 22.064, 23.8832, 25.9045,
            27.7237, 29.543, 31.3622, 33.1818, 35.001, 36.8203, 38.6398,
            40.459, 42.2785, 44.0978, 45.7153, 47.5348, 49.1523, 50.9718,
            52.5896, 54.2071, 55.8248, 57.4426, 59.0604, 60.6781, 62.2961,
            63.9139, 65.3299, 66.7459, 68.1619, 69.5779, 70.7919, 72.2082,
            73.4225, 74.6367, 75.649, 76.6615, 77.4719, 78.2824, 79.0929,
            79.7016, 80.3101, 80.5148, 80.9212, 80.9239, 81.1286, 80.9292,
            80.7299, 80.3282, 79.9269, 79.3232, 78.7198, 77.9141, 76.9064,
            75.8985, 74.8908, 73.6808, 72.4708, 71.2608, 70.0506, 68.8403,
            67.428, 65.814, 64.4015, 62.7872, 61.3746, 59.7601, 58.1455,
            56.531, 54.9164, 53.0998, 51.485, 49.8702, 48.0536, 46.2367,
            44.6216, 42.8048, 40.988, 39.1708, 37.354, 35.5369, 33.72, 31.9029,
            30.0858, 28.2687, 26.4516, 24.6345, 22.6153, 20.7982, 18.9811,
            17.1637, 15.1446, 13.3272, 11.3081, 9.49068, 7.6733, 5.65416
        ]])

        assert_allclose(obj.u_PTPB(a, np.array([1.96880554e+08])),
                        u.T,
                        atol=0.9)