civilpy.structural.aashto package
Submodules
civilpy.structural.aashto.bearings module
- class civilpy.structural.aashto.bearings.BearingSuitability(type='rectangular', movement='fixed', axis='x')[source]
Bases:
objectA class to assist determining suitability of various types of bearings for various types of loading Situations. The class is intended to be used as follows.
- As Reference:
bearing_table = BearingSuitability().table print(bearing_table)
- As Code:
- if BearingSuitability(type, movement, axis):
perform_action()
- else:
continue
- __init__(type='rectangular', movement='fixed', axis='x')[source]
Initialise a BearingSuitability checker and build the lookup table.
- get_table()[source]
Build and return the AASHTO bearing suitability reference table.
Suitability ratings are derived from AASHTO LRFD Bridge Design Specifications, Table 14.6.2-1 (Bearing Suitability).
The table maps movement/rotation/load categories to bearing types with suitability codes:
'S'= suitable,'U'= unsuitable,'R'= requires special consideration,'L'= suitable for limited applications.- Returns:
Rows are bearing types; columns are movement, rotation, and load categories.
- Return type:
- class civilpy.structural.aashto.bearings.MethodABearing(width, length, durometer, internal_t, external_t, steel_t, plys, span, expansion_length, loads, max_dl_delta, max_ll_delta, max_ll_loc, deck_slope, plate_bev, edge_cover=0.25, type='rectangular', holes=False, steel_yield_strength=60, shear_modulus=0.095, exp_coeff=6e-06, temp_min=-30, temp_max=120)[source]
Bases:
objectRepresents a Method A designed elastomeric bearing pad used in structural applications.
The MethodABearing class is utilized to evaluate the compliance of an elastomeric bearing pad structured to Method A design checks. The assessment involves evaluating critical parameters such as internal and external layer thickness, shape factors, and edge cover, based on defined design specifications. Various checks are performed to ensure the pad satisfies these structural criteria.
- expansion_length
The expansion length of the bridge section (fixed bearing to fixed) in ft.
- Type:
- loads
A dictionary containing the loads applied to the bearing pad. - format to be updated
- Type:
- max_dl_delta
The maximum deflection of the dead load in inches (from software/analysis).
- Type:
- max_ll_delta
The maximum deflection of the live load in inches (from software/analysis).
- Type:
- type
The shape type of the bearing pad, default is ‘rectangular’, alternative is ‘circular’.
- Type:
- steel_yield_strength
The yield strength of the steel reinforcing shims in ksi (defaults to 60).
- Type:
- shear_modulus
The shear modulus of the elastomeric material in ksi (defaults to 0.095).
- Type:
- exp_coeff
The expansion coefficient of the elastomeric material in 1/in (defaults to 0.000006).
- Type:
- temp_min
The minimum temperature of the bearing pad in degrees Fahrenheit (defaults to 15).
- Type:
- temp_max
The maximum temperature of the bearing pad in degrees Fahrenheit (defaults to 95).
- Type:
- __init__(width, length, durometer, internal_t, external_t, steel_t, plys, span, expansion_length, loads, max_dl_delta, max_ll_delta, max_ll_loc, deck_slope, plate_bev, edge_cover=0.25, type='rectangular', holes=False, steel_yield_strength=60, shear_modulus=0.095, exp_coeff=6e-06, temp_min=-30, temp_max=120)[source]
Initialize a Method A elastomeric bearing and compute derived geometry.
- Parameters:
width (float) – Bearing pad width, in.
length (float) – Bearing pad length, in.
durometer (float) – Elastomer hardness (Shore A durometer value).
internal_t (float) – Internal elastomer layer thickness, in.
external_t (float) – External (cover) elastomer layer thickness, in.
steel_t (float) – Steel reinforcing shim thickness, in.
plys (int) – Number of steel reinforcing layers.
span (float) – Span length from bearing to bearing, ft.
expansion_length (float) – Length from fixed bearing to expansion bearing, ft.
loads (dict) – Applied loads dictionary (format defined per project use).
max_dl_delta (float) – Maximum dead load deflection from analysis, in.
max_ll_delta (float) – Maximum live load deflection from analysis, in.
max_ll_loc (float) – Location of maximum live load, ft from bearing.
deck_slope (float) – Deck slope, percent grade.
plate_bev (float) – Sole plate bevel, percent.
edge_cover (float) – Edge cover dimension, in. Defaults to
0.25.type (str) – Bearing geometry —
'rectangular'(default) or'circular'.holes (bool) –
Trueif the bearing pad has holes. Defaults toFalse.steel_yield_strength (float) – Shim yield strength, ksi. Defaults to
60.shear_modulus (float) – Elastomer shear modulus, ksi. Defaults to
0.095.exp_coeff (float) – Thermal expansion coefficient, 1/°F. Defaults to
0.000006.temp_min (float) – Minimum design temperature, °F. Defaults to
-30.temp_max (float) – Maximum design temperature, °F. Defaults to
120.
- check_edge_cover()[source]
Verify steel laminate edge cover meets the 1/4-inch minimum.
Per AASHTO 14.7.6.1, edge cover must be at least 0.25 inches. Updates
self.checks['Steel Laminate Edge Cover Check']with1(pass) or0(fail).
- check_layer_thickness()[source]
Verify external elastomer layer thickness constraints.
Per AASHTO 14.7.6.1, the external layer must not exceed 5/16 inch and must not exceed 70 % of the internal layer thickness. Updates
self.checkswith1(pass) or0(fail) for each sub-check.
- get_deflections()[source]
Calculate service compressive stress values from applied loads.
Divides live and total dead loads by the bearing plan area to obtain bearing pressures, stored as
self.sigma_l(live load stress, ksi) andself.sigma_s(dead load stress, ksi).
- get_shape_factors(thickness)[source]
Calculate the AASHTO shape factor S for a single elastomer layer.
Per AASHTO 14.7.5.1, S = LW / [2t_ri(L + W)].
- run_checks()[source]
Execute all AASHTO Method A elastomeric bearing design checks.
Runs checks #2 through #19 per AASHTO LRFD 14.7.6. Results are stored in
self.checksas1(pass) or0(fail). Failed checks also print a descriptive message.Checks performed include service stress limits, deflection limits, shear deformation, combined strain, stability, and reinforcement checks.
civilpy.structural.aashto.durometer module
- civilpy.structural.aashto.durometer.find_closest_key(user_input, durometer_values, category)[source]
Return the strain-factor table key nearest to user_input.
AASHTO shape-factor tables are defined at discrete values (3, 4, 5, 6, 9, 12). When a designer provides an intermediate shape factor this function finds the nearest tabulated key so the correct strain factor can be looked up.
- Parameters:
- Returns:
The integer key in durometer_values[category] closest to user_input, returned as a string.
- Return type:
- civilpy.structural.aashto.durometer.get_strain_from_stress(stress, durometer, shape_factor)[source]
Calculate elastomer compressive strain from applied stress.
Inverts the AASHTO power-law relationship
stress = A * strain^1.3(where A is the durometer/shape-factor dependent coefficient) to solve for strain given a known stress. AASHTO tables list strain as the independent variable, so this inversion is necessary for stress-driven design workflows.
civilpy.structural.aashto.load_definitions module
civilpy.structural.aashto.vehicles module
- class civilpy.structural.aashto.vehicles.HL93Load[source]
Bases:
objectAASHTO HL-93 design vehicle load per AASHTO LRFD Bridge Design Specifications.
The HL-93 live load consists of a design truck (or tandem) combined with a design lane load. This class represents the design truck component: a 3-axle vehicle with 8-kip front axle and two 32-kip rear axles.
- __init__()[source]
Initialize the HL-93 design truck with standard AASHTO axle loads and spacings.
Axle loads (kips) and reference spacings (ft) are per AASHTO LRFD Table 3.6.1.2.2-1. The rear axle spacing varies between 14 ft and 30 ft; the governing spacing for a given span is the one that maximizes the load effect.
- class civilpy.structural.aashto.vehicles.HS20Load[source]
Bases:
objectAASHTO HS-20-44 design truck per AASHTO Standard Specifications for Highway Bridges, 17th Ed., Article 3.7.
HS-20 predates LRFD and is used for load rating of older structures and for permit routing. The axle pattern (8-32-32 kip) is identical to the HL-93 design truck, but the rear axle spacing is fixed at 14 ft (not variable), and the lane load uses separate concentrated loads for moment vs. shear.
- class civilpy.structural.aashto.vehicles.PedestrianLoad(span_length_ft: float = 25.0, tributary_width_ft: float = 6.0)[source]
Bases:
objectPedestrian live load per AASHTO LRFD Guide Specifications for Design of Pedestrian Bridges, 2nd Ed. (2009), Article 4.1.
The basic uniform load is 90 psf. For bridges with loaded lengths greater than 25 ft, a reduced load may be used per the formula below, with a minimum of 20 psf.
- Reduction formula (L > 25 ft):
w = max(20, min(90, 240 / L + 20)) [psf]
where L is the loaded span length in feet.