bridge_polynomial = BlennerhassettBridge(curve_fitting='Polynomial-n', n_hangers=n, n_floor_beams=n, cable_loss=cable_loss) bridge_spline = BlennerhassettBridge(curve_fitting='Spline-n', n_hangers=n, n_floor_beams=n, cable_loss=cable_loss) bridge_continuous = BlennerhassettBridge(arch_shape='Continuous optimisation', arch_optimisation=False, n_hangers=n, n_floor_beams=n, cable_loss=cable_loss) bridges_dict = {'Thrust line arch': bridge_thrust} load_groups = {'strength-I_'+str(n): 'Strength-I'} arch_or_tie_plots(bridges_dict, load_groups, lw=0.8) bridges_dict = {'Thrust line arch': bridge_thrust, 'Polynomial approximation': bridge_polynomial, 'Spline approximation': bridge_spline, 'Continuous approximation': bridge_continuous} load_groups = {'permanent state_'+str(n): 'Permanent'} arch_or_tie_plots(bridges_dict, load_groups, lw=0.8) bridge_thrust.dc_ratio_table(name='dc_table_'+str(n)) dc_overview_table('dc_comparison_'+str(n), bridges_dict, slice_cs=slice(0, 3)) span = 267.8 rise = 53.5 radius = (rise ** 2 + (span / 2) ** 2) / (2 * rise) fig, axs = pyplot.subplots(1, 2, figsize=(8, 2), dpi=240) for i, key in enumerate(bridges_dict): bridge = bridges_dict[key] nodes = bridge.network_arch.arch.nodes x = np.array([node.x for node in nodes]) y = np.array([node.y for node in nodes]) y_ref = [rise * (1 - ((x_i - span / 2) / (span / 2)) ** 2) for x_i in x] axs[0].plot(x, y-y_ref, label=key, c=colors[i], lw=0.7) y = np.array([rise - radius * (1 - (1 - ((x_i - span / 2) / radius) ** 2) ** 0.5) for x_i in x])
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()
axs = fig.get_axes() hanger_forces = [0.4981984, 0.7517458, 0.7695386, 0.7295048, 0.6850228, 0.644989, 0.5827142, 0.5515768, 0.5070948, 0.467061, 0.4136826, 0.3603042, 0.3514078] hanger_forces = [hanger_force / 4.19 for hanger_force in hanger_forces] hanger_x = [267.8*(i+1)/14 for i in range(13)] axs[0].plot([0, 270], [0.744, 0.744], label='Design drawings', c=colors[1], lw=1) axs[1].plot([0, 270], [4.73, 4.73], label='Design drawings', c=colors[1], lw=1) axs[2].plot(hanger_x, hanger_forces, label='Design drawings', c=colors[1], marker='x') adjust_effects_plots(fig) fig.savefig('live load.png') # Create table of internal forces and demand/capacity ratios bridge_ref.internal_forces_table() bridge_ref.internal_forces_table(name='design forces 2', all_uls=True) bridge_ref.dc_ratio_table() bridge_ref.cost_table() fig = bridge_ref.plot_effects('Cable_Loss', 'Moment', label='Cable loss ranges', c=colors[0]) fig = bridge_ref.plot_effects('Cable_Loss_4', 'Moment', fig=fig, label='4. cable loss', c=colors[1]) adjust_effects_plots(fig) fig = bridge_ref.plot_effects('Strength-I', 'Moment', label='Fatigue', c=colors[0]) fig = bridge_ref.plot_effects('Fatigue', 'Moment', fig=fig, label='Fatigue', c=colors[0]) adjust_effects_plots(fig) fig.savefig('hanger forces.png') # Save the demand over capacity ratios of the reference case dc = [] for cs in bridge_ref.cost_cross_sections: