Example #1
0
def test_meyerhof_and_hanna_capacity_sand_over_sand_gwl():
    # STRONG SAND OVER WEAK SAND
    length = 1000000.0  # actually a strip in
    width = 4.0
    depth = 1.5
    fd = geofound.create_foundation(length=length, width=width, depth=depth)

    phi_0 = 34.0
    cohesion_0 = 0.0
    unit_dry_weight_0 = 18000
    sl_0 = geofound.create_soil(phi=phi_0, cohesion=cohesion_0, unit_dry_weight=unit_dry_weight_0)
    sl_0.unit_sat_weight = 20000

    phi_1 = 34.0
    cohesion_1 = 0.0
    unit_dry_weight_1 = 18000
    sl_1 = geofound.create_soil(phi=phi_1, cohesion=cohesion_1, unit_dry_weight=unit_dry_weight_1)
    sl_1.unit_sat_weight = 20000
    h0 = 3.0  # m, height of the crust layer

    # Case 1: GWL at surface
    gwl = 0.0
    q_ult_meyerhof = geofound.capacity_meyerhof_1963(sl_0, fd, gwl=gwl)
    geofound.capacity_meyerhof_and_hanna_1978(sl_0, sl_1, h0, fd, gwl=gwl, verbose=0)
    correction = 1.07
    corrected_2layer = fd.q_ult * correction
    assert np.isclose(corrected_2layer, q_ult_meyerhof, rtol=0.01), (corrected_2layer, q_ult_meyerhof / 1000)

    # Case 2: GWL at between foundation depth and surface
    gwl = 0.5
    q_ult_meyerhof = geofound.capacity_meyerhof_1963(sl_0, fd, gwl=gwl)
    geofound.capacity_meyerhof_and_hanna_1978(sl_0, sl_1, h0, fd, gwl=gwl, verbose=0)
    correction = 1.07
    corrected_2layer = fd.q_ult * correction
    assert np.isclose(corrected_2layer, q_ult_meyerhof, rtol=0.01), (corrected_2layer, q_ult_meyerhof / 1000)

    # Case 3: GWL at between foundation depth and foundation depth plus width, and GWL < layer 1 depth
    gwl = 1.8
    q_ult_meyerhof = geofound.capacity_meyerhof_1963(sl_0, fd, gwl=gwl)
    geofound.capacity_meyerhof_and_hanna_1978(sl_0, sl_1, h0, fd, gwl=gwl, verbose=0)
    correction = 1.07
    corrected_2layer = fd.q_ult * correction
    assert np.isclose(corrected_2layer, q_ult_meyerhof, rtol=0.01), (corrected_2layer, q_ult_meyerhof / 1000)

    # Case 4: GWL at between foundation depth and foundation depth plus width, and GWL > layer 1 depth
    gwl = 4.8
    q_ult_meyerhof = geofound.capacity_meyerhof_1963(sl_0, fd, gwl=gwl)
    geofound.capacity_meyerhof_and_hanna_1978(sl_0, sl_1, h0, fd, gwl=gwl, verbose=0)
    correction = 1.03
    corrected_2layer = fd.q_ult * correction
    assert np.isclose(corrected_2layer, q_ult_meyerhof, rtol=0.01), (corrected_2layer, q_ult_meyerhof / 1000)

    # Case 5: GWL beyond foundation depth plus width
    gwl = 20.
    q_ult_meyerhof = geofound.capacity_meyerhof_1963(sl_0, fd, gwl=gwl)
    geofound.capacity_meyerhof_and_hanna_1978(sl_0, sl_1, h0, fd, gwl=gwl, verbose=0)
    correction = 1.07
    corrected_2layer = fd.q_ult * correction
    assert np.isclose(corrected_2layer, q_ult_meyerhof, rtol=0.01), (corrected_2layer, q_ult_meyerhof/1000)
Example #2
0
def test_meyerhof():
    length = 2
    width = 2
    depth = 2
    phi = 15
    cohesion = 20.0  # kPa
    unit_dry_weight = 17  # kN/m3
    sl = geofound.create_soil(phi, cohesion, unit_dry_weight)
    fd = geofound.create_foundation(length, width, depth)
    geofound.capacity_meyerhof_1963(sl, fd, gwl=1000, verbose=0)
    print(fd.ng_factor)
    assert np.isclose(fd.nc_factor, 10.97, rtol=0.001)
    assert np.isclose(fd.nq_factor, 3.94, rtol=0.01)
    assert np.isclose(fd.ng_factor, 1.13, rtol=0.01)
    assert np.isclose(fd.q_ult, 573.3, rtol=0.001)
Example #3
0
def test_capacity_sp_meyerhof_and_hanna_1978():
    length = 1000000.0  # actually a strip in
    width = 16.0
    depth = 0.0
    fd = geofound.create_foundation(length=length, width=width, depth=depth)

    phi_0 = 0.0
    cohesion_0 = 50000
    unit_dry_weight_0 = 18000
    sl_0 = geofound.create_soil(phi=phi_0, cohesion=cohesion_0, unit_dry_weight=unit_dry_weight_0)
    sl_0.unit_sat_weight = 20000

    phi_1 = 25
    cohesion_1 = 0.0
    unit_dry_weight_1 = 18000
    sl_1 = geofound.create_soil(phi=phi_1, cohesion=cohesion_1, unit_dry_weight=unit_dry_weight_1)
    sl_1.unit_sat_weight = 20000
    h0 = 2.0  # m, height of the crust layer
    # c_a = 0.0
    # k=1.7

    # Case 1: GWL at surface
    gwl = 100.0
    sp = models.SoilProfile()
    sp.add_layer(0, sl_0)
    sp.add_layer(h0, sl_1)
    sp.gwl = gwl
    q_ult_meyerhof = geofound.capacity_meyerhof_1963(sl_0, fd, gwl=gwl)
    # q_ult_meyerhof_and_hanna = geofound.capacity_meyerhof_and_hanna_1978(sl_0, sl_1, h0, fd, gwl=gwl, verbose=0)
    geofound.capacity_sp_meyerhof_and_hanna_1978(sp, fd, verbose=0)
    correction_lower_layer = 1.1  # unconfirmed value, test added for v0.4.6
    expected = q_ult_meyerhof * correction_lower_layer
    assert np.isclose(expected, fd.q_ult, rtol=0.01), (expected / 1000, fd.q_ult / 1000)
Example #4
0
def test_meyerhof_using_fabrizio_problem1():
    """
    http:

    :return:
    """

    length = 100000
    width = 4.
    depth = 1.5
    phi = 0.0
    cohesion = 90000  # Pa
    unit_dry_weight = 19000.  # N/m3
    unit_sat_weight = 19000.
    sl = geofound.create_soil(phi, cohesion, unit_dry_weight)
    sl.unit_sat_weight = unit_sat_weight
    fd = geofound.create_foundation(length, width, depth)
    geofound.capacity_meyerhof_1963(sl, fd, verbose=0)
    assert np.isclose(fd.q_ult, 526000., rtol=0.001), fd.q_ult
Example #5
0
def test_meyerhof_using_fabrizio_problem2():
    """
    http:

    :return:
    """

    length = 100000
    width = 4.
    depth = 1.5
    phi = 34.0
    cohesion = 0.0  # kPa
    unit_dry_weight = 18.  # kN/m3
    unit_sat_weight = 20.
    sl = geofound.create_soil(phi, cohesion, unit_dry_weight, pw=9.8)

    sl.unit_sat_weight = unit_sat_weight
    fd = geofound.create_foundation(length, width, depth)

    # problem 2) a)

    geofound.capacity_meyerhof_1963(sl, fd, gwl=20.0, verbose=0)
    # # assert np.isclose(fd.nc_factor, 10.97, rtol=0.001)
    assert np.isclose(fd.nq_factor, 29.4, rtol=0.01)
    assert np.isclose(fd.ng_factor, 31.1, rtol=0.01)
    assert np.isclose(fd.q_ult, 2056, rtol=0.01)

    # problem 2) b)
    geofound.capacity_meyerhof_1963(sl, fd, gwl=1.5, verbose=0)
    # assert np.isclose(fd.nc_factor, 10.97, rtol=0.001)
    assert np.isclose(fd.nq_factor, 29.4, rtol=0.01)
    assert np.isclose(fd.ng_factor, 31.1, rtol=0.01)
    assert np.isclose(fd.q_ult, 1521, rtol=0.01), fd.q_ult

    # problem 2) c)
    geofound.capacity_meyerhof_1963(sl, fd, gwl=0.5, verbose=0)
    # assert np.isclose(fd.nc_factor, 10.97, rtol=0.001)
    assert np.isclose(fd.nq_factor, 29.4, rtol=0.01)
    assert np.isclose(fd.ng_factor, 31.1, rtol=0.01)
    assert np.isclose(fd.q_ult, 1252, rtol=0.03), fd.q_ult