Skip to content

formula_8_32

codes.eurocode.fpr_en_1992_1_1_2023.chapter_8_ultimate_limit_states.formula_8_32

Formula 8.32 from FprEN 1992-1-1:2023: Chapter 8: Ultimate limit states (ULS).

Classes:

codes.eurocode.fpr_en_1992_1_1_2023.chapter_8_ultimate_limit_states.formula_8_32.Form8Dot32DesignShearStressResistanceWithNormalForce

Form8Dot32DesignShearStressResistanceWithNormalForce(
    tau_rdc_0: MPA,
    k_1: DIMENSIONLESS,
    sigma_cp: MPA,
    tau_rdc_min: MPA,
    tau_rdc_max: MPA,
)

Bases: Formula

Class representing formula 8.32 for the calculation of the design value of the shear stress resistance of members without shear reinforcement, considering the effect of compressive normal forces.

[\(\tau_{Rd,c}\)] Design value of the shear stress resistance, considering the effect of compressive normal forces [\(MPa\)].

FprEN 1992-1-1:2023 (E) art 8.2.2 (5) - Formula (8.32)

The standard offers this as an alternative to Formula (8.27) in combination with Formula (8.31). It is printed as a single expression enclosed by a lower and an upper bound, which is implemented as a maximum against [\(\tau_{Rdc,min}\)] followed by a minimum against [\(\tau_{Rdc,max}\)]. That order only matters for the degenerate input where the lower bound exceeds the upper one, in which case the upper bound wins. The standard assumes this cannot happen and prints no rule for it, so it is defined here rather than rejected.

Parameters:

  • tau_rdc_0 (MPA) –

    [\(\tau_{Rdc,0}\)] Design value of the shear stress resistance without the effect of compressive normal forces according to Formula (8.33), see Form8Dot33ShearStressResistanceWithoutAxialForce [\(MPa\)].

  • k_1 (DIMENSIONLESS) –

    [\(k_1\)] Factor according to Formula (8.34), see Form8Dot34FactorK1, unless the National Annex gives another value. It is not required to be positive and is not guarded here: Formula (8.34) prints only an upper bound, and its eccentricity [\(e_p\)] is defined as positive towards the tensile side, so a tendon eccentric towards the compression side gives a negative [\(e_p\)] and can drive [\(k_1\)] below zero [\(-\)].

  • sigma_cp (MPA) –

    [\(\sigma_{cp}\)] Normal stress, defined by the standard as [\(N_{Ed} / A_c\)] with [\(A_c\)] the area of the concrete cross-section. Compression is negative. The standard does not say so anywhere near this formula, but the printed minus sign settles it: compression has to raise the shear stress resistance, and with a positive [\(k_1\)] the term [\(- k_1 \cdot \sigma_{cp}\)] only does that for a negative [\(\sigma_{cp}\)]. It also follows from [\(N_{Ed}\)] itself, which this clause treats as positive in tension, as Formula (8.31) does.

    Note that the sign of this term flipped between the two generations of the code. EN 1992-1-1:2004 prints [\(+ k_1 \cdot \sigma_{cp}\)] with compression positive, so a value carried over from a calculation to that code has the wrong sign here [\(MPa\)].

  • tau_rdc_min (MPA) –

    [\(\tau_{Rdc,min}\)] Minimum shear stress resistance according to Formula (8.20), see Form8Dot20MinimumShearStressResistance [\(MPa\)].

  • tau_rdc_max (MPA) –

    [\(\tau_{Rdc,max}\)] Maximum shear stress resistance according to Formula (8.35), see Form8Dot35MaximumShearStressResistance [\(MPa\)].

Source code in blueprints/codes/eurocode/fpr_en_1992_1_1_2023/chapter_8_ultimate_limit_states/formula_8_32.py
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
def __init__(
    self,
    tau_rdc_0: MPA,
    k_1: DIMENSIONLESS,
    sigma_cp: MPA,
    tau_rdc_min: MPA,
    tau_rdc_max: MPA,
) -> None:
    r"""[$\tau_{Rd,c}$] Design value of the shear stress resistance, considering the effect of compressive
    normal forces [$MPa$].

    FprEN 1992-1-1:2023 (E) art 8.2.2 (5) - Formula (8.32)

    The standard offers this as an alternative to Formula (8.27) in combination with Formula (8.31). It is
    printed as a single expression enclosed by a lower and an upper bound, which is implemented as a
    maximum against [$\tau_{Rdc,min}$] followed by a minimum against [$\tau_{Rdc,max}$]. That order only
    matters for the degenerate input where the lower bound exceeds the upper one, in which case the
    upper bound wins. The standard assumes this cannot happen and prints no rule for it, so it is
    defined here rather than rejected.

    Parameters
    ----------
    tau_rdc_0 : MPA
        [$\tau_{Rdc,0}$] Design value of the shear stress resistance without the effect of compressive
        normal forces according to Formula (8.33), see Form8Dot33ShearStressResistanceWithoutAxialForce [$MPa$].
    k_1 : DIMENSIONLESS
        [$k_1$] Factor according to Formula (8.34), see Form8Dot34FactorK1, unless the National Annex gives
        another value. It is not required to be positive and is not guarded here: Formula (8.34) prints only
        an upper bound, and its eccentricity [$e_p$] is defined as positive towards the tensile side, so a
        tendon eccentric towards the compression side gives a negative [$e_p$] and can drive [$k_1$] below
        zero [$-$].
    sigma_cp : MPA
        [$\sigma_{cp}$] Normal stress, defined by the standard as [$N_{Ed} / A_c$] with [$A_c$] the area of
        the concrete cross-section. **Compression is negative.** The standard does not say so anywhere near
        this formula, but the printed minus sign settles it: compression has to raise the shear stress
        resistance, and with a positive [$k_1$] the term [$- k_1 \cdot \sigma_{cp}$] only does that for a
        negative [$\sigma_{cp}$]. It also follows from [$N_{Ed}$] itself, which this clause treats as
        positive in tension, as Formula (8.31) does.

        Note that the sign of this term flipped between the two generations of the code. EN 1992-1-1:2004
        prints [$+ k_1 \cdot \sigma_{cp}$] with compression positive, so a value carried over from a
        calculation to that code has the wrong sign here [$MPa$].
    tau_rdc_min : MPA
        [$\tau_{Rdc,min}$] Minimum shear stress resistance according to Formula (8.20), see
        Form8Dot20MinimumShearStressResistance [$MPa$].
    tau_rdc_max : MPA
        [$\tau_{Rdc,max}$] Maximum shear stress resistance according to Formula (8.35), see
        Form8Dot35MaximumShearStressResistance [$MPa$].
    """
    super().__init__()
    self.tau_rdc_0 = tau_rdc_0
    self.k_1 = k_1
    self.sigma_cp = sigma_cp
    self.tau_rdc_min = tau_rdc_min
    self.tau_rdc_max = tau_rdc_max

codes.eurocode.fpr_en_1992_1_1_2023.chapter_8_ultimate_limit_states.formula_8_32.Form8Dot32DesignShearStressResistanceWithNormalForce.latex

latex(n: int = 3) -> LatexFormula

Returns LatexFormula object for formula 8.32.

Source code in blueprints/codes/eurocode/fpr_en_1992_1_1_2023/chapter_8_ultimate_limit_states/formula_8_32.py
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
def latex(self, n: int = 3) -> LatexFormula:
    """Returns LatexFormula object for formula 8.32."""
    _equation: str = r"\min\left(\max\left(\tau_{Rdc,0} - k_1 \cdot \sigma_{cp}, \tau_{Rdc,min}\right), \tau_{Rdc,max}\right)"
    _numeric_equation: str = latex_replace_symbols(
        template=_equation,
        replacements={
            r"\tau_{Rdc,0}": f"{self.tau_rdc_0:.{n}f}",
            r"k_1": f"{self.k_1:.{n}f}",
            r"\sigma_{cp}": r"\left(" + f"{self.sigma_cp:.{n}f}" + r"\right)",
            r"\tau_{Rdc,min}": f"{self.tau_rdc_min:.{n}f}",
            r"\tau_{Rdc,max}": f"{self.tau_rdc_max:.{n}f}",
        },
        unique_symbol_check=False,
    )
    _numeric_equation_with_units: str = latex_replace_symbols(
        template=_equation,
        replacements={
            r"\tau_{Rdc,0}": rf"{self.tau_rdc_0:.{n}f} \ MPa",
            r"k_1": f"{self.k_1:.{n}f}",
            r"\sigma_{cp}": r"\left(" + rf"{self.sigma_cp:.{n}f} \ MPa" + r"\right)",
            r"\tau_{Rdc,min}": rf"{self.tau_rdc_min:.{n}f} \ MPa",
            r"\tau_{Rdc,max}": rf"{self.tau_rdc_max:.{n}f} \ MPa",
        },
        unique_symbol_check=False,
    )
    # The value of the expression before the two bounds are applied. The line above already shows the
    # arithmetic, so what this adds is whether a bound was active: it differs from the result exactly then.
    _intermediate: str = f"{self.tau_rdc_0 - self.k_1 * self.sigma_cp:.{n}f}"

    return LatexFormula(
        return_symbol=r"\tau_{Rd,c}",
        result=f"{self:.{n}f}",
        intermediate_result=_intermediate,
        equation=_equation,
        numeric_equation=_numeric_equation,
        numeric_equation_with_units=_numeric_equation_with_units,
        comparison_operator_label="=",
        unit="MPa",
    )