Example #1
0
def test_meyerhof_and_hanna_capacity_strong_clay_over_weak_sand():
    # STRONG CLAY OVER WEAK SAND
    length = 1000000000.0  # actually a strip in
    width = 1.0
    depth = 0.0
    fd = geofound.create_foundation(length=length, width=width, depth=depth)

    phi_0 = 0.0
    cohesion_0 = 85.0
    unit_dry_weight_0 = 16.5
    sl_0 = geofound.create_soil(phi=phi_0,
                                cohesion=cohesion_0,
                                unit_dry_weight=unit_dry_weight_0)

    phi_1 = 17.0
    cohesion_1 = 0.0
    unit_dry_weight_1 = 17.0
    sl_1 = geofound.create_soil(phi=phi_1,
                                cohesion=cohesion_1,
                                unit_dry_weight=unit_dry_weight_1)
    h0 = 1  # m, height of the crust layer

    geofound.capacity_meyerhof_and_hanna_1978(sl_0, sl_1, h0, fd, verbose=0)
    assert np.isclose(fd.q_ult, 187.87,
                      rtol=0.001), fd.q_ult  # no independent validation
Example #2
0
def test_meyerhof_and_hanna_capacity_strong_sand_over_weak_clay():
    # STRONG SAND OVER WEAK CLAY
    length = 1000000.0  # actually a strip in
    width = 1.0
    depth = 0.0
    fd = geofound.create_foundation(length=length, width=width, depth=depth)

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

    phi_1 = 0.0
    cohesion_1 = 30.0
    unit_dry_weight_1 = 17.0
    sl_1 = geofound.create_soil(phi=phi_1,
                                cohesion=cohesion_1,
                                unit_dry_weight=unit_dry_weight_1)
    h0 = 1.5  # m, height of the crust layer

    geofound.capacity_meyerhof_and_hanna_1978(sl_0, sl_1, h0, fd, verbose=0)

    assert np.isclose(fd.q_ult, 264.74, rtol=0.001), fd.q_ult
Example #3
0
def test_meyerhof_and_hanna_capacity_clay_over_clay_gwl():
    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 = 0.0
    cohesion_0 = 40.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 = 0.0
    cohesion_1 = 40.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.00
    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.0
    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.0
    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.0
    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.0
    corrected_2layer = fd.q_ult * correction
    assert np.isclose(corrected_2layer, q_ult_meyerhof,
                      rtol=0.01), (corrected_2layer, q_ult_meyerhof / 1000)