Skip to content

formula_8_31

codes.eurocode.fpr_en_1992_1_1_2023.chapter_8_ultimate_limit_states.formula_8_31

Formula 8.31 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_31.Form8Dot31AxialForceCoefficient

Form8Dot31AxialForceCoefficient(n_ed: N, v_ed: N, d: MM, a_cs: MM)

Bases: Formula

Class representing formula 8.31 for the calculation of the coefficient accounting for axial forces at the control section.

[\(k_{vp}\)] Coefficient by which the effective depth in Formula (8.27), or the mechanical shear span in Formula (8.29), is multiplied in the presence of axial forces [\(-\)].

FprEN 1992-1-1:2023 (E) art 8.2.2 (4) - Formula (8.31)

The standard prints the shear force in absolute value bars but the axial force without them, so the sign of [\(N_{Ed}\)] carries meaning and a negative value is valid: it lowers [\(k_{vp}\)]. The printed lower bound of 0.1 is implemented as a maximum.

Parameters:

  • n_ed (N) –

    [\(N_{Ed}\)] Design axial force acting at the control section, passed with its sign [\(N\)].

  • v_ed (N) –

    [\(V_{Ed}\)] Design shear force at the control section. Only its magnitude is used, so it may be passed signed [\(N\)].

  • d (MM) –

    [\(d\)] Effective depth [\(mm\)].

  • a_cs (MM) –

    [\(a_{cs}\)] Effective shear span with respect to the control section according to Formula (8.30), see Form8Dot30EffectiveShearSpan [\(mm\)].

Source code in blueprints/codes/eurocode/fpr_en_1992_1_1_2023/chapter_8_ultimate_limit_states/formula_8_31.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
def __init__(self, n_ed: N, v_ed: N, d: MM, a_cs: MM) -> None:
    r"""[$k_{vp}$] Coefficient by which the effective depth in Formula (8.27), or the mechanical shear span
    in Formula (8.29), is multiplied in the presence of axial forces [$-$].

    FprEN 1992-1-1:2023 (E) art 8.2.2 (4) - Formula (8.31)

    The standard prints the shear force in absolute value bars but the axial force without them, so the sign
    of [$N_{Ed}$] carries meaning and a negative value is valid: it lowers [$k_{vp}$]. The printed lower bound
    of 0.1 is implemented as a maximum.

    Parameters
    ----------
    n_ed : N
        [$N_{Ed}$] Design axial force acting at the control section, passed with its sign [$N$].
    v_ed : N
        [$V_{Ed}$] Design shear force at the control section. Only its magnitude is used, so it may be
        passed signed [$N$].
    d : MM
        [$d$] Effective depth [$mm$].
    a_cs : MM
        [$a_{cs}$] Effective shear span with respect to the control section according to Formula (8.30),
        see Form8Dot30EffectiveShearSpan [$mm$].
    """
    super().__init__()
    self.n_ed = n_ed
    self.v_ed = v_ed
    self.d = d
    self.a_cs = a_cs

codes.eurocode.fpr_en_1992_1_1_2023.chapter_8_ultimate_limit_states.formula_8_31.Form8Dot31AxialForceCoefficient.latex

latex(n: int = 3) -> LatexFormula

Returns LatexFormula object for formula 8.31.

Source code in blueprints/codes/eurocode/fpr_en_1992_1_1_2023/chapter_8_ultimate_limit_states/formula_8_31.py
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
def latex(self, n: int = 3) -> LatexFormula:
    """Returns LatexFormula object for formula 8.31."""
    _equation: str = r"\max\left(1 + \frac{N_{Ed}}{\left|V_{Ed}\right|} \cdot \frac{d}{3 \cdot a_{cs}}, 0.1\right)"
    _numeric_equation: str = latex_replace_symbols(
        template=_equation,
        replacements={
            r"N_{Ed}": f"{self.n_ed:.{n}f}",
            r"V_{Ed}": f"{self.v_ed:.{n}f}",
            r"a_{cs}": f"{self.a_cs:.{n}f}",
            r"{d}": "{" + f"{self.d:.{n}f}" + "}",
        },
        unique_symbol_check=False,
    )
    _numeric_equation_with_units: str = latex_replace_symbols(
        template=_equation,
        replacements={
            r"N_{Ed}": rf"{self.n_ed:.{n}f} \ N",
            r"V_{Ed}": rf"{self.v_ed:.{n}f} \ N",
            r"a_{cs}": rf"{self.a_cs:.{n}f} \ mm",
            r"{d}": "{" + rf"{self.d:.{n}f} \ mm" + "}",
        },
        unique_symbol_check=False,
    )
    return LatexFormula(
        return_symbol=r"k_{vp}",
        result=f"{self:.{n}f}",
        equation=_equation,
        numeric_equation=_numeric_equation,
        numeric_equation_with_units=_numeric_equation_with_units,
        comparison_operator_label="=",
        unit="-",
    )