Concrete Mix Design using Indian Standards Module
The main module for computing concrete mix designs as per Indian standards.
Concrete Mix Design using IS 456 and 10262
- class civilutils.indian_standards.concrete.ConcreteGrade(*values)[source]
Bases:
EnumConcrete grades as per IS 456.
- Parameters:
Enum (str) – The concrete grade designation.
- M10 = 'M10'
- M15 = 'M15'
- M20 = 'M20'
- M25 = 'M25'
- M30 = 'M30'
- M35 = 'M35'
- M40 = 'M40'
- M45 = 'M45'
- M50 = 'M50'
- M55 = 'M55'
- class civilutils.indian_standards.concrete.MaximumNominalSize(*values)[source]
Bases:
EnumMaximum nominal sizes of aggregates as per IS 456.
- Parameters:
Enum (int) – The maximum nominal size in mm.
- SIZE_10 = 10
- SIZE_20 = 20
- SIZE_40 = 40
- class civilutils.indian_standards.concrete.CoarseAggregateType(*values)[source]
Bases:
EnumCoarse aggregate types as per IS 456.
- Parameters:
Enum (str) – The coarse aggregate type designation.
- CRUSHED_STONE = 'Crushed Stone'
- GRAVEL = 'Gravel'
- ROUNDED_GRAVEL = 'Rounded Gravel'
- CRUSHED_ANGULAR = 'Crushed Angular'
- class civilutils.indian_standards.concrete.FineAggregateZone(*values)[source]
Bases:
EnumFine aggregate zones as per IS 456.
- Parameters:
Enum (str) – The fine aggregate zone designation.
- ZONE_I = 'Zone I'
- ZONE_II = 'Zone II'
- ZONE_III = 'Zone III'
- ZONE_IV = 'Zone IV'
- class civilutils.indian_standards.concrete.ExposureCondition(*values)[source]
Bases:
EnumEnvironmental exposure categories based on IS456 (Table 3).
These categories are used to select design limits (for example maximum water/cement ratio, minimum cement content and cover) according to the service environment the concrete will face.
Members:
MILD: Concrete surfaces protected against weather or aggressive conditions (e.g., sheltered or protected locations).
MODERATE: Exposed to condensation, rain or continuous wetting (including contact with non-aggressive soil/ground water); sheltered from severe weather.
SEVERE: Exposed to severe rain, alternate wetting and drying, occasional freezing when wet, immersion in seawater or coastal environment, or saturated salt air.
VERY_SEVERE: Exposed to sea water spray, corrosive fumes, severe freezing, or concrete in contact with or buried under aggressive subsoil/ground water.
EXTREME: Members in tidal zones or in direct contact with liquid or solid aggressive chemicals.
- MILD = 'Mild'
- MODERATE = 'Moderate'
- SEVERE = 'Severe'
- VERY_SEVERE = 'Very Severe'
- EXTREME = 'Extreme'
- class civilutils.indian_standards.concrete.Materials(*values)[source]
Bases:
EnumMaterial types as per IS 456.
- Parameters:
Enum (str) – The material designation.
- CEMENT = 'Cement'
- FINE_AGGREGATE = 'Fine Aggregate'
- COARSE_AGGREGATE = 'Coarse Aggregate'
- WATER = 'Water'
- ADMIXTURE = 'Admixture'
- FLY_ASH = 'Fly Ash'
- class civilutils.indian_standards.concrete.ChemicalAdmixture(*values)[source]
Bases:
EnumChemical admixtures as per IS 456.
- Parameters:
Enum (str) – The chemical admixture designation.
- SUPERPLASTICIZER = 'Superplasticizer'
- PLASTICIZER = 'Plasticizer'
- class civilutils.indian_standards.concrete.MineralAdmixture(*values)[source]
Bases:
EnumMineral admixtures as per IS 456.
- Parameters:
Enum (str) – The mineral admixture designation.
- FLY_ASH = ('Fly Ash', 30.0)
- class civilutils.indian_standards.concrete.SpecificGravity(material, value)[source]
Bases:
objectSpecific gravity of materials as per IS 456.
- Parameters:
material (Materials)
value (float)
- class civilutils.indian_standards.concrete.ConcreteMixDesign(concrete_grade, exposure_condition, specific_gravities, maximum_nominal_size=MaximumNominalSize.SIZE_20, maximum_cement_content=450.0, is_pumpable=True, chemical_admixture=None, chemical_admixture_percentage=None, coarse_aggregate_type=CoarseAggregateType.CRUSHED_ANGULAR, coarse_aggregate_water_absorption=0.0, coarse_aggregate_surface_moisture=0.0, fine_aggregate_zone=FineAggregateZone.ZONE_II, fine_aggregate_surface_moisture=0.0, fine_aggregate_water_absorption=0.0, slump_mm=50.0, mineral_admixture=None, mineral_admixture_percentage=None)[source]
Bases:
objectConcrete mix design parameters as per IS 10262 and IS 456.
- Parameters:
concrete_grade (ConcreteGrade)
exposure_condition (ExposureCondition)
specific_gravities (list[SpecificGravity])
maximum_nominal_size (MaximumNominalSize)
maximum_cement_content (float)
is_pumpable (str | bool)
chemical_admixture (ChemicalAdmixture | None)
chemical_admixture_percentage (float | None)
coarse_aggregate_type (CoarseAggregateType)
coarse_aggregate_water_absorption (float)
coarse_aggregate_surface_moisture (float)
fine_aggregate_zone (FineAggregateZone)
fine_aggregate_surface_moisture (float)
fine_aggregate_water_absorption (float)
slump_mm (float)
mineral_admixture (MineralAdmixture | None)
mineral_admixture_percentage (float | None)
- __init__(concrete_grade, exposure_condition, specific_gravities, maximum_nominal_size=MaximumNominalSize.SIZE_20, maximum_cement_content=450.0, is_pumpable=True, chemical_admixture=None, chemical_admixture_percentage=None, coarse_aggregate_type=CoarseAggregateType.CRUSHED_ANGULAR, coarse_aggregate_water_absorption=0.0, coarse_aggregate_surface_moisture=0.0, fine_aggregate_zone=FineAggregateZone.ZONE_II, fine_aggregate_surface_moisture=0.0, fine_aggregate_water_absorption=0.0, slump_mm=50.0, mineral_admixture=None, mineral_admixture_percentage=None)[source]
Initialize the concrete mix design parameters.
- Parameters:
concrete_grade (ConcreteGrade) – The grade of concrete (e.g. M20, M25, etc.).
exposure_condition (ExposureCondition) – The exposure condition (e.g. Mild, Moderate, Severe).
specific_gravities (list[SpecificGravity]) – The specific gravities of the materials.
maximum_nominal_size (MaximumNominalSize, optional) – The maximum nominal size of the aggregate. Defaults to MaximumNominalSize.SIZE_20.
maximum_cement_content (float, optional) – The maximum cement content (kg/m3). Defaults to 450.0.
is_pumpable (str | bool, optional) – Whether the concrete is pumpable. Defaults to True.
chemical_admixture (ChemicalAdmixture | None, optional) – The type of chemical admixture used. Defaults to None.
chemical_admixture_percentage (float | None, optional) – The percentage of chemical admixture used. Defaults to None.
coarse_aggregate_type (CoarseAggregateType, optional) – The type of coarse aggregate used. Defaults to CoarseAggregateType.CRUSHED_ANGULAR.
coarse_aggregate_water_absorption (float, optional) – The water absorption of coarse aggregate (%). Defaults to 0.0.
coarse_aggregate_surface_moisture (float, optional) – The surface moisture of coarse aggregate (%). Defaults to 0.0.
fine_aggregate_zone (FineAggregateZone, optional) – The zone of fine aggregate as per IS 383. Defaults to FineAggregateZone.ZONE_II.
fine_aggregate_surface_moisture (float, optional) – The surface moisture of fine aggregate (%). Defaults to 0.0.
fine_aggregate_water_absorption (float, optional) – The water absorption of fine aggregate (%). Defaults to 0.0.
slump_mm (float, optional) – The slump of concrete (mm). Defaults to 50.0.
mineral_admixture (MineralAdmixture | None, optional) – The type of mineral admixture used. Defaults to None.
mineral_admixture_percentage (float | None, optional) – The percentage of mineral admixture used. Defaults to None.
- Raises:
ValueError – If any of the parameters are invalid.
- calculate_volume_based_on_mass_and_specific_gravity(mass, specific_gravity, round_value=3)[source]
Calculate the volume based on mass and specific gravity.
- Parameters:
mass (float) – The mass of the material.
specific_gravity (float) – The specific gravity of the material.
round_value (int) – The number of decimal places to round the result.
- Returns:
The volume of the material.
- Return type:
float
- compute_mix_design(display_result=False)[source]
Compute the concrete mix design based on IS 456 and IS 10262.
- Parameters:
display_result (bool, optional) – Whether to display the calculation results. Defaults to False.
- Returns:
A dictionary containing the mix design parameters.
- Return type:
dict
- compute_mix_design_for_volume(volume_m3, display_result=False)[source]
Compute mix quantities for a specified volume (multiples of the 1 m^3 design).
This method calls compute_mix_design() to obtain quantities per 1 m^3 and scales the masses and volumes by the requested volume_m3.
- Parameters:
volume_m3 (float) – Target concrete volume in m^3 (must be > 0).
display_result (bool, optional) – Whether to print a summary similar to compute_mix_design.
- Returns:
A dictionary containing scaled mix design parameters for the requested volume.
- Return type:
dict