import numpy as np from bridges.Blennerhassett import BlennerhassettBridge from plotting.plots import make_plots, crop_plots from plotting.tables import dc_overview_table, small_cost_overview_table params = (np.radians(25),) bridge_13_n = BlennerhassettBridge(arch_optimisation=True, curve_fitting='Spline') bridge_13 = BlennerhassettBridge(hanger_arrangement='Radial', hanger_params=params, arch_shape='Circular', arch_optimisation=True, curve_fitting='Spline') bridge_20 = BlennerhassettBridge(n_hangers=20, hanger_arrangement='Radial', hanger_params=params, arch_shape='Circular', arch_optimisation=True, curve_fitting='Spline') bridge_26 = BlennerhassettBridge(n_hangers=26, hanger_arrangement='Radial', hanger_params=params, arch_shape='Circular', arch_optimisation=True, curve_fitting='Spline') fig = bridge_26.plot_elements()[0] fig.savefig('structure_26_radial.png') bridges_dict = {'13 Parallel hangers': bridge_13_n, '13 Radial hangers': bridge_13, '20 Radial hangers': bridge_20, '26 Radial hangers': bridge_26} load_groups = {'permanent': 'Permanent'} make_plots(bridges_dict, load_groups, marker='') # crop_plots('permanent', (3, 1), [3, 4, 2], (2, 2), (1000, 500)) # crop_plots('live loading', (3, 1), [3, 4, 2], (2, 2), (1000, 500)) # crop_plots('dead load', (3, 1), [3, 4, 2], (2, 2), (1000, 500)) small_cost_overview_table('cost_comparison', bridges_dict) dc_overview_table('dc_comparison', bridges_dict)
import numpy as np from matplotlib import pyplot from matplotlib.markers import MarkerStyle from bridges.Blennerhassett import BlennerhassettBridge from plotting.save import save_plot hanger_params = (np.radians(63), ) bridge_parallel = BlennerhassettBridge(hanger_params=hanger_params) fig, ax = bridge_parallel.plot_elements() span = 267.8 + 50 rise = 53.5 + 17 n = 100 x_arch = list(np.linspace(0, span, 2 * n + 1)) x_arch = x_arch[9:-9] y_arch = [rise * (1 - ((x - span / 2) / (span / 2))**2) for x in x_arch] x_arch = [x - 25 for x in x_arch] ax.plot(x_arch, y_arch, color='black', linewidth=1) ax.plot([0, 267.8], [-20, -20], color='black', linewidth=1) cs_tie_x = [ 0, 6.2, 34.8, 92.13, 267.8 - 92.13, 267.8 - 34.8, 267.8 - 6.2, 267.8 ] cs_tie_y = [-20] * 8 ax.plot(cs_tie_x, cs_tie_y, "|", color='black') cs_arch_x = [0 - 11, 3.8 - 8, 28.8 - 5, 83.91] cs_arch_x += [267.8 - x for x in cs_arch_x[::-1]] rotations = [40, 37, 30, 20]
import numpy as np from bridges.Blennerhassett import BlennerhassettBridge hanger_params = np.array( [102, 70, 107, 65, 91, 43, 128, 67, 99, 46, 60, 96, 47]) hanger_params = np.array( [113, 65, 123, 65, 123, 28, 105, 100, 93, 94, 80, 84, 47]) hanger_params = np.array( [96, 99, 52, 101, 117, 58, 46, 81, 122, 42, 91, 64, 40]) bridge = BlennerhassettBridge(hanger_arrangement='Unpatterned', hanger_params=hanger_params, self_stress_state='Zero-displacement', curve_fitting='Polynomial') fig, ax = bridge.plot_elements() fig.savefig('optimised design_3.png') bridge.dc_ratio_table()
from matplotlib import pyplot from bridges.Blennerhassett import BlennerhassettBridge from plotting.adjustments import adjust_overview_plots from plotting.plots import make_plots bridge_optimized = BlennerhassettBridge() bridge_optimized.plot_elements() # bridge_optimized.internal_forces_table(all_uls=True) # bridge_optimized.dc_ratio_table() # bridge_optimized.cost_table() fig = bridge_optimized.plot_all_effects('LL', label='New', c='blue') adjust_overview_plots(fig) # fig = bridge_optimized.plot_all_effects('Cable_Replacement', label='New', c='blue') # fig = bridge_optimized.plot_all_effects('Cable_Replacement_1', fig=fig, label='Old', c='red') # adjust_overview_plots(fig) # # fig, axs = pyplot.subplots(2, 2, figsize=(8, 4), dpi=240) # axs = fig.get_axes() # bridge_optimized.network_arch.tie.plot_effects(axs[0], 'Tie Fracture', 'Web') # bridge_optimized.network_arch.tie.plot_effects(axs[1], 'Tie Fracture', 'Top') # bridge_optimized.network_arch.tie.plot_effects(axs[2], 'Tie Fracture', 'Bottom') # # pyplot.show() # # # bridges_dict = {'Final design': bridge_ref, 'Thrust line arch': bridge_optimized, # 'Continuous arch shape': bridge_continuous}
from bridges.Blennerhassett import BlennerhassettBridge from plotting.plots import make_plots, crop_plots from plotting.tables import dc_overview_table, small_cost_overview_table, big_cost_overview_table curve = '' bridge_65 = BlennerhassettBridge(curve_fitting=curve, hanger_params=(np.radians(65), )) bridge_75_65 = BlennerhassettBridge(curve_fitting=curve, hanger_arrangement='Constant Change', hanger_params=(np.radians(75), np.radians(65))) bridge_85_65 = BlennerhassettBridge(curve_fitting=curve, hanger_arrangement='Constant Change', hanger_params=(np.radians(85), np.radians(65))) fig, ax = bridge_85_65.plot_elements() fig.savefig('arrangement_85_45.png') bridge_95_65 = BlennerhassettBridge(curve_fitting=curve, hanger_arrangement='Constant Change', hanger_params=(np.radians(95), np.radians(65))) bridge_105_65 = BlennerhassettBridge(curve_fitting=curve, hanger_arrangement='Constant Change', hanger_params=(np.radians(105), np.radians(65))) fig, ax = bridge_105_65.plot_elements() fig.savefig('arrangement_105_25.png') bridges_dict = { '105°-25° Arrangement': bridge_105_65,
import numpy as np from matplotlib import pyplot from bridges.Blennerhassett import BlennerhassettBridge from plotting.loads import plot_loads from plotting.save import save_plot from structure_analysis import verify_input from structure_elements.arch.parabolic_arch import ParabolicArch from structure_elements.cross_section import CrossSection hanger_params = (np.radians(63), ) bridge_parallel = BlennerhassettBridge(hanger_params=hanger_params, arch_optimisation=False) fig, ax = bridge_parallel.plot_elements() fig_2, ax_2 = bridge_parallel.plot_elements() fig_3, ax_3 = bridge_parallel.plot_elements() nodes = bridge_parallel.nodes n_tie = len(bridge_parallel.network_arch.tie) arch = ParabolicArch(nodes, 267.8, 53.5, n=30) cs = CrossSection("", 29.8, [1, 1], [1, 1, 1], {}) arch.define_cross_sections(nodes, [267.8 / 2], [cs, cs]) bridge_parallel.network_arch.arch = arch model = bridge_parallel.network_arch.create_model() loads_arch = bridge_parallel.network_arch.arch.self_weight(n_tie) loads_tie = bridge_parallel.network_arch.tie.self_weight() loads_dc = [{
import numpy as np from bridges.Blennerhassett import BlennerhassettBridge from plotting.plots import make_plots, crop_plots from plotting.tables import dc_overview_table, small_cost_overview_table, big_cost_overview_table bridge_parallel_85 = BlennerhassettBridge(hanger_params=(np.radians(85), )) bridge_parallel_75 = BlennerhassettBridge(hanger_params=(np.radians(75), )) bridge_parallel_65 = BlennerhassettBridge(hanger_params=(np.radians(65), )) fig, ax = bridge_parallel_65.plot_elements() fig.savefig('arrangement_65.png') bridge_parallel_55 = BlennerhassettBridge(hanger_params=(np.radians(55), )) bridge_parallel_45 = BlennerhassettBridge(hanger_params=(np.radians(45), )) fig, ax = bridge_parallel_45.plot_elements() fig.savefig('arrangement_45.png') bridges_dict = { '85° Arrangement': bridge_parallel_85, '75° Arrangement': bridge_parallel_75, '65° Arrangement': bridge_parallel_65, '55° Arrangement': bridge_parallel_55, '45° Arrangement': bridge_parallel_45 } load_groups = { 'permanent': 'Permanent', 'live loading': 'LL', 'dead load': 'DL', 'cable loss': 'Cable_Loss', 'cable loss 4': 'Cable_Loss_4' }
import numpy as np from bridges.Blennerhassett import BlennerhassettBridge # bridge_parallel = BlennerhassettBridge(hanger_params=(np.radians(65),), # arch_optimisation=False) # fig, ax = bridge_parallel.plot_elements() # fig.savefig('figures/arrangements_parallel.png') # # bridge_constant_change = BlennerhassettBridge(hanger_arrangement='Constant Change', # hanger_params=(np.radians(95), np.radians(65)), # arch_optimisation=False) # fig, ax = bridge_constant_change.plot_elements() # fig.savefig('figures/arrangements_constant_change.png') # # # bridge_radial = BlennerhassettBridge(hanger_arrangement='Radial', # hanger_params=(np.radians(25),), # arch_optimisation=False) # fig, ax = bridge_radial.plot_elements() # fig.savefig('figures/arrangements_radial.png') bridge_vertical = BlennerhassettBridge(hanger_params=(np.radians(89.9), ), arch_optimisation=False, n_hangers=20) fig, ax = bridge_vertical.plot_elements() fig.savefig('figures/arrangements_vertical.png')