Concrete Design Module
Concrete design calculators following IS 456:2000.
Beam Design Calculator
Design reinforced concrete beams for flexure and shear following IS 456:2000.
Enhanced Concrete Beam Design Calculator per IS 456:2000 & IS 13920:2016
This module implements reinforced concrete beam design with: - Multi-section analysis (left/mid/right) - Complete torsion integration (MTu, VTu, torsion stirrups) - Sway shear calculations per IS 13920:2016 Cl 6.3.4 - Zone-wise ductile detailing - Side face reinforcement per IS 456 Cl 26.5.1.3 - Bar arrangement output (“5-T16 + 3-T12” format) - Comprehensive spacing criteria
Version: 2.0.0 Date: November 30, 2025 Author: StructEngine Team
- class api.app.calculators.concrete.conc_beam_design.BeamFace(*values)[source]
-
Beam face (top or bottom)
- TOP = 'top'
- BOTTOM = 'bottom'
- class api.app.calculators.concrete.conc_beam_design.BeamSection(*values)[source]
-
Beam section location
- LEFT = 'left'
- MID = 'mid'
- RIGHT = 'right'
- class api.app.calculators.concrete.conc_beam_design.CheckStatus(**data)[source]
Bases:
BaseModelStatus model for design checks - legacy compatibility
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- api.app.calculators.concrete.conc_beam_design.ConcBeamDesignCalculator
alias of
EnhancedBeamDesignCalculator
- class api.app.calculators.concrete.conc_beam_design.ConcBeamDesignInput(**data)[source]
Bases:
BaseModelLegacy input schema for backward compatibility
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class api.app.calculators.concrete.conc_beam_design.ConcBeamDesignOutput(**data)[source]
Bases:
BaseModelLegacy output schema for backward compatibility
-
loads:
LoadSummary
-
flexural_design:
FlexuralDesign
-
shear_design:
ShearDesign
-
checks:
Dict[str,CheckStatus]
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
loads:
- class api.app.calculators.concrete.conc_beam_design.DesignInput(**data)[source]
Bases:
BaseModelComplete input for beam design with backward compatibility aliases
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
geometry:
BeamGeometry
-
materials:
MaterialProperties
-
loads:
BeamLoads
- class api.app.calculators.concrete.conc_beam_design.DesignOutput(**data)[source]
Bases:
BaseModelComplete beam design output
-
flexure:
List[FlexureResult]
-
shear:
List[ShearResult]
-
side_face_reinforcement:
SideFaceReinforcement
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
flexure:
- class api.app.calculators.concrete.conc_beam_design.EnhancedBeamDesignCalculator[source]
Bases:
BaseCalculatorEnhanced concrete beam design calculator with complete IS 456 & IS 13920 compliance.
Features: - Multi-section analysis (left/mid/right) - Complete torsion integration (MTu, VTu, torsion stirrups) - Sway shear calculations per IS 13920:2016 Cl 6.3.4 - Zone-wise ductile detailing - Side face reinforcement per IS 456 Cl 26.5.1.3 - Bar arrangement output (“5-T16 + 3-T12” format)
- class api.app.calculators.concrete.conc_beam_design.FlexuralDesign(**data)[source]
Bases:
BaseModelFlexural reinforcement design results - legacy compatibility
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class api.app.calculators.concrete.conc_beam_design.FlexureResult(**data)[source]
Bases:
BaseModelFlexural design results for a section
-
section:
BeamSection
-
reinforcement:
BarArrangement
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
section:
- class api.app.calculators.concrete.conc_beam_design.LoadSummary(**data)[source]
Bases:
BaseModelSummary of loads and internal forces - legacy compatibility
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class api.app.calculators.concrete.conc_beam_design.ShearDesign(**data)[source]
Bases:
BaseModelShear reinforcement design results - legacy compatibility
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class api.app.calculators.concrete.conc_beam_design.ShearResult(**data)[source]
Bases:
BaseModelShear design results for a section
-
section:
BeamSection
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
section:
- class api.app.calculators.concrete.conc_beam_design.SideFaceReinforcement(**data)[source]
Bases:
BaseModelSide face reinforcement per IS 456 Cl 26.5.1.3
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
Doubly Reinforced Beam
Extension for doubly reinforced beam design.
Doubly Reinforced Beam Design Module per IS 456:2000 (Limit State Method)
This module implements doubly reinforced concrete beam design for sections where the applied factored moment exceeds the limiting moment capacity of a singly reinforced section (Mu > Mu,lim).
The module is called from the main beam design calculator when over-reinforcement is detected and compression steel is required.
- Design Philosophy:
When Mu > Mu,lim, compression steel is added to increase moment capacity while maintaining ductility. The total capacity is split into: - Mu,lim: Resisted by singly reinforced section (Ast1) - Mu,excess = Mu - Mu,lim: Resisted by compression steel pair (Asc + Ast2)
References
IS 456:2000 Clause 38 - Flexural Strength IS 456:2000 Annex G - Design Aid for Reinforced Concrete
- class api.app.calculators.concrete.conc_beam_design_doubly_reinforced.DoublyReinforcedResult(section_type, is_under_reinforced, Mu, Mu_lim, Mu_excess, ast1, ast2, ast_required, ast_method2, asc_required, xu_max, z, d_prime, lever_arm_compression, discriminant, min_area, max_area_tension, max_area_compression, method)[source]
Bases:
objectData class containing doubly reinforced beam design results.
- __init__(section_type, is_under_reinforced, Mu, Mu_lim, Mu_excess, ast1, ast2, ast_required, ast_method2, asc_required, xu_max, z, d_prime, lever_arm_compression, discriminant, min_area, max_area_tension, max_area_compression, method)
- class api.app.calculators.concrete.conc_beam_design_doubly_reinforced.DoublyReinforcedDesigner[source]
Bases:
objectDoubly reinforced concrete beam designer per IS 456:2000.
Handles design of beam sections where the applied moment exceeds the limiting moment capacity of a singly reinforced section, requiring compression steel to increase capacity while maintaining ductility.
- Design Theory:
When Mu > Mu,lim: 1. A single layer of tension steel at xu,max cannot resist the moment 2. Compression steel is added to reduce neutral axis depth 3. Total capacity = Mu,lim (singly reinforced) + Mu,excess (steel couple) 4. Ast = Ast1 (for Mu,lim) + Ast2 (paired with Asc)
- Design Steps:
Calculate Ast1 for Mu,lim using singly reinforced closed-form solution
Calculate excess moment: Mu,excess = Mu - Mu,lim
Design compression steel Asc for Mu,excess
Calculate additional tension steel Ast2 = Asc (force equilibrium)
Total tension steel Ast = Ast1 + Ast2
Verify minimum and maximum steel requirements
Example
>>> designer = DoublyReinforcedDesigner() >>> result = designer.design_doubly_reinforced( ... Mu=250, # kN-m ... b=300, # mm ... d=600, # mm ... fck=25, # MPa ... fy=415, # MPa ... d_prime=50 # mm ... ) >>> print(f"Tension steel: {result.ast_required:.0f} mm²") >>> print(f"Compression steel: {result.asc_required:.0f} mm²")
References
IS 456:2000 Clause 38 - Flexural Strength IS 456:2000 Clause 38.1 - Assumptions for Limit State Design IS 456:2000 Annex G - Design Aids
- __init__()[source]
Initialize doubly reinforced designer with IS 456 parameters.
Sets up stress block factors and neutral axis depth ratios per IS 456:2000.
- design_doubly_reinforced(Mu, b, d, fck, fy, d_prime=50.0, steel_grade='Fe415')[source]
Design doubly reinforced beam section per IS 456:2000.
Main entry point for doubly reinforced beam design. Calculates tension and compression steel required for moment exceeding Mu,lim.
- Parameters:
Mu (
float) – Applied factored moment in kN-mb (
float) – Beam width in mm (≥150mm)d (
float) – Effective depth in mm (≥150mm)fck (
float) – Characteristic concrete strength in MPa (M20-M50)fy (
float) – Characteristic steel strength in MPa (415, 500, 550)d_prime (
float) – Effective cover to compression steel in mm. Default: 50mmsteel_grade (
str) – Steel grade string (‘Fe415’, ‘Fe500’, ‘Fe550’). Default: ‘Fe415’
- Returns:
ast_required: Total tension steel in mm²
asc_required: Compression steel in mm²
Mu_lim: Limiting moment in kN-m
Mu_excess: Excess moment in kN-m
Complete design parameters and checks
- Return type:
DoublyReinforcedResult object containing
- Raises:
ValueError – If inputs violate IS 456 limits or discriminant is negative
Example
>>> designer = DoublyReinforcedDesigner() >>> result = designer.design_doubly_reinforced( ... Mu=250, ... b=300, ... d=600, ... fck=25, ... fy=415, ... d_prime=50 ... ) >>> print(f"Ast = {result.ast_required:.0f} mm²") >>> print(f"Asc = {result.asc_required:.0f} mm²") Ast = 2845 mm² Asc = 628 mm²
Note
Design assumes: - Plane sections remain plane (strain compatibility) - Maximum concrete strain εcu = 0.0035 - Steel yields (fy reached) for ductile failure - Compression steel confined and properly detailed
References
IS 456:2000 Clause 38 - Flexural Strength IS 456:2000 Clause 26.5.1 - Minimum and Maximum Reinforcement
- verify_design(result)[source]
Verify doubly reinforced design against IS 456:2000 requirements.
Performs comprehensive checks on the design including: - Minimum and maximum steel requirements - Ductility (under-reinforced condition) - Compression steel stress validity - Method cross-verification
- Parameters:
result (
DoublyReinforcedResult) – DoublyReinforcedResult from design_doubly_reinforced()- Returns:
is_valid (bool): Overall design validity
checks (dict): Individual check results
warnings (list): Design warnings
- Return type:
Dictionary containing
Example
>>> verification = designer.verify_design(result) >>> if verification['is_valid']: ... print("Design is valid per IS 456:2000") >>> for warning in verification['warnings']: ... print(f"Warning: {warning}")
References
IS 456:2000 Clause 26.5.1 - Reinforcement Limits
Column Design Calculator
Design reinforced concrete columns for axial load and biaxial bending following IS 456:2000.
Refactored Column Design Calculator - IS 456:2000 + IS 13920:2016 WITH INTERACTION DIAGRAM SUPPORT (IS 456 ANNEX G)
Concrete column design with reduced complexity and complete shear design. Implements: - Method extraction for calculation steps - Parameter objects for grouped inputs - Strategy pattern for column types - Interaction diagram method for slender columns (IS 456 Annex G) - Functional programming approaches - Cyclomatic complexity < 10 per method
CORRECTED DESIGN MOMENT LOGIC: M_design = max(M_analysis, M_min_ecc) + M_slenderness
INTERACTION DIAGRAM IMPLEMENTATION (v5.0.0): ✨ NEW: Proper IS 456 Annex G interaction diagrams for slender columns ✨ NEW: P-M interaction curves for various fck and steel percentages ✨ NEW: Interpolation for intermediate values ✨ IMPROVED: Steel calculation using biaxial bending interaction
UPDATED FEATURES (Dec 5, 2025 - Version 5.0.0): - ✨ NEW: IS 456 Annex G Interaction Diagrams - ✨ NEW: Biaxial bending P-M interaction curves - ✨ NEW: Interpolation for custom f_ck values - Proper handling of N-M and N-M interaction - D/B ratio classification check (IS 13920:2016) - Special confining reinforcement Ash1, Ash2 (IS 13920:2016 Clause 7.6) - Corrected ductile zone length formula - 100mm cap on ductile link spacing - Enhanced output schema with ductile details - Capacity-based shear design (IS 13920:2016 Clause 7.5) - Simplified seismic design inputs for MRF - IS 13920:2016 full compliance option
- class api.app.calculators.concrete.conc_column_design.ColumnGeometry(width, depth, unsupported_length_x, unsupported_length_y, clear_cover, main_bar_dia, tie_dia)[source]
Bases:
objectParameter object for column geometry.
- __init__(width, depth, unsupported_length_x, unsupported_length_y, clear_cover, main_bar_dia, tie_dia)
- class api.app.calculators.concrete.conc_column_design.MaterialProperties(fck, fy, fyshear)[source]
Bases:
objectParameter object for material properties.
- __init__(fck, fy, fyshear)
- class api.app.calculators.concrete.conc_column_design.LoadParameters(axial_load, moment_x, moment_y, shear_x, shear_y)[source]
Bases:
objectParameter object for loads and forces.
- __init__(axial_load, moment_x, moment_y, shear_x, shear_y)
- class api.app.calculators.concrete.conc_column_design.EffectiveLengthFactors(along_major_axis, along_minor_axis)[source]
Bases:
objectParameter object for effective length factors.
- __init__(along_major_axis, along_minor_axis)
- class api.app.calculators.concrete.conc_column_design.SeismicDesignParameters(enabled=False, sum_beam_moment_major=0.0, sum_beam_moment_minor=0.0, story_height=3000.0)[source]
Bases:
objectParameter object for seismic design (IS 13920:2016 Clause 7.5).
- __init__(enabled=False, sum_beam_moment_major=0.0, sum_beam_moment_minor=0.0, story_height=3000.0)
- class api.app.calculators.concrete.conc_column_design.ColumnDesignStrategy[source]
Bases:
objectStrategy interface for column design calculations.
- class api.app.calculators.concrete.conc_column_design.ShortColumnStrategy[source]
Bases:
ColumnDesignStrategyStrategy for short column calculations using IS 456 Clause 39.4.
- class api.app.calculators.concrete.conc_column_design.SlenderColumnInteractionDiagramStrategy[source]
Bases:
ColumnDesignStrategyStrategy for slender column calculations using IS 456 Annex G.
Implements proper P-M interaction diagrams for biaxial bending.
- calculate_slenderness_moment(geometry, factored_axial_load, effective_length, depth_or_width)[source]
Calculate slenderness moment per IS 456 Clause 39.7.1.
- Return type:
- calculate_steel_requirements(geometry, materials, design_moments, factored_axial_load)[source]
Calculate steel using IS 456 Annex G interaction diagrams.
Steps: 1. Get interaction diagram for given fck 2. Normalize P_u and M_u 3. Find point on diagram or use interpolation 4. Extract required steel percentage 5. Apply min/max limits
- class api.app.calculators.concrete.conc_column_design.ColumnDesignInput(**data)[source]
Bases:
BaseModelInput schema for column design calculation.
- classmethod validate_seismic_inputs_major(v, values)[source]
Validate that beam moments are provided if seismic design is enabled.
- Return type:
- classmethod validate_story_height(v, values)[source]
Validate that story height is provided if seismic design is enabled.
- Return type:
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class api.app.calculators.concrete.conc_column_design.ColumnDesignOutput(**data)[source]
Bases:
BaseModelOutput schema for column design results.
-
inputs:
ColumnDesignInput
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
inputs:
- class api.app.calculators.concrete.conc_column_design.RefactoredColumnDesignCalculator[source]
Bases:
BaseCalculatorRefactored calculator for concrete column design per IS 456:2000 + IS 13920:2016 WITH INTERACTION DIAGRAM SUPPORT (IS 456 ANNEX G)
Design Moment Calculation: M_design = max(M_analysis, M_min_ecc) + M_slenderness
UPDATES (Dec 5, 2025 - Version 5.0.0): - ✨ IS 456 Annex G Interaction Diagrams for slender columns - ✨ Proper P-M interaction curves - ✨ Biaxial bending support - D/B ratio classification check - Special confining reinforcement (Ash1, Ash2) - Corrected ductile zone length - 100mm cap on ductile link spacing - Capacity-based shear design (IS 13920 Clause 7.5) - Full IS 13920:2016 seismic compliance
Slab Design Calculator
Design one-way and two-way reinforced concrete slabs following IS 456:2000.
Slab Design Calculator
Concrete slab design as per IS 456:2000. Performs design of one-way and two-way slabs with comprehensive coefficient tables.
Version: 2.0.0 - IS 456 Compliance Update - Integrated crack width calculation (IS 456 Annex F via crack_width module) - Fixed distribution steel using gross area (IS 456 Cl 26.5.2.1) - Improved shear enhancement factor with linear interpolation - Added percentage steel tracking - Enhanced output schema
- class api.app.calculators.concrete.slab_design.SlabDesignInput(**data)[source]
Bases:
BaseModelInput schema for slab design calculation.
-
support_condition:
Literal['Interior Panel','End Panel','Next to End Panel','One short edge discontinuous','One long edge discontinuous','Two adjacent edges discontinuous','Two short edges discontinuous','Two long edges discontinuous','One long edge continuous','One short edge continuous','Four edges discontinuous']
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
support_condition:
- class api.app.calculators.concrete.slab_design.SlabDesignOutput(**data)[source]
Bases:
BaseModelOutput schema for slab design results.
-
inputs:
SlabDesignInput
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
inputs:
- class api.app.calculators.concrete.slab_design.SlabDesignCalculator[source]
Bases:
BaseCalculatorCalculator for concrete slab design per IS 456:2000.
Supports both one-way and two-way slab design with comprehensive coefficient tables and support conditions. 2.0.0 Updates:
- __init__()[source]
Initialize the calculator.
- Parameters:
calculator_type – Type identifier for the calculator
version – Calculator version
- property input_schema: Type[SlabDesignInput]
Return the Pydantic schema for input validation.
- property output_schema: Type[SlabDesignOutput]
Return the Pydantic schema for output formatting.
- get_twoway_coefficients(support_condition, span_ratio)[source]
Get moment coefficients for two-way slab with interpolation per IS 456 Table 10.4.
- get_twoway_shear_coefficients(support_condition, span_ratio)[source]
Get shear coefficients for two-way slab with interpolation per IS 456 Table 10.5.
- required_steel_area(M_kNm, b, d, fck, fy)[source]
Calculate required steel area per IS 456 Cl 38.1.
- Return type:
- get_slab_depth_factor(d)[source]
Get depth factor per IS 456 Cl 40.2.1.1 with linear interpolation.
Reference: IS 456:2000 Table 19 (enhancement factor)
- Return type:
- calculate_modulus_of_elasticity_concrete(fck)[source]
Calculate modulus of elasticity of concrete per IS 456 Cl 6.2.3.1.
Reference: IS 456:2000 Clause 6.2.3.1 Ec = 5000 * sqrt(fck) MPa
- Return type:
- calculate_crack_width_via_module(b, h, d, cover, db, spacing, As, M_service_kNm, concrete_grade, exposure='moderate')[source]
Calculate crack width using the standalone CrackWidthCalculator module.
Reference: IS 456:2000 Annex F (via crack_width.py)
- Parameters:
b (
float) – Width of section (mm)h (
float) – Overall depth (mm)d (
float) – Effective depth (mm)cover (
float) – Clear cover (mm)db (
float) – Diameter of bar (mm)spacing (
float) – Bar spacing (mm)As (
float) – Area of steel (mm²)M_service_kNm (
float) – Service moment (kN-m)concrete_grade (
str) – Concrete grade string (e.g., “M25”)exposure (
str) – Exposure condition (moderate/severe/extreme)
- Return type:
- Returns:
Dictionary with crack width results from CrackWidthCalculator
Crack Width Calculator
Calculate crack widths in reinforced concrete members following IS 456:2000.
Enhanced Crack Width Calculator per IS 456:2000 Annex F.
Provides contextual safety reporting based on crack width ranges.
- class api.app.calculators.concrete.crack_width.CrackWidthCalculator[source]
Bases:
BaseCalculatorIS 456:2000 Annex F crack width calculation with contextual safety.
Safety Reporting: - < 0.1mm: SAFE for all exposures - 0.1-0.2mm: SAFE for moderate & severe only - 0.2-0.3mm: SAFE for moderate only - > 0.3mm: UNSAFE for all exposures
-
ALLOWABLE_CRACK_WIDTH:
ClassVar[Dict[str,float]] = {'extreme': 0.1, 'moderate': 0.3, 'severe': 0.2}
- E_S = 200000.0
- validate_inputs(raw_inputs)[source]
Validate input parameters for crack width calculation.
Since this calculator uses Dict-based validation instead of Pydantic, we override the base class validation to perform manual validation.
- calculate(inputs)[source]
Main calculation method.
- Parameters:
inputs (
Dict[str,Any]) – Dictionary with keys (frontend format): - element_type (str): “beam” or “slab” - b (float): Width of beam (mm) - depth (float): Overall depth (mm) - c (float): Clear cover (mm) - f_ck (float): Characteristic compressive strength (MPa) - f_y (float): Yield strength of steel (MPa) - m (float): Service moment for beam (kN-m) - m_slab (float): Service moment for slab (kN-m/m) - num_bars1 (int): Number of bars in layer 1 - db1 (float): Diameter of layer 1 bars (mm) - num_bars2 (int): Number of bars in layer 2 - db2 (float): Diameter of layer 2 bars (mm) - spacing (float): Bar spacing for slab (mm) - db_slab (float): Bar diameter for slab (mm)- Return type:
- Returns:
Dictionary with crack width results and contextual safety
-
ALLOWABLE_CRACK_WIDTH:
Footing Design Calculators
Isolated Footing
Design isolated footings for columns following IS 456:2000.
StructEngine Isolated Footing Design - Enhanced Calculator v4.2.0 IS 456:2000 Compliance Implementation
Complete implementation of all 7 critical improvements: 1. Load Transfer Check (IS 456 Cl. 34.4) 2. Water Table Calculation Alignment 3. Shear Force Inputs (Vx, Vy) 4. Gross Bearing Capacity 5. SBC Increase Factors 6. Safety Factors Alignment (FOS=1.2, 1.5) 7. Load Combination Iteration
- class api.app.calculators.concrete.footing_types.isolated_footing.LoadCombinationType(*values)[source]
-
Load combination types per IS 456 and IS 1893
- DEAD_LIVE = 'DEAD_LIVE'
- DEAD_LIVE_EQ_X = 'DEAD_LIVE_EQ_X'
- DEAD_LIVE_EQ_Y = 'DEAD_LIVE_EQ_Y'
- DEAD_LIVE_WIND = 'DEAD_LIVE_WIND'
- DEAD_ONLY = 'DEAD_ONLY'
- class api.app.calculators.concrete.footing_types.isolated_footing.SafetyStatus(*values)[source]
-
Status enumeration for safety checks
- SAFE = 'SAFE'
- UNSAFE = 'UNSAFE'
- CRITICAL = 'CRITICAL'
- class api.app.calculators.concrete.footing_types.isolated_footing.IsolatedFootingInput(**data)[source]
Bases:
BaseModelEnhanced input schema for isolated footing design Aligned with IS 456:2000 requirements
Implements: - Step 3: Shear Force Inputs (Vx, Vy) - Step 5: Load Combination Type - Step 8: Live Load Reduction & Surcharge Load
-
load_combination:
LoadCombinationType
- class Config[source]
Bases:
objectPydantic config
-
json_schema_extra:
ClassVar[Dict[str,Any]] = {'example': {'axial_load': 4158.74, 'clear_cover': 40, 'column_depth': 1000, 'column_width': 850, 'concrete_grade': 'M25', 'footing_depth': 775, 'footing_length': 3400, 'footing_width': 3250, 'founding_depth': 4.0, 'friction_coefficient': 0.5, 'ground_water_level': 10.0, 'length_width_ratio': 1.5, 'live_load_reduction': 0, 'load_combination': 'DEAD_LIVE', 'moment_x': 289.18, 'moment_y': 114.48, 'shear_x': 0, 'shear_y': 0, 'soil_bearing_capacity': 300, 'soil_density': 18, 'steel_grade': 'Fe415', 'surcharge_load': 0}}
-
json_schema_extra:
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'axial_load': 4158.74, 'clear_cover': 40, 'column_depth': 1000, 'column_width': 850, 'concrete_grade': 'M25', 'footing_depth': 775, 'footing_length': 3400, 'footing_width': 3250, 'founding_depth': 4.0, 'friction_coefficient': 0.5, 'ground_water_level': 10.0, 'length_width_ratio': 1.5, 'live_load_reduction': 0, 'load_combination': 'DEAD_LIVE', 'moment_x': 289.18, 'moment_y': 114.48, 'shear_x': 0, 'shear_y': 0, 'soil_bearing_capacity': 300, 'soil_density': 18, 'steel_grade': 'Fe415', 'surcharge_load': 0}}}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
load_combination:
- class api.app.calculators.concrete.footing_types.isolated_footing.IsolatedFootingOutput(**data)[source]
Bases:
BaseModelEnhanced output schema for isolated footing design IS 456:2000 Compliant with all 7 improvements
-
status:
SafetyStatus
-
pressure_check_status:
SafetyStatus
-
buoyancy_check_status:
SafetyStatus
-
sliding_check_status:
SafetyStatus
-
overturning_check_status:
SafetyStatus
-
load_transfer_check_status:
SafetyStatus
-
one_way_shear_status:
SafetyStatus
-
punching_shear_status:
SafetyStatus
-
dev_length_status_x:
SafetyStatus
-
dev_length_status_y:
SafetyStatus
- model_config: ClassVar[ConfigDict] = {'json_encoders': {<class 'datetime.datetime'>: <function IsolatedFootingOutput.Config.<lambda>>}}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
status:
- class api.app.calculators.concrete.footing_types.isolated_footing.EnhancedIsolatedFootingCalculator(inputs)[source]
Bases:
objectEnhanced Isolated Footing Calculator with IS 456:2000 Compliance
-
CONCRETE_GRADES:
ClassVar[Dict[str,int]] = {'M15': 15, 'M20': 20, 'M25': 25, 'M30': 30, 'M35': 35, 'M40': 40, 'M45': 45, 'M50': 50}
-
STEEL_GRADES:
ClassVar[Dict[str,Dict[str,int]]] = {'Fe415': {'fy': 415, 'modulus': 200000}, 'Fe500': {'fy': 500, 'modulus': 200000}, 'Fe550': {'fy': 550, 'modulus': 200000}}
- FOS_SLIDING = 1.2
- FOS_OVERTURNING = 1.5
- FOS_BUOYANCY = 1.4
-
LOAD_COMBINATIONS:
ClassVar[Dict[LoadCombinationType,Dict[str,Any]]] = {LoadCombinationType.DEAD_LIVE: {'dead_factor': 1.35, 'description': 'Dead + Live Loads (Normal)', 'live_factor': 1.5, 'sbc_adjustment': 1.0}, LoadCombinationType.DEAD_LIVE_EQ_X: {'dead_factor': 1.35, 'description': 'Dead + Live + Seismic-X', 'live_factor': 1.5, 'sbc_adjustment': 1.25}, LoadCombinationType.DEAD_LIVE_EQ_Y: {'dead_factor': 1.35, 'description': 'Dead + Live + Seismic-Y', 'live_factor': 1.5, 'sbc_adjustment': 1.25}, LoadCombinationType.DEAD_LIVE_WIND: {'dead_factor': 1.35, 'description': 'Dead + Live + Wind', 'live_factor': 1.5, 'sbc_adjustment': 1.25}, LoadCombinationType.DEAD_ONLY: {'dead_factor': 1.0, 'description': 'Dead Load Only', 'live_factor': 0, 'sbc_adjustment': 1.0}}
-
CONCRETE_GRADES:
- class api.app.calculators.concrete.footing_types.isolated_footing.IsolatedFootingCalculator[source]
Bases:
BaseCalculatorWrapper for EnhancedIsolatedFootingCalculator to fit BaseCalculator pattern
- __init__()[source]
Initialize the calculator.
- Parameters:
calculator_type – Type identifier for the calculator
version – Calculator version
- property input_schema: Type[IsolatedFootingInput]
Return the Pydantic schema for input validation.
- property output_schema: Type[IsolatedFootingOutput]
Return the Pydantic schema for output formatting.
Retaining Wall Calculator
Design reinforced concrete retaining walls following IS 456:2000.
Retaining Wall Design Calculator - IS 456:2000
Main retaining wall design calculator that dispatches to specific retaining wall type calculators based on user selection. Provides unified interface for all retaining wall design types.
- class api.app.calculators.concrete.retaining_wall_design.RetainingWallDesignCalculator[source]
Bases:
BaseCalculatorMain Retaining Wall Design Calculator
Dispatches to specific retaining wall calculators based on type: - Cantilever Retaining Wall - Counterfort Retaining Wall (future implementation)