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.flange_to_web_angle property

flange_to_web_angle: DEG

Angle between the web and the (horizontal) flanges of the Z-shaped sheet pile profile [degrees].

The angle is calculated by finding the edge of the web that intersects a horizontal line through the middle of the profile's bounding box. The angle is then computed using the arctangent of the rise over run of that edge.

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.width_of_flat_portion property

width_of_flat_portion: MM

Width of the flange of the Z-shaped sheet pile profile [mm].

The flange width is calculated based on the height of the profile, the angle between the web and flange, the web thickness, and the interlocking center-to-center distance. The formula accounts for the geometry of the Z-shaped profile and the positioning of the flanges relative to the web.

Based on the classification in table 5-1 in EN 1993-5.

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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
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 SheetpileZProfile(
        coordinates=self.coordinates,
        web_thickness=self.web_thickness,
        flange_thickness=self.flange_thickness,
        interlocking_ctc=self.interlocking_ctc,
        name=self.name,
        plotter=self.plotter,
        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
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
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[tuple[float, float]] = [(x, y) for x, y in corroded_polygon.exterior.coords]
    name = update_name_with_corrosion(self.name, corrosion=corrosion)

    return SheetpileZProfile(
        coordinates=coordinates,
        web_thickness=new_web_thickness,
        flange_thickness=new_flange_thickness,
        interlocking_ctc=self.interlocking_ctc,
        name=name,
        plotter=self.plotter,
        number_of_sheets=self.number_of_sheets,
    )