Skip to content

circular

structural_sections.concrete.reinforced_concrete_sections.circular

Circular reinforced cross-section.

Classes:

structural_sections.concrete.reinforced_concrete_sections.circular.CircularReinforcedCrossSection

CircularReinforcedCrossSection(
    diameter: MM, concrete_material: ConcreteMaterial, cover: MM = DEFAULT_COVER
)

Bases: ReinforcedCrossSection

Representation of a reinforced circular concrete cross-section like a column.

Parameters:

  • diameter (MM) –

    The diameter of the circular cross-section [mm].

  • concrete_material (ConcreteMaterial) –

    Material properties of the concrete.

  • cover (MM, default: DEFAULT_COVER ) –

    The reinforcement cover for the cross-section [mm]. The default is 50 mm.

Initialize the circular reinforced concrete section.

Source code in blueprints/structural_sections/concrete/reinforced_concrete_sections/circular.py
32
33
34
35
36
37
38
39
40
41
42
43
44
def __init__(self, diameter: MM, concrete_material: ConcreteMaterial, cover: MM = DEFAULT_COVER) -> None:
    """Initialize the circular reinforced concrete section."""
    super().__init__(
        profile=CircularProfile(
            diameter=diameter,
            x=0,  # x=0 and y=0 to place the cross-section at the origin
            y=0,
        ),
        concrete_material=concrete_material,
    )
    self.diameter = diameter
    self.cover = cover
    self.plotter = CircularCrossSectionPlotter(cross_section=self)

structural_sections.concrete.reinforced_concrete_sections.circular.CircularReinforcedCrossSection.add_longitudinal_reinforcement_by_quantity

add_longitudinal_reinforcement_by_quantity(
    n: int,
    diameter: MM,
    material: ReinforcementSteelMaterial,
    cover: MM | None = None,
    start_angle: DEG = 90.0,
) -> None

Add longitudinal reinforcement to the cross-section based on the quantity configuration of rebars.

Parameters:

  • n (int) –

    Amount of longitudinal bars.

  • diameter (MM) –

    Diameter of the rebars [mm].

  • material (ReinforcementSteelMaterial) –

    Representation of the properties of reinforcement steel suitable for use with NEN-EN 1992-1-1.

  • cover (MM | None, default: None ) –

    Cover of the rebars [mm]. If not provided, the default cover is used.

  • start_angle (DEG, default: 90.0 ) –

    Starting position of the first rebar. Default is 90 degrees which is the top of the circle. 0 degrees is the right side of the circle. 180 degrees is the right side of the circle.

Source code in blueprints/structural_sections/concrete/reinforced_concrete_sections/circular.py
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
def add_longitudinal_reinforcement_by_quantity(
    self,
    n: int,
    diameter: MM,
    material: ReinforcementSteelMaterial,
    cover: MM | None = None,
    start_angle: DEG = 90.0,
) -> None:
    """Add longitudinal reinforcement to the cross-section based on the quantity configuration of rebars.

    Parameters
    ----------
    n: int
        Amount of longitudinal bars.
    diameter: MM
        Diameter of the rebars [mm].
    material : ReinforcementSteelMaterial
        Representation of the properties of reinforcement steel suitable for use with NEN-EN 1992-1-1.
    cover: MM, optional
        Cover of the rebars [mm]. If not provided, the default cover is used.
    start_angle: DEG
        Starting position of the first rebar. Default is 90 degrees which is the top of the circle.
        0 degrees is the right side of the circle. 180 degrees is the right side of the circle.
    """
    return self.add_reinforcement_configuration(
        configuration=ReinforcementByQuantity(
            diameter=diameter,
            material=material,
            n=n,
        ),
        line=self._get_reference_line,
        cover=cover,
        diameter=diameter,
        start_angle=start_angle,
    )

structural_sections.concrete.reinforced_concrete_sections.circular.CircularReinforcedCrossSection.add_stirrup_along_perimeter

add_stirrup_along_perimeter(
    diameter: MM,
    distance: MM,
    material: ReinforcementSteelMaterial,
    shear_check: bool = True,
    torsion_check: bool = True,
    mandrel_diameter_factor: DIMENSIONLESS | None = None,
    anchorage_length: MM = 0.0,
    relative_start_position: RATIO = 0.0,
    relative_end_position: RATIO = 1.0,
) -> StirrupConfiguration

Adds a stirrup configuration along the perimeter of the cross-section taking the covers into account. The created configuration goes around the longitudinal rebars (if any).

Use .add_stirrup_configuration() to add a stirrup configuration of any shape, size, and position (as long as it is inside the cross-section).

Parameters:

  • diameter (MM) –

    Diameter of the stirrups [mm].

  • distance (MM) –

    Longitudinal distance between stirrups [mm].

  • material (ReinforcementSteelMaterial) –

    Representation of the properties of reinforcement steel suitable for use with NEN-EN 1992-1-1

  • shear_check (bool, default: True ) –

    Take stirrup into account in shear check

  • torsion_check (bool, default: True ) –

    Take stirrup into account in torsion check

  • mandrel_diameter_factor (DIMENSIONLESS | None, default: None ) –

    Inner diameter of mandrel as multiple of stirrup diameter [-] (default: 4⌀ for ⌀<=16mm and 5⌀ for ⌀>16mm) Tabel 8.1Na NEN-EN 1992-1-1 Dutch National Annex.

  • anchorage_length (MM, default: 0.0 ) –

    Anchorage length [mm]

  • relative_start_position (RATIO, default: 0.0 ) –

    Relative position of the start of the stirrup configuration inside the cross-section (longitudinal direction). Value between 0 and 1. Default is 0 (start).

  • relative_end_position (RATIO, default: 1.0 ) –

    Relative position of the end of the stirrup configuration inside the cross-section (longitudinal direction). Value between 0 and 1. Default is 1 (end).

Returns:

  • StirrupConfiguration

    Newly created stirrup configuration inside the cross-section.

Source code in blueprints/structural_sections/concrete/reinforced_concrete_sections/circular.py
 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
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
def add_stirrup_along_perimeter(
    self,
    diameter: MM,
    distance: MM,
    material: ReinforcementSteelMaterial,
    shear_check: bool = True,
    torsion_check: bool = True,
    mandrel_diameter_factor: DIMENSIONLESS | None = None,
    anchorage_length: MM = 0.0,
    relative_start_position: RATIO = 0.0,
    relative_end_position: RATIO = 1.0,
) -> StirrupConfiguration:
    """Adds a stirrup configuration along the perimeter of the cross-section taking the covers into account. The created configuration goes around
    the longitudinal rebars (if any).

    Use .add_stirrup_configuration() to add a stirrup configuration of any shape, size, and position (as long as it is inside the cross-section).

    Parameters
    ----------
    diameter: MM
        Diameter of the stirrups [mm].
    distance: MM
        Longitudinal distance between stirrups [mm].
    material : ReinforcementSteelMaterial
        Representation of the properties of reinforcement steel suitable for use with NEN-EN 1992-1-1
    shear_check: bool
        Take stirrup into account in shear check
    torsion_check: bool
        Take stirrup into account in torsion check
    mandrel_diameter_factor: DIMENSIONLESS
        Inner diameter of mandrel as multiple of stirrup diameter [-]
        (default: 4⌀ for ⌀<=16mm and 5⌀ for ⌀>16mm) Tabel 8.1Na NEN-EN 1992-1-1 Dutch National Annex.
    anchorage_length: MM
        Anchorage length [mm]
    relative_start_position: RATIO
        Relative position of the start of the stirrup configuration inside the cross-section (longitudinal direction). Value between 0 and 1.
        Default is 0 (start).
    relative_end_position: RATIO
        Relative position of the end of the stirrup configuration inside the cross-section (longitudinal direction). Value between 0 and 1.
        Default is 1 (end).

    Returns
    -------
    StirrupConfiguration
        Newly created stirrup configuration inside the cross-section.
    """
    # create the stirrup configuration based on the covers present
    radius = self.diameter / 2 - self.cover - (diameter / 2)
    stirrup_geometry = Polygon([(radius * cos(angle), radius * sin(angle)) for angle in [2 * pi * i / 100 for i in range(100)]])

    # add the stirrup configuration
    return self.add_stirrup_configuration(
        StirrupConfiguration(
            geometry=stirrup_geometry,
            diameter=diameter,
            distance=distance,
            material=material,
            shear_check=shear_check,
            torsion_check=torsion_check,
            mandrel_diameter_factor=mandrel_diameter_factor,
            anchorage_length=anchorage_length,
            based_on_cover=True,
            relative_start_position=relative_start_position,
            relative_end_position=relative_end_position,
        )
    )

structural_sections.concrete.reinforced_concrete_sections.circular.CircularReinforcedCrossSection.plot

plot(*args, **kwargs) -> Figure

Plot the cross-section. Making use of the standard plotter.

If you want to use a custom plotter, use the .plotter attribute to plot the cross-section.

Parameters:

  • *args

    Additional arguments passed to the plotter.

  • **kwargs

    Additional keyword arguments passed to the plotter.

Source code in blueprints/structural_sections/concrete/reinforced_concrete_sections/circular.py
188
189
190
191
192
193
194
195
196
197
198
199
200
def plot(self, *args, **kwargs) -> plt.Figure:
    """Plot the cross-section. Making use of the standard plotter.

    If you want to use a custom plotter, use the .plotter attribute to plot the cross-section.

    Parameters
    ----------
    *args
        Additional arguments passed to the plotter.
    **kwargs
        Additional keyword arguments passed to the plotter.
    """
    return self.plotter.plot(*args, **kwargs)