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