Example #1
0
def f(x):
    if str(x) in solution_dictionary:
        cost = solution_dictionary[str(x)]
    else:
        cost = BlennerhassettBridge(hanger_arrangement='Unpatterned',
                                    hanger_params=x,
                                    self_stress_state='Zero-displacement',
                                    curve_fitting='Polynomial',
                                    cable_loss=False).cost
        solution_dictionary[str(x)] = cost
    print(round(cost / 10 ** 6, 3))
    return cost
Example #2
0
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
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 = {
Example #3
0
from matplotlib import pyplot

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.plots import make_plots

bridge_basic = BlennerhassettBridge(arch_optimisation=False)

fig, ax = bridge_basic.plot_effects_on_structure('-1 DL', 'Moment')
pyplot.show()
# fig.savefig('dead_load.png')
Example #4
0
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')
Example #5
0
import numpy as np
from matplotlib import pyplot

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.adjustments import adjust_plot
from plotting.plots import arch_or_tie_plots
from plotting.general import colors

cable_loss = False
arch_shape = 'Continuous optimisation'

bridge_65 = BlennerhassettBridge(arch_optimisation=False,
                                 arch_shape=arch_shape,
                                 cable_loss=cable_loss,
                                 hanger_params=(np.radians(65), ))

bridge_65f = BlennerhassettBridge(arch_optimisation=False,
                                  arch_shape=arch_shape,
                                  cable_loss=cable_loss,
                                  hanger_params=(np.radians(65), ),
                                  curve_fitting='Polynomial')

# bridge_45 = BlennerhassettBridge(arch_optimisation=False, arch_shape=arch_shape, cable_loss=cable_loss,
#                                  hanger_params=(np.radians(45),))

bridge_95_35 = BlennerhassettBridge(arch_optimisation=False,
                                    arch_shape=arch_shape,
                                    cable_loss=cable_loss,
                                    hanger_arrangement='Constant Change',
                                    hanger_params=(np.radians(95),
                                                   np.radians(65)))
Example #6
0
import numpy as np
from matplotlib import pyplot

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.adjustments import adjust_plot
from plotting.plots import arch_or_tie_plots
from plotting.general import colors

cable_loss = False
arch_shape = 'Continuous optimisation'

bridge_85 = BlennerhassettBridge(arch_optimisation=False, arch_shape=arch_shape, cable_loss=cable_loss,
                                 hanger_params=(np.radians(85),))

bridge_65 = BlennerhassettBridge(arch_optimisation=False, arch_shape=arch_shape, cable_loss=cable_loss,
                                 hanger_params=(np.radians(65),))

bridge_45 = BlennerhassettBridge(arch_optimisation=False, arch_shape=arch_shape, cable_loss=cable_loss,
                                 hanger_params=(np.radians(45),))

bridge_85_45 = BlennerhassettBridge(arch_optimisation=False, arch_shape=arch_shape, cable_loss=cable_loss,
                                    hanger_arrangement='Constant Change', hanger_params=(np.radians(85),np.radians(65)))

bridge_r35 = BlennerhassettBridge(arch_optimisation=False, arch_shape=arch_shape, cable_loss=cable_loss,
                                  hanger_arrangement='Radial', hanger_params=(np.radians(35), ))

bridge_r20 = BlennerhassettBridge(arch_optimisation=False, arch_shape=arch_shape, cable_loss=cable_loss,
                                  hanger_arrangement='Radial', hanger_params=(np.radians(20), ))

bridges_dict = {'85° Parallel arrangement': bridge_85,
                '65° Parallel arrangement': bridge_65,
Example #7
0
import numpy as np
from matplotlib import pyplot

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.adjustments import adjust_plot
from plotting.plots import make_plots, arch_or_tie_plots
from plotting.general import colors
from plotting.tables import dc_overview_table

# Import the base case
f = open('../base case/bridge.pckl', 'rb')
bridge_ref = pickle.load(f)
f.close()
cable_loss = False
for n in [13, 26]:
    bridge_thrust = BlennerhassettBridge(n_hangers=n, n_floor_beams=n, cable_loss=cable_loss)

    print('Potential for permanent moment distribution optimisation (n=' + str(n) + ')')
    for cs in bridge_thrust.cost_cross_sections[0:3]:
        name = cs.dc_max_limit_state
        m_max = cs.effects[name]['Moment'][0]
        m_min = cs.effects[name]['Moment'][1]
        m_dif = abs(m_max+m_min)/2
        dc_dif = 8/9 * m_dif / cs.moment_z_resistance
        print([m_max, m_min, m_dif, dc_dif])

    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}
Example #8
0
import numpy as np
from matplotlib import pyplot

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.loads import plot_loads
from plotting.supports import plot_supports_new

bridge_parallel = BlennerhassettBridge(knuckles=False, arch_optimisation=False)
nodes = bridge_parallel.nodes
hangers = bridge_parallel.network_arch.hangers

fig_1, ax_1 = pyplot.subplots(1, 1, figsize=(4, 1.5), dpi=720)
fig_2, ax_2 = pyplot.subplots(1, 1, figsize=(4, 1.5), dpi=720)

model = {
    'Nodes': {
        'Location': [[0, 0], [267.8, 0]]
    },
    'Boundary Conditions': {
        'Restricted Degrees': [[0, 1, 1, 0, 0], [1, 0, 1, 0, 0]]
    }
}
plot_supports_new(model, ax_1, factor=0.03)
plot_supports_new(model, ax_2, factor=0.03)
ax_1.set_aspect('equal', adjustable='box')
ax_1.axis('off')

bridge_parallel.network_arch.hangers.plot_elements(ax_1)

pyplot.show()
Example #9
0
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_105 = BlennerhassettBridge(
    hanger_arrangement='Constant Change',
    hanger_params=(np.radians(105), np.radians(65)))
bridge_parallel_95 = BlennerhassettBridge(hanger_arrangement='Constant Change',
                                          hanger_params=(np.radians(95),
                                                         np.radians(65)))
bridge_parallel_85 = BlennerhassettBridge(hanger_arrangement='Constant Change',
                                          hanger_params=(np.radians(85),
                                                         np.radians(65)))
bridge_parallel_75 = BlennerhassettBridge(hanger_arrangement='Constant Change',
                                          hanger_params=(np.radians(75),
                                                         np.radians(65)))
bridge_parallel_65 = BlennerhassettBridge(hanger_arrangement='Constant Change',
                                          hanger_params=(np.radians(65),
                                                         np.radians(65)))
bridge_parallel_55 = BlennerhassettBridge(hanger_arrangement='Constant Change',
                                          hanger_params=(np.radians(55),
                                                         np.radians(65)))

bridges_dict = {
    '105° Arrangement': bridge_parallel_105,
    '95° Arrangement': bridge_parallel_95,
    '85° Arrangement': bridge_parallel_85,
    '75° Arrangement': bridge_parallel_75,
    '65° Arrangement': bridge_parallel_65,
Example #10
0
from bridges.Blennerhassett import BlennerhassettBridge
from plotting.plots import make_plots, arch_or_tie_plots, crop_plots
from plotting.tables import dc_overview_table, small_cost_overview_table

bridge_13 = BlennerhassettBridge(curve_fitting='Polynomial')
bridge_20 = BlennerhassettBridge(n_hangers=20, curve_fitting='Polynomial')
bridge_27 = BlennerhassettBridge(n_hangers=27, curve_fitting='Polynomial')

adapted_params = (1.0646, False, 267.8 / (4 * 14))
bridge_26 = BlennerhassettBridge(hanger_params=adapted_params,
                                 n_hangers=26,
                                 curve_fitting='Polynomial')
fig = bridge_26.plot_elements()[0]
fig.savefig('structure_26.png')

bridges_dict = {
    '13 Hangers per set': bridge_13,
    '20 Hangers per set': bridge_20,
    '26 Hangers per set': bridge_26,
    '27 Hangers per set': bridge_27
}
load_groups = {
    'permanent': 'Permanent',
    'dead loading': 'DL',
    'live loading': 'LL',
    'tie fracture': 'Tie Fracture'
}
make_plots(bridges_dict,
           load_groups,
           marker='',
           all_labels=True,
Example #11
0
import numpy as np
from matplotlib import pyplot
from plotting.general import colors

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.adjustments import adjust_plot

bridge_100 = BlennerhassettBridge(arch_optimisation=False, arch_shape='Polynomial 1.00')
bridge_95 = BlennerhassettBridge(arch_optimisation=False, arch_shape='Polynomial 0.95')
bridge_90 = BlennerhassettBridge(arch_optimisation=False, arch_shape='Polynomial 0.9')
bridge_85 = BlennerhassettBridge(arch_optimisation=False, arch_shape='Polynomial 0.85')
bridge_80 = BlennerhassettBridge(arch_optimisation=False, arch_shape='Polynomial 0.8')
bridge_c = BlennerhassettBridge(arch_optimisation=False, arch_shape='Circular')


bridges_dict = {'Parabolic arch': bridge_100,
                'Polynomial arch (b=0.95)': bridge_95,
                'Polynomial arch (b=0.90)': bridge_90,
                'Polynomial arch (b=0.85)': bridge_85,
                'Polynomial arch (b=0.80)': bridge_80,
                'Circular arch': bridge_c}

span = 267.8
rise = 53.5
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]
Example #12
0
cable_loss = False
arch_shape = 'Continuous optimisation'
span = 267.8
rise = 53.5

b_table = np.zeros((5, 7))
dif_table = np.zeros((5, 7))
for i, a_mid in enumerate([85, 75, 65, 55, 45]):
    for j, a_1 in enumerate([105, 95, 85, 75, 65, 55, 45]):
        if a_1 < a_mid or a_1 >= 2 * a_mid:
            continue
        bridge = BlennerhassettBridge(arch_optimisation=False,
                                      arch_shape=arch_shape,
                                      cable_loss=cable_loss,
                                      hanger_arrangement='Constant Change',
                                      hanger_params=(np.radians(a_1),
                                                     np.radians(a_mid)),
                                      curve_fitting='Polynomial')
        b_table[i, j] = bridge.network_arch.arch.b
        dif_table[i, j] = bridge.network_arch.arch.d
np.savetxt("b_values.csv",
           b_table,
           delimiter=', ',
           fmt='%2.3f',
           newline=' \\\\\n')
np.savetxt("dif_values.csv",
           dif_table,
           delimiter=', ',
           fmt='%2.3f',
           newline=' \\\\\n')
Example #13
0
import numpy as np
from matplotlib import pyplot

from bridges.Blennerhassett import BlennerhassettBridge
# Plot model for zero-displacement method
from plotting.supports import plot_supports_new
from structure_analysis import structure_analysis
from structure_analysis.plotting import plot_loads_old, plot_internal_forces

bridge = BlennerhassettBridge(n_hangers=13,
                              knuckles=False,
                              self_stress_state='Zero-displacement',
                              arch_optimisation=False)

nodes = bridge.nodes
tie = bridge.network_arch.tie
arch = bridge.network_arch.arch
hangers = bridge.network_arch.hangers
hanger = hangers.hanger_sets[1].hangers[5]
hangers.hanger_sets = []

for node in nodes.nodes:
    if node.y > 0:
        node.y += 30
nodes.add_node(0, 30)
nodes.add_node(267.8, 30)

arch.nodes[0] = nodes.nodes[-2]
arch.nodes[-1] = nodes.nodes[-1]

model = bridge.network_arch.create_model()
Example #14
0
import numpy as np
from matplotlib import pyplot

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.general import colors
from plotting.plots import make_plots, crop_plots
from plotting.tables import small_cost_overview_table, dc_overview_table

bridge_10 = BlennerhassettBridge(n_hangers=10, n_floor_beams=10)
bridge_13 = BlennerhassettBridge(arch_shape='Polynomial 0.962',
                                 arch_optimisation=False)
bridge_20 = BlennerhassettBridge(n_hangers=20,
                                 n_floor_beams=20,
                                 arch_shape='Polynomial 0.962',
                                 arch_optimisation=False)
bridge_27 = BlennerhassettBridge(n_hangers=40,
                                 n_floor_beams=40,
                                 arch_shape='Polynomial 0.962',
                                 arch_optimisation=False)

bridges_dict = {
    '10 Floor beams*': bridge_10,
    '13 Floor beams': bridge_13,
    '20 Floor beams': bridge_20,
    '27 Floor beams': bridge_27
}
load_groups = {
    'permanent': 'Permanent',
    'live loading': 'LL',
    'dead load range': '0.25 DC/-0.1 DC, 0.5 DW/-0.35 DW',
    'strength-I': 'Strength-I'
Example #15
0
import pickle
import tracemalloc

from matplotlib import pyplot

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.adjustments import adjust_overview_plots, adjust_effects_plots
from plotting.general import colors

# Monitor memory usage
tracemalloc.start()

# Calculate the base case
folder = 'base case'
bridge_ref = BlennerhassettBridge(arch_optimisation=False, self_stress_state='Overall-optimisation')

# Plot permanent state and compare to design drawings
fig = bridge_ref.plot_all_effects('Permanent', label='Base case', c=colors[0])
axs = fig.get_axes()
axs[0].axhline(-44.5, c=colors[1], lw=1)
axs[0].axhline(-38, c=colors[1], lw=1)
axs[1].axhline(36, c=colors[1], lw=1)
axs[1].axhline(34.5, c=colors[1], lw=1)
axs[2].axhline(2.420/4.19, c=colors[1], lw=1)
axs[2].axhline(1.600/4.19, c=colors[1], lw=1)
axs[3].axhline(3.69, c=colors[1], lw=1)
axs[3].axhline(-3.69, c=colors[1], lw=1)
axs[4].axhline(2.7, c=colors[1], lw=1)
axs[4].plot([0, 270], [-3.17, -3.17], label='Design drawings', c=colors[1], lw=1)
adjust_overview_plots(fig)
fig.savefig('permanent state.png')
Example #16
0
from bridges.Blennerhassett import BlennerhassettBridge
from plotting.plots import make_plots

bridge_basic = BlennerhassettBridge(arch_optimisation=False,
                                    knuckles=False,
                                    exact_stiffness=False)
bridge_stiffness = BlennerhassettBridge(arch_optimisation=False,
                                        knuckles=False,
                                        exact_stiffness=True)
bridge_knuckle = BlennerhassettBridge(arch_optimisation=False,
                                      knuckles=True,
                                      exact_stiffness=False)

bridges_dict = {
    'Simplistic model': bridge_basic,
    'Accurate stiffness': bridge_stiffness,
    'Accurate Knuckles': bridge_knuckle
}
load_groups = {'dead_loading': 'DL'}
folder = 'model comparison'
make_plots(bridges_dict, load_groups, lw=0.7)
Example #17
0
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'
}
Example #18
0
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}
Example #19
0
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 = [{
Example #20
0
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]
Example #21
0
from matplotlib import pyplot

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.adjustments import adjust_plot
from plotting.general import colors

bridge = BlennerhassettBridge(arch_optimisation=False, n_floor_beams=100)

span = 267.8
F = 296
c = 1 #1/(40.5*100*2)*1000

x = [(i+1)/(101)*span for i in range(100)]
f_2 = []
f_6 = []
f_10 = []
for i in range(100):
    d_2 = bridge.network_arch.hangers.effects['F'+str(i+1)]['Normal Force'][1]
    d_6 = bridge.network_arch.hangers.effects['F'+str(i+1)]['Normal Force'][5]
    d_10 = bridge.network_arch.hangers.effects['F'+str(i+1)]['Normal Force'][9]
    f_2.append(F*d_2*c)
    f_6.append(F*d_6*c)
    f_10.append(F*d_10*c)

span = 267.8
rise = 53.5
fig, axs = pyplot.subplots(1, 2, figsize=(8, 2), dpi=240)

axs[0].plot(x, f_2, label='2. Hanger', c=colors[0], lw=1)
axs[0].plot(x, f_6, label='6. Hanger', c=colors[1], lw=1)
axs[0].plot(x, f_10, label='10. Hanger', c=colors[2], lw=1)
Example #22
0
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()
Example #23
0
from bridges.Blennerhassett import BlennerhassettBridge

bridge_thrust = BlennerhassettBridge()
bridge_thrust.cost_table()
Example #24
0
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)
Example #25
0
import numpy as np
from matplotlib import pyplot
from plotting.loads import plot_loads

from bridges.Blennerhassett import BlennerhassettBridge
from plotting.save import save_plot

bridge_parallel = BlennerhassettBridge(arch_optimisation=False)

self = bridge_parallel.network_arch
i_hanger = 3
ll_factor = 1.5
name = 'Cable_Replacement'
q_d = 18.3
q_c = 900

hanger = self.hangers[i_hanger]
span = self.tie.span
n = self.tie.cross_girders_amount
f_d = span * q_d / (n + 1)

# Find worst load arrangement
self.set_range('EL + 1.2 DC + 1.4 DW', 'Cable loss')
load = '0'
max_hanger_force = 0
max_hanger_force_i = 0
for i in range(len(self.tie.cross_girders_nodes)):
    hanger_force = hanger.effects_N['F' + str(i + 1)]
    if hanger_force > 0:
        load += ' + ' + str(f_d) + ' F' + str(i + 1)
    if hanger_force > max_hanger_force: