Download examples
You can download the examples in your chosen format using the buttons on the right.
Nominal Concrete Cover¶
Calculating the nominal concrete cover is an important step in the design of reinforced concrete structures. The nominal concrete cover is the minimum thickness of concrete that separates the reinforcing steel from the environment. This thickness is necessary to protect the steel from corrosion and to ensure the durability of the structure.
Blueprints provides a simple way to calculate the nominal concrete cover using EN 1992-1-1:2004.
This example can be followed step by step by first importing the necessary classes and functions.
from blueprints.checks.eurocode.concrete.nominal_concrete_cover import NominalConcreteCover
from blueprints.codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover.constants import (
AbrasionClass,
CastingSurface,
NominalConcreteCoverConstants,
)
from blueprints.codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover.table_4_3 import Table4Dot3ConcreteStructuralClass
from blueprints.materials.concrete import ConcreteMaterial, ConcreteStrengthClass
Define the concrete material properties to be used in the calculation:
concrete_material = ConcreteMaterial(concrete_class=ConcreteStrengthClass.C30_37)
Calculate the structural class by its exposure classes, design working life and other parameters:
structural_class = Table4Dot3ConcreteStructuralClass(
exposure_classes=["XC1"],
design_working_life=100,
concrete_material=concrete_material,
plate_geometry=False,
quality_control=False,
)
Start the nominal concrete cover calculation:
calculation = NominalConcreteCover(
reinforcement_diameter=32,
nominal_max_aggregate_size=32,
constants=NominalConcreteCoverConstants(),
structural_class=structural_class, # or by its number, for example 4 in the case of S4
carbonation="XC1",
delta_c_dur_gamma=10,
delta_c_dur_add=0,
casting_surface=CastingSurface.PREPARED_GROUND,
uneven_surface=False,
abrasion_class=AbrasionClass.NA,
)
Then just print the results:
print(
f"Structural class: {structural_class}\n\n"
f"C,min,dur: {calculation.c_min_dur()} mm\n"
f"C,min,b: {calculation.c_min_b()} mm\n"
f"C,min,total: {calculation.c_min_total()} mm\n"
f"\tCover increase due to uneven surface: {calculation.cover_increase_for_uneven_surface()} mm\n"
f"\tCover increase due to abrasion: {calculation.cover_increase_for_abrasion_class()} mm\n\n"
f"Nominal concrete cover: {calculation.value()} mm\n"
f"\tC,nom: {calculation.c_nom()} mm\n"
f"\tMinimum cover with regard to casting surface: {calculation.minimum_cover_with_regard_to_casting_surface()} mm\n\n"
)
Structural class: S5 C,min,dur: 20.0 mm C,min,b: 32.0 mm C,min,total: 32.0 mm Cover increase due to uneven surface: 0 mm Cover increase due to abrasion: 0 mm Nominal concrete cover: 60.0 mm C,nom: 42.0 mm Minimum cover with regard to casting surface: 60.0 mm
You could also use the NominalConcreteCover to get a latex representation of the calculation by using:
print(calculation.latex())
\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{float}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{icomma}
\usepackage{setspace}
\usepackage{xcolor}
\usepackage{titlesec}
\usepackage{helvet}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\geometry{a4paper, margin=1in}
\setstretch{1.3}
\newcommand{\txt}[1]{#1}
\setlength{\parskip}{0pt}
\setlength{\abovedisplayskip}{12pt}
\setlength{\belowdisplayskip}{12pt}
\setlist{nosep}
\definecolor{blueprintblue}{RGB}{0,40,85}
\makeatletter
\renewcommand{\maketitle}{%
\begin{center}%
{\sffamily\fontsize{18}{19}\selectfont\bfseries\color{blueprintblue}\@title}%
\vspace{4pt}%
\end{center}%
}
\makeatother
\titleformat{\section}
{\sffamily\fontsize{14}{15}\selectfont\bfseries\color{blueprintblue}}
{\thesection}{1em}{}
\titlespacing*{\section}{0pt}{8pt}{4pt}
\titleformat{\subsection}
{\sffamily\fontsize{12}{13}\selectfont\bfseries\color{blueprintblue}}
{\thesubsection}{1em}{}
\titlespacing*{\subsection}{0pt}{8pt}{4pt}
\titleformat{\subsubsection}
{\sffamily\fontsize{12}{13}\selectfont\bfseries\color{blueprintblue}}
{\thesubsubsection}{1em}{}
\titlespacing*{\subsubsection}{0pt}{4pt}{0pt}
\parindent 0in
\begin{document}
\title{Nominal concrete cover according to art. 4.4.1 from EN 1992-1-1:2004}
\date{}
\maketitle
\txt{Minimum concrete cover with regard to bond according to table 4.2:}
\begin{equation} c_{min,b} = \text{(equivalent) rebar diameter} = 32 = 32.0 \tag{EN 1992-1-1:2004 4.2} \end{equation}
\newline\newline
\txt{Minimum concrete cover with regard to durability according to table 4.4N:}
\begin{equation} c_{min,dur} = \text{structural class S5 and exposure classes (XC1)} = 20.0 \tag{EN 1992-1-1:2004 4.4N} \end{equation}
\newline\newline
\txt{Minimum concrete cover according to formula 4.2:}
\begin{equation} c_{min} = \max \left\{c_{min,b}; c_{min,dur}+\Delta c_{dur,\gamma}-\Delta c_{dur,st}-\Delta c_{dur,add}; 10 \ mm\right\} = \max \left\{32.0; 20.0+10-0-0; 10\right\} = 32.0 \tag{EN 1992-1-1:2004 4.2} \end{equation}
\newline\newline
\txt{Total minimum concrete cover including adjustments for uneven surface and abrasion class (art. 4.4.1.2 (11) and (13)):}
\begin{equation} c_{min,total} = c_{min} + \Delta c_{uneven\ surface} + \Delta c_{abrasion\ class} = 32.0 + 0.0 + 0.0 = 32.0 \ mm \notag \end{equation}
\newline\newline
\txt{Nominal concrete cover according to formula 4.1:}
\begin{equation} c_{nom} = c_{min}+\Delta c_{dev} = 32.0+10 = 42.0 \tag{EN 1992-1-1:2004 4.1} \end{equation}
\newline\newline
\txt{Minimum cover with regard to casting surface according to art. 4.4.1.3 (4): 60.0 mm}
\newline\newline
\textbf{Governing nominal concrete cover:}
\begin{equation} c_{nom} = \max \left\{42.0; 60.0\right\} = 60.0 \ mm \notag \end{equation}
\end{document}
You could use an external service like lagrida to render the latex code or use this output inside a latex or word document of your choice.