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
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
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)