Skip to content

Conversation

@nishikantmandal007
Copy link

PR: Added Support for Both Tension and Compression Forces in Joint Design Modules (IS 800:2007 Compliance)

Overview

This PR introduces comprehensive updates to the Lap Joint Bolted, Butt Joint Bolted, Butt Joint Welded, and Lap Joint Welded modules to support both Tension and Compression design modes, ensuring full compliance with IS 800:2007.

The changes ensure accurate strength verification for base metal and weld/bolt connections under both load conditions, while maintaining backward compatibility with existing tension-only designs.


Key Enhancements

General Updates (Across All Modules)

  • Added a new attribute design_for ('Tension' or 'Compression') in the class __init__() method.
  • Updated UI logic in design_values() to include a dropdown/combobox for selecting design mode.
  • Modified set_input_values() to:
    • Accept user-defined design modes.
    • Treat axial forces as absolute values.
  • Enhanced check_base_metal_strength() with conditional logic for Tension and Compression.
  • Updated output_values() and save_design() to include:
    • Selected design mode.
    • Detailed utilization ratio breakdowns.
  • Ensured backward compatibility for existing designs configured under "Tension".

Design Calculations (As per IS 800:2007)

Common Parameters

Gross Area:

Ag = t × w

Partial Safety Factors:

γm0 = 1.10
γm1 = 1.25

Material Properties: Yield strength (fy), Ultimate strength (fu)


1. Lap Joint Bolted Module

File: lap_joint_bolted.py

Key Changes

  • Added design_for in initialization and UI.
  • Updated logic for Tension and Compression design paths.
  • Included utilization reporting for both cases.

Design Calculations

Compression Design

Clause 7.1.2 (IS 800:2007) — Design Compressive Strength

Tdb = (Ag × fy) / γm0

This represents the design compressive strength of the plate (without considering buckling).

Utilization Check:

U = Faxial / Tdb ≤ 1.0

Tension Design

Clause 6.2.2 (IS 800:2007) — Design Strength due to Yielding of Gross Section

Tdg = (Ag × fy) / γm0

Clause 6.2.3 (IS 800:2007) — Design Strength due to Rupture of Net Section

An = t × (w - nh × dh)
Tdn = (0.9 × An × fu × β) / γm1

Clause 6.3.3 (IS 800:2007) — Shear Lag Factor

β = 0.7 (for lap joints)

Clause 6.4.1 (IS 800:2007) — Block Shear Strength

Tdb,block = (1/√3) × min(
    (Avg × fy/γm0) + (Atn × fu/γm1),
    (Avn × fu/γm1) + (Atg × fy/γm0)
)

Overall Design Strength:

Tdb = min(Tdg, Tdn, Tdb,block)

Utilization Check:

U = Faxial / Tdb ≤ 1.0

Impact

  • Enables compression design for lap joints
  • Maintains safety through distinct logic per force direction

2. Butt Joint Bolted Module

File: butt_joint_bolted.py

Key Changes

  • Added design mode selector (Tension / Compression).
  • Conditional base metal strength logic for both modes.
  • Improved report generation with clear utilization ratios.

Design Calculations

Compression Design

Clause 7.1.2 (IS 800:2007) — Design Compressive Strength

Tdb = (Ag × fy) / γm0

Utilization Check:

U = Faxial / Tdb ≤ 1.0

Tension Design

Clause 6.2.2 (IS 800:2007) — Design Strength due to Yielding of Gross Section

Tdg = (Ag × fy) / γm0

Clause 6.2.3 (IS 800:2007) — Design Strength due to Rupture of Net Section

An = t × (w - nh × dh)
Tdn = (0.9 × An × fu × β) / γm1

Clause 6.3.3 (IS 800:2007) — Shear Lag Factor

β = 0.7 (for butt joints with cover plates on both sides)

Clause 6.4.1 (IS 800:2007) — Block Shear Strength

Tdb,block = (1/√3) × min(
    (Avg × fy/γm0) + (Atn × fu/γm1),
    (Avn × fu/γm1) + (Atg × fy/γm0)
)

Clause 10.3.3.1 (IS 800:2007) — Shear Capacity of Bolts

Vdsb = (Vnsb / γmb) × (Anb / An)

Clause 10.3.3.2 (IS 800:2007) — Bearing Strength of Bolts

Vdpb = 2.5 × kb × d × t × fu / γmb

Clause 10.3.4 (IS 800:2007) — Reduction Factor for Long Joints

βlj = 1.075 - (Lj / 15d) ≥ 0.75  (for Lj > 15d)

Clause 10.3.5 (IS 800:2007) — Reduction Factor for Large Grip Length

βlg = 8d / (3d + lg) ≤ 1.0  (for lg > 8d)

Impact

  • Supports both load conditions for butt joints
  • Fully compliant with IS 800:2007
  • Improves design flexibility and reliability

3. Butt Joint Welded Module

File: butt_joint_welded.py

Key Changes

  • Added design_for mode and updated UI.
  • Integrated compression logic into check_base_metal_strength().
  • Adjusted weld strength evaluation for compression and tension.

Design Calculations

Compression Design

Clause 7.1.2 (IS 800:2007) — Design Compressive Strength of Plate

Tplate = (Ag × fy) / γm0

Clause 10.5.7.1 (IS 800:2007) — Design Strength of Weld

Tweld = (a × L × fww) / γmw

where:
γmw = 1.25
fww = fu / √3  (for shop welds)

Overall Design Strength:

Tdb = min(Tplate, Tweld)

Utilization Check:

U = Faxial / Tdb ≤ 1.0

Tension Design

Clause 6.2.2 (IS 800:2007) — Design Strength due to Yielding of Gross Section

Tdg = (Ag × fy) / γm0

Clause 6.2.3 (IS 800:2007) — Design Strength due to Rupture of Net Section

An = Ag  (for full penetration butt welds)
Tdn = (0.9 × An × fu) / γm1

Clause 10.5.7.1 (IS 800:2007) — Design Strength of Fillet Welds

fwd = fvw / (√3 × γmw)

where:
fvw = 0.7 × fy  (for fillet welds)
Tweld = a × L × fwd

Overall Design Strength:

Tdb = min(Tplate, Tweld)

Utilization Check:

U = Faxial / Tdb ≤ 1.0

Impact

  • Adds compression capability to welded butt joints
  • Ensures weld design adheres to Clause 10.5 provisions

4. Lap Joint Welded Module

File: lap_joint_welded.py

Key Changes

  • Added design_for parameter and user interface controls.
  • Compression logic integrated into base metal checks.
  • Force-direction-based weld and plate strength validation.

Design Calculations

Compression Design

Clause 7.1.2 (IS 800:2007) — Design Compressive Strength of Plate

Tplate = (Ag × fy) / γm0

Clause 10.5.7.1 (IS 800:2007) — Design Strength of Weld

Tweld = (a × L × fww) / γmw

Overall Design Strength:

Tdb = min(Tplate, Tweld)

Utilization Check:

U = Faxial / Tdb ≤ 1.0

Tension Design

Clause 6.2.2 (IS 800:2007) — Design Strength due to Yielding of Gross Section

Tdg = (Ag × fy) / γm0

Clause 6.2.3 (IS 800:2007) — Design Strength due to Rupture of Net Section

An = t × (w - nh × dh)
Tdn = (0.9 × An × fu × β) / γm1

Clause 6.3.3 (IS 800:2007) — Shear Lag Factor

β = 0.7 (for lap joints)

Clause 10.5.7.1 (IS 800:2007) — Design Strength of Weld

Tweld = a × L × fwd

where:
fwd = fvw / (√3 × γmw)
fvw = 0.7 × fy

Overall Design Strength:

Tdb = min(Tplate, Tweld)

Utilization Check:

U = Faxial / Tdb ≤ 1.0

Impact

  • Enables compression design for lap welded joints
  • Expands design capabilities for overlapping steel connections

Overall Impact Summary

Feature Before After
Design Modes Tension only Tension + Compression
IS 800:2007 Compliance Partial Full (Clauses 6.2, 6.3, 6.4, 7.1, 10.3, 10.5)
Reporting Basic Mode-specific utilization with detailed breakdown
Backward Compatibility N/A Fully preserved

Key IS 800:2007 References

Section 6 — Design of Tension Members

  • Clause 6.2.2 — Design Strength due to Yielding of Gross Section
  • Clause 6.2.3 — Design Strength due to Rupture of Net Section
  • Clause 6.3.3 — Shear Lag Factor (β)
  • Clause 6.4.1 — Block Shear Strength

Section 7 — Design of Compression Members

  • Clause 7.1.2 — Design Compressive Strength of a Member

Section 10 — Design of Connections

  • Clause 10.3.3.1 — Shear Strength of Bolts
  • Clause 10.3.3.2 — Bearing Strength of Bolts
  • Clause 10.3.4 — Reduction for Long Joints
  • Clause 10.3.5 — Reduction for Large Grip Length
  • Clause 10.5.7.1 — Design Strength of Fillet Welds

Breaking Changes

None. Existing designs will continue to work with default design_for='Tension' mode.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants