Skip to content

sheetpile_z_profile

structural_sections.steel.profile_definitions.sheetpile_z_profile

Z-Shaped Sheet Pile Profile.

Classes:

  • SheetpileZProfile

    Representation of a Z-shaped sheet pile profile constructed from coordinates.

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile dataclass

SheetpileZProfile(
    *,
    coordinates: list[tuple[float, float]],
    web_thickness: MM,
    flange_thickness: MM,
    interlocking_ctc: MM,
    name: str = "Z-Shaped Sheet Pile Profile",
    plotter: Callable[[Profile], Figure] = plot_shapes,
    number_of_sheets: int = 1,
)

Bases: Profile

Representation of a Z-shaped sheet pile profile constructed from coordinates.

Z-shaped sheet piles are interlocking structural elements used in retaining walls and cofferdams. AZ and PAZ profiles are standardized examples of Z-shaped sheet piles.

Attributes:

  • coordinates (list[tuple[float, float]]) –

    List of (x, y) coordinate tuples defining the profile geometry.

  • web_thickness (MM) –

    Thickness of the web [mm].

  • flange_thickness (MM) –

    Thickness of the flanges [mm].

  • interlocking_ctc (MM) –

    Center to center distance of the sheets (interlocking distance) [mm].

  • name (str) –

    Name of the profile.

  • plotter (Callable[[Profile], Figure]) –

    The plotter function to visualize the profile.

  • number_of_sheets (int) –

    Number of sheets in the profile.

Notes

The perimeter property is inherited from the Profile base class.

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.coordinates instance-attribute

coordinates: list[tuple[float, float]]

List of (x, y) coordinate tuples defining the profile geometry.

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.flange_thickness instance-attribute

flange_thickness: MM

Thickness of the flanges [mm].

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.interlocking_ctc instance-attribute

interlocking_ctc: MM

Center to center distance of the sheets (interlocking distance) [mm].

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.max_thickness property

max_thickness: MM

Maximum element thickness of the profile [mm].

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.name class-attribute instance-attribute

name: str = 'Z-Shaped Sheet Pile Profile'

Name of the profile.

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.number_of_sheets class-attribute instance-attribute

number_of_sheets: int = 1

Number of sheets in the profile.

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.plotter class-attribute instance-attribute

plotter: Callable[[Profile], Figure] = plot_shapes

The plotter function to visualize the profile.

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.web_thickness instance-attribute

web_thickness: MM

Thickness of the web [mm].

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.multiple_sheets

multiple_sheets(number_of_sheets: int) -> SheetpileZProfile

Return a new Z-shaped sheet pile profile instance with a different number of sheets.

Parameters:

  • number_of_sheets (int) –

    Number of sheets to use in the profile.

Returns:

Notes

Multiple sheet functionality is implemented for coordinate-based Z-shaped sheet pile profiles. The _polygon property handles multi-sheet geometry by translating, mirroring (for odd-indexed sheets), and generating connectors between sheets. This method validates that number_of_sheets >= 1 and returns a new instance with the updated sheet count.

Source code in blueprints/structural_sections/steel/profile_definitions/sheetpile_z_profile.py
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
def multiple_sheets(self, number_of_sheets: int) -> SheetpileZProfile:
    """Return a new Z-shaped sheet pile profile instance with a different number of sheets.

    Parameters
    ----------
    number_of_sheets : int
        Number of sheets to use in the profile.

    Returns
    -------
    SheetpileZProfile
        A new profile instance with the specified number of sheets.

    Notes
    -----
    Multiple sheet functionality is implemented for coordinate-based Z-shaped sheet pile profiles.
    The `_polygon` property handles multi-sheet geometry by translating, mirroring (for odd-indexed sheets),
    and generating connectors between sheets. This method validates that `number_of_sheets >= 1`
    and returns a new instance with the updated sheet count.
    """
    if number_of_sheets < 1:
        raise ValueError("Number of sheets must be at least 1")
    return replace(self, number_of_sheets=number_of_sheets)

structural_sections.steel.profile_definitions.sheetpile_z_profile.SheetpileZProfile.with_corrosion

with_corrosion(corrosion: MM = 0) -> SheetpileZProfile

Return a new Z-shaped sheet pile profile instance with corrosion applied.

Parameters:

  • corrosion (MM, default: 0 ) –

    The amount of corrosion to apply to the profile [mm].

Returns:

Notes

Corrosion is applied on both sides of the profile, reducing the thickness of the web and flanges by 2 times the corrosion value. If corrosion from one side is different than the other, it is suggested to apply the average corrosion value.

Source code in blueprints/structural_sections/steel/profile_definitions/sheetpile_z_profile.py
148
149
150
151
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
187
188
189
def with_corrosion(self, corrosion: MM = 0) -> SheetpileZProfile:
    """Return a new Z-shaped sheet pile profile instance with corrosion applied.

    Parameters
    ----------
    corrosion : MM
        The amount of corrosion to apply to the profile [mm].

    Returns
    -------
    SheetpileZProfile
        A new profile instance with the specified corrosion applied.

    Notes
    -----
    Corrosion is applied on both sides of the profile, reducing the thickness of the web and flanges by 2 times the corrosion value.
    If corrosion from one side is different than the other, it is suggested to apply the average corrosion value.
    """
    if corrosion < 0:
        raise ValueError("Corrosion value must be non-negative")

    # Corrosion reduces the thickness of the web and flanges by 2 times the corrosion value (corrosion on both sides)
    new_web_thickness = self.web_thickness - 2 * corrosion
    new_flange_thickness = self.flange_thickness - 2 * corrosion

    # Check if profile has fully corroded
    if new_web_thickness <= FULL_CORROSION_TOLERANCE or new_flange_thickness <= FULL_CORROSION_TOLERANCE:
        raise ValueError("The profile has fully corroded.")

    # Apply corrosion by buffering the polygon inward by the corrosion amount
    corroded_polygon = self._polygon_single_sheet.buffer(-corrosion)

    coordinates = list(corroded_polygon.exterior.coords)
    name = update_name_with_corrosion(self.name, corrosion=corrosion)

    return replace(
        self,
        coordinates=coordinates,
        web_thickness=new_web_thickness,
        flange_thickness=new_flange_thickness,
        name=name,
    )