Skip to content

pyflange.flangesegments

Mechanical models of single-bolt flange segments.

This module contains FlangeSegment classes, which model the mechanical behavior of a flange sector containing one bolt only. The module provides:

  • Gap: description of the imperfection gap between two flange faces.
  • FlangeSegment: abstract base class defining the transfer-function interface (bolt axial force and bolt bending moment as functions of the shell pull force).
  • PolynomialFlangeSegment: abstract base class implementing the polynomial transfer functions of refs. [1] and [2].
  • PolynomialLFlangeSegment and PolynomialLFlangeSegmentED2: polynomial L-flange segment models (the latter implementing the modifications expected in IEC 61400-6 ED2).
  • PolynomialTFlangeSegment and PolynomialTFlangeSegmentED2: polynomial T-flange segment models (the latter implementing the modifications expected in IEC 61400-6 ED2).
  • bolt_markov_matrix: conversion of a flange bending-moment Markov matrix into a bolt stress Markov matrix, via the segment transfer functions.
  • shell_stiffness: shell stiffness interpolated from tabulated FEA results.

The only types of FlangeSegment currently available are an L-Flange segment and a T-Flange segment, implementing a polynomial relation between tower shell force and bolt force / bolt moment. Nonetheless, this module has been structured to be easily extensible with other types of FlangeSegment model, such as Multilinear (Petersen) L-Flanges, Multilinear T-Flanges, etc.

Units

All parameters must be supplied in a consistent system of units, e.g. meters for lengths, newtons for forces and pascals for stresses. Angles are expressed in radians.

Example

The following example creates an L-flange segment and evaluates the bolt axial force for a given shell pull force.

from math import pi
from pyflange.bolts import StandardMetricBolt, RoundNut
from pyflange.flangesegments import Gap, PolynomialLFlangeSegment

fseg = PolynomialLFlangeSegment(
    a=0.150, b=0.122, s=0.054, t=0.172, R=4.0,
    central_angle=2*pi/156,
    Zg=-115e3,                              # dead weight per bolt (compression)
    bolt=StandardMetricBolt("M80", "10.9", shank_length=0.160, stud=True),
    Fv=2.9e6,                               # bolt preload
    Do=0.086, washer=None, nut=RoundNut("M80"),
    gap=Gap(height=0.002, angle=pi/6))

Fs = fseg.bolt_axial_force(500e3)           # bolt force for a shell pull of 500 kN
References

The reference numbers are the same in all the PyFlange modules (see the references page). This module cites:

  • [1] Seidel, M.: IEC 61400-6 AMD1 Background document. Fatigue design for ring flange connections in wind turbine support structures. Rev00, Siemens Gamesa, 2024.
  • [2] IEC 61400-6:2020+AMD1:2025 CSV. Wind energy generation systems - Part 6: Tower and foundation design requirements. Consolidated version,
  • Equation numbers G.xx refer to its Annex G.
  • [3] Petersen, C.: Nachweis der Betriebsfestigkeit exzentrisch beanspruchter Ringflanschverbindungen. Stahlbau 67 (1998), pp. 191-203. https://doi.org/10.1002/stab.199800690
  • [4] Petersen, C.: Stahlbau. 4th edition, Springer Vieweg, 2012. https://doi.org/10.1007/978-3-8348-8610-1
  • [5] Seidel, M.: IEC 61400-6 AMD1 & ED2 Background document. Fatigue design for ring flange connections in wind turbine support structures. Rev01, draft 2026-08-04, Siemens Gamesa. The changes of the polynomial model from AMD1 to ED2 are summarised in its section 9.7.
  • [6] Tobinaga, I.; Ishihara, T.: A study of action point correction factor for L-type flanges of wind turbine towers. Wind Energy 21 (2018), pp. 801-806. https://doi.org/10.1002/we.2193

Classes:

Functions:

  • bolt_markov_matrix –

    Evaluates the bolt Markov matrix from the shell Markov matrix.

  • shell_stiffness –

    Calculates the axial stiffness of a flange-segment shell via interpolation.

Gap dataclass

Gap(height, angle, shape_factor=1.0)

A flange gap due to imperfections.

The design gap height of IEC 61400-6 AMD1 is the 95% quantile of the log-normal distribution of ref. [2], section 6.7.5.2 (see pyflange.stats.gap_height_distribution). The gap angles to be checked are 30°, 60°, 90° and 120° (ref. [2], section 6.7.5.3).

Attributes:

  • height (float) –

    Maximum longitudinal gap height.

  • angle (float) –

    Angle subtended by the gap arc from the flange center, in radians.

  • shape_factor (float) –

    Factor accounting for a shape different than sinusoidal. Defaults to 1.0 (sinusoidal gap).

FlangeSegment

Bases: ABC

Abstract base class for a flange segment.

This class is meant to be extended and not to be instantiated directly. Each FlangeSegment child class must implement the two transfer-function methods: .bolt_axial_force(Z) and .bolt_bending_moment(Z).

Methods:

  • bolt_axial_force –

    Calculates the bolt axial force generated by a shell pull force.

  • bolt_bending_moment –

    Calculates the bolt bending moment generated by a shell pull force.

bolt_axial_force abstractmethod

bolt_axial_force(shell_pull)

Calculates the bolt axial force generated by a shell pull force.

Parameters:

  • shell_pull (float or ndarray) –

    The shell pull force Z.

Returns:

  • float or ndarray –

    The resulting bolt axial force.

bolt_bending_moment abstractmethod

bolt_bending_moment(shell_pull)

Calculates the bolt bending moment generated by a shell pull force.

Parameters:

  • shell_pull (float or ndarray) –

    The shell pull force Z.

Returns:

  • float or ndarray –

    The resulting bolt bending moment.

PolynomialFlangeSegment

Bases: FlangeSegment

A generic FlangeSegment with polynomial transfer functions.

This class implements a polynomial relation between tower shell force Z and bolt axial force Fs or bolt bending moment Ms. It is not meant to be instantiated directly but to be subclassed.

The polynomial transfer functions are defined by 4 reference points:

  • P1: Flange segment at rest.
  • P2: Flange segment at ultimate tensile limit state.
  • P3: Flange segment in small tensile deformation.
  • P4: Gap closure state.

Child classes must provide the coordinates of these points (shell force, bolt force and bolt moment) through the abstract properties of this class. The transfer functions are a quadratic polynomial through P1, P2 and P3 in the tensile domain (above the shell force at rest), a quadratic polynomial between P4 and P1 in the compressive domain, and a constant below P4. Child classes may override the tensile polynomials when the reference defines them differently (e.g. the cubic bolt moment of T-flanges).

Methods:

  • bolt_axial_force –

    Calculates bolt axial force from tower shell force using a polynomial.

  • bolt_bending_moment –

    Calculates bolt bending moment from tower shell force using a polynomial.

Attributes:

shell_force_at_rest abstractmethod property

shell_force_at_rest

Shell force when no external loads are applied (Z1).

bolt_force_at_rest abstractmethod property

bolt_force_at_rest

Bolt axial force when no external loads are applied (Fs1).

bolt_moment_at_rest abstractmethod property

bolt_moment_at_rest

Bolt bending moment when no external loads are applied (Ms1).

shell_force_at_small_displacement abstractmethod property

shell_force_at_small_displacement

Intermediate tower shell force (Z3).

bolt_force_at_small_displacement abstractmethod property

bolt_force_at_small_displacement

Intermediate bolt axial force (Fs3).

bolt_moment_at_small_displacement abstractmethod property

bolt_moment_at_small_displacement

Intermediate bolt bending moment (Ms3).

shell_force_at_tensile_ULS abstractmethod property

shell_force_at_tensile_ULS

Ultimate Limit State tower shell force (Z2).

bolt_force_at_tensile_ULS abstractmethod property

bolt_force_at_tensile_ULS

Bolt axial force at tensile failure (Fs2).

bolt_moment_at_tensile_ULS abstractmethod property

bolt_moment_at_tensile_ULS

Bolt bending moment at tensile failure (Ms2).

shell_force_at_closed_gap abstractmethod property

shell_force_at_closed_gap

Shell force necessary to completely close the imperfection gap (Z4).

bolt_axial_force

bolt_axial_force(shell_pull)

Calculates bolt axial force from tower shell force using a polynomial.

The relation is defined as a polynomial function based on ref. [2], section G.2.2, eq. G.32.

Parameters:

  • shell_pull (float or ndarray) –

    The tower shell force Z.

Returns:

  • float or ndarray –

    The corresponding bolt axial force Fs.

bolt_bending_moment

bolt_bending_moment(shell_pull)

Calculates bolt bending moment from tower shell force using a polynomial.

The relation is defined as a polynomial function based on ref. [2], section G.2.3, eqs. G.59 (L-flanges) and G.61 (T-flanges).

Parameters:

  • shell_pull (float or ndarray) –

    The tower shell force Z.

Returns:

  • float or ndarray –

    The corresponding bolt bending moment Ms.

PolynomialLFlangeSegment dataclass

PolynomialLFlangeSegment(a, b, s, t, R, central_angle, Zg, bolt, Fv, Do, washer, nut, gap, tilt_angle=0.0, E=210000000000.0, G=80770000000.0, s_ratio=1.0, r=0.01, k_shell=None, PPL=0.0, DFT=0.0, settlement_factor=1.0)

Bases: PolynomialFlangeSegment

An L-Flange implementation of a PolynomialFlangeSegment.

This class models an L-flange segment using the polynomial model from ref. [1] and [2]. It defines the reference points for the polynomial functions inherited from the parent class.

The transfer functions are available through the bolt_axial_force and bolt_bending_moment methods, which accept either a scalar or a NumPy array of shell pull forces.

Attributes:

  • a (float) –

    Distance from inner flange face to bolt hole center.

  • b (float) –

    Distance from bolt hole center to shell center-line.

  • s (float) –

    Shell thickness.

  • t (float) –

    Flange thickness.

  • R (float) –

    Shell outer curvature radius.

  • central_angle (float) –

    Angle subtended by the flange segment arc.

  • Zg (float) –

    Load on the shell at rest (e.g., dead weight). Negative for compression.

  • bolt (Bolt) –

    The bolt in the flange segment.

  • Fv (float) –

    Design preload value before losses.

  • Do (float) –

    Bolt hole diameter.

  • washer (Washer) –

    The washer used. None if no washer.

  • nut (Nut) –

    The nut used.

  • gap (Gap) –

    The flange gap.

  • tilt_angle (float) –

    Flange tilt angle in radians.

  • E (float) –

    Young's modulus of the flange material.

  • G (float) –

    Shear modulus of the flange material.

  • s_ratio (float) –

    Ratio of bottom shell thickness to s.

  • r (float) –

    Radius of the rounding between shell and flange.

  • k_shell ((float, callable, None)) –

    Shell stiffness [N/m/m]. Can be a value, a function taking the flange segment as argument and returning the stiffness, or None to use the simplified formula of ref. [2], eq. G.43.

  • PPL (float) –

    Percentage of bolt pretension loss due to plastic strain, expressed as a fraction of Fv (e.g. 0.03 for 3%). Defaults to 0.0.

  • DFT (float) –

    Maximum allowable dry film thickness of coating applied on the contact area between washers and flange [m]. Defaults to 0.0 m.

  • settlement_factor (float) –

    Factor reducing the amount of bolt settlement, to be taken as 1.0 for torque tightening and 0.5 for tension tightening. Defaults to 1.0.

Methods:

  • failure_mode –

    Determines the failure mode of the flange.

  • validate –

    Verifies the applicability of the polynomial model.

bolt_preload cached property

bolt_preload

float: Bolt preload after settlement and plastic losses.

The preload Fv is reduced by the settlement loss (function of DFT and settlement_factor, ref. [2], section 6.7.5.1.2, eqs. 27 and 28) and by the plastic loss (PPL * Fv, ref. [2], eq. 24).

shell_force_at_rest cached property

shell_force_at_rest

Shell force when no external loads are applied (Z1).

The shell loads at rest are normally the self-weights of the structure supported by the flange.

bolt_force_at_rest cached property

bolt_force_at_rest

Bolt axial force when no external loads are applied (Fs1).

The bolt force at rest is just the bolt pretension.

bolt_moment_at_rest cached property

bolt_moment_at_rest

Bolt bending moment when no external loads are applied (Ms1).

shell_force_at_small_displacement cached property

shell_force_at_small_displacement

Intermediate tower shell force (Z3).

This auxiliary point gives the polynomial the right initial slope, evaluated according to ref. [2], Table G.1, point 3.

bolt_force_at_small_displacement cached property

bolt_force_at_small_displacement

Intermediate bolt axial force (Fs3).

This auxiliary point gives the polynomial the right initial slope, evaluated according to ref. [2], Table G.1, point 3.

bolt_moment_at_small_displacement cached property

bolt_moment_at_small_displacement

Intermediate bolt bending moment (Ms3).

shell_force_at_tensile_ULS cached property

shell_force_at_tensile_ULS

Ultimate Limit State tower shell force (Z2).

This is the tower shell force that brings the flange segment to its tensile ULS, evaluated according to ref. [2], Table G.1, point 2.

bolt_force_at_tensile_ULS cached property

bolt_force_at_tensile_ULS

Bolt axial force at tensile failure (Fs2).

This is the bolt's tensile force at the shell's ULS, assuming failure mode B (ref. [2], eq. G.36), scaled by the gap shape factor.

bolt_moment_at_tensile_ULS cached property

bolt_moment_at_tensile_ULS

Bolt bending moment at tensile failure (Ms2).

shell_force_at_closed_gap cached property

shell_force_at_closed_gap

Shell force necessary to completely close the imperfection gap (Z4).

Evaluated according to ref. [2], eq. G.56.

gap_height property

gap_height

Deprecated. Use gap.height instead.

gap_angle property

gap_angle

Deprecated. Use gap.angle instead.

gap_shape_factor property

gap_shape_factor

Deprecated. Use gap.shape_factor instead.

failure_mode

failure_mode(fy_sh, fy_fl, gamma_0=1.1)

Determines the failure mode of the flange.

The ultimate shell force is evaluated for each of the failure modes A, B, D and E of ref. [2], and the governing mode is the one with the lowest ultimate shell force.

Parameters:

  • fy_sh (float) –

    Yield stress of the shell material.

  • fy_fl (float) –

    Yield stress of the flange material.

  • gamma_0 (float, default: 1.1 ) –

    Material factor. Defaults to 1.1.

Returns:

  • tuple –

    A tuple containing:

    • str: The failure mode ("A", "B", "D", or "E").
    • list: A list of the shell force limits for each failure mode [Zu_A, Zu_B, Zu_D, Zu_E].

validate

validate(fy_sh, fy_fl, gamma_0=1.1)

Verifies the applicability of the polynomial model.

Checks if this L-Flange Segment fails according to failure mode B.

Parameters:

  • fy_sh (float) –

    Yield stress of the shell material.

  • fy_fl (float) –

    Yield stress of the flange material.

  • gamma_0 (float, default: 1.1 ) –

    Material factor. Defaults to 1.1.

Raises:

  • ValueError –

    If the failure mode is not "B".

PolynomialLFlangeSegmentED2 dataclass

PolynomialLFlangeSegmentED2(a, b, s, t, R, central_angle, Zg, bolt, Fv, Do, washer, nut, gap, tilt_angle=0.0, E=210000000000.0, G=80770000000.0, s_ratio=1.0, r=0.01, k_shell=None, PPL=0.0, DFT=0.0, settlement_factor=1.0)

Bases: PolynomialLFlangeSegment

An L-Flange segment modeled as it will be modified in IEC 61400-6 ED2.

This class has the same parameters and interface as PolynomialLFlangeSegment, but it replaces the a* parameter, the parallel-gap closing force and the gap stiffness with the formulations that will be introduced in IEC 61400-6 ED2 (ref. [5], section 9.7, changes #1 to #3).

PolynomialTFlangeSegment dataclass

PolynomialTFlangeSegment(a, b, s, t, R, central_angle, Zg, bolt, Fv, Do, washer, nut, gap, tilt_angle, E=210000000000.0, G=80770000000.0, s_ratio=1.0, r=0.01, k_shell=None, PPL=0.0, DFT=0.0, settlement_factor=1.0)

Bases: PolynomialFlangeSegment

A T-Flange implementation of a PolynomialFlangeSegment.

This class models a T-flange segment using the polynomial model from ref. [1] and [2]. It defines the reference points for the polynomial functions inherited from the parent class. The segment contains a pair of bolts, one on each side of the shell.

The transfer functions are available through the bolt_axial_force and bolt_bending_moment methods, which accept either a scalar or a NumPy array of shell pull forces. Differently from the L-flange, the bolt bending moment in the tensile domain is a cubic polynomial (ref. [2], eq. G.61).

Attributes:

  • a (float) –

    Distance from inner flange face to bolt hole center.

  • b (float) –

    Distance from bolt hole center to shell center-line.

  • s (float) –

    Shell thickness.

  • t (float) –

    Flange thickness.

  • R (float) –

    Shell outer curvature radius.

  • central_angle (float) –

    Angle subtended by the flange segment arc.

  • Zg (float) –

    Load on the shell at rest (e.g., dead weight), per bolt pair. Negative for compression.

  • bolt (Bolt) –

    The bolt in the flange segment.

  • Fv (float) –

    Design preload value before losses.

  • Do (float) –

    Bolt hole diameter.

  • washer (Washer) –

    The washer used. None if no washer.

  • nut (Nut) –

    The nut used.

  • gap (Gap) –

    The flange gap.

  • tilt_angle (float) –

    Flange tilt angle in radians. It has no default value, because ref. [2], section G.2.4, requires the inclination of T-flanges to be always considered: pass 0.0 explicitly only if the taper of the flange ensures that the first point of contact is directly below the tower wall (ref. [2], section 6.7.5.3).

  • E (float) –

    Young's modulus of the flange material.

  • G (float) –

    Shear modulus of the flange material.

  • s_ratio (float) –

    Ratio of bottom shell thickness to s.

  • r (float) –

    Radius of the rounding between shell and flange.

  • k_shell ((float, callable, None)) –

    Shell stiffness [N/m/m]. Can be a value, a function taking the flange segment as argument and returning the stiffness, or None to use the simplified formula of ref. [2], eq. G.43.

  • PPL (float) –

    Percentage of bolt pretension loss due to plastic strain, expressed as a fraction of Fv (e.g. 0.03 for 3%). Defaults to 0.0.

  • DFT (float) –

    Maximum allowable dry film thickness of coating applied on the contact area between washers and flange [m]. Defaults to 0.0 m.

  • settlement_factor (float) –

    Factor reducing the amount of bolt settlement, to be taken as 1.0 for torque tightening and 0.5 for tension tightening. Defaults to 1.0.

Methods:

  • failure_mode –

    Determines the failure mode of the flange.

  • validate –

    Verifies the applicability of the polynomial model.

bolt_preload cached property

bolt_preload

float: Bolt preload after settlement and plastic losses.

The preload Fv is reduced by the settlement loss (function of DFT and settlement_factor, ref. [2], section 6.7.5.1.2, eqs. 27 and 28) and by the plastic loss (PPL * Fv, ref. [2], eq. 24).

shell_force_at_rest cached property

shell_force_at_rest

Shell force when no external loads are applied (Z1).

The shell loads at rest are normally the self-weights of the structure supported by the flange.

bolt_force_at_rest cached property

bolt_force_at_rest

Bolt axial force when no external loads are applied (Fs1).

The bolt force at rest is just the bolt pretension.

bolt_moment_at_rest cached property

bolt_moment_at_rest

Bolt bending moment when no external loads are applied (Ms1).

shell_force_at_small_displacement cached property

shell_force_at_small_displacement

Intermediate tower shell force (Z3).

This auxiliary point gives the polynomial the right initial slope, evaluated according to ref. [2], Table G.1, point 3.

bolt_force_at_small_displacement cached property

bolt_force_at_small_displacement

Intermediate bolt axial force (Fs3).

This auxiliary point gives the polynomial the right initial slope, evaluated according to ref. [2], Table G.1, point 3.

bolt_moment_at_small_displacement cached property

bolt_moment_at_small_displacement

Intermediate bolt bending moment (Ms3).

shell_force_at_tensile_ULS cached property

shell_force_at_tensile_ULS

Ultimate Limit State tower shell force (Z2).

This is the tower shell force that brings the flange segment to its tensile ULS, evaluated according to ref. [2], Table G.1, point 2.

bolt_force_at_tensile_ULS cached property

bolt_force_at_tensile_ULS

Bolt axial force at tensile failure (Fs2).

This is the bolt's tensile force at the shell's ULS, assuming failure mode A (ref. [2], eq. G.36), scaled by the gap shape factor.

bolt_moment_at_tensile_ULS cached property

bolt_moment_at_tensile_ULS

Bolt bending moment at tensile failure (Ms2).

shell_force_at_closed_gap cached property

shell_force_at_closed_gap

Shell force necessary to completely close the imperfection gap (Z4).

Evaluated according to ref. [2], eq. G.56.

gap_height property

gap_height

Deprecated. Use gap.height instead.

gap_angle property

gap_angle

Deprecated. Use gap.angle instead.

gap_shape_factor property

gap_shape_factor

Deprecated. Use gap.shape_factor instead.

failure_mode

failure_mode(fy_sh, fy_fl, gamma_0=1.1)

Determines the failure mode of the flange.

The ultimate shell force is evaluated for each of the failure modes A, B, D and E of ref. [2] (eqs. G.24 to G.29), and the governing mode is the one with the lowest ultimate shell force.

Parameters:

  • fy_sh (float) –

    Yield stress of the shell material. Not used, since the plastic hinge of T-flanges is in the flange (ref. [2], Figure G.6).

  • fy_fl (float) –

    Yield stress of the flange material.

  • gamma_0 (float, default: 1.1 ) –

    Material factor. Defaults to 1.1.

Returns:

  • tuple –

    A tuple containing:

    • str: The failure mode ("A", "B", "D", or "E").
    • tuple: The shell force limits for each failure mode (Zu_A, Zu_B, Zu_D, Zu_E).

validate

validate(fy_sh, fy_fl, gamma_0=1.1)

Verifies the applicability of the polynomial model.

Checks if this T-Flange Segment fails according to failure mode A (ref. [2], eq. G.31).

Parameters:

  • fy_sh (float) –

    Yield stress of the shell material.

  • fy_fl (float) –

    Yield stress of the flange material.

  • gamma_0 (float, default: 1.1 ) –

    Material factor. Defaults to 1.1.

Raises:

  • ValueError –

    If the failure mode is not "A".

PolynomialTFlangeSegmentED2 dataclass

PolynomialTFlangeSegmentED2(a, b, s, t, R, central_angle, Zg, bolt, Fv, Do, washer, nut, gap, tilt_angle, E=210000000000.0, G=80770000000.0, s_ratio=1.0, r=0.01, k_shell=None, PPL=0.0, DFT=0.0, settlement_factor=1.0)

Bases: PolynomialTFlangeSegment

A T-Flange segment modeled as it will be modified in IEC 61400-6 ED2.

This class has the same parameters and interface as PolynomialTFlangeSegment, but it replaces the gap stiffness with the formulation that will be introduced in IEC 61400-6 ED2 (ref. [5], sections 9.3.3 and 9.7, change #2). The other ED2 changes of ref. [5], section 9.7 (torsional correction factor and a*) only concern L-flanges.

bolt_markov_matrix

bolt_markov_matrix(fseg, flange_markov_matrix, bending_factor=0.0, macro_geometric_factor=1.0, mean_factor=1.0, range_factor=1.0, SMF=1.0)

Evaluates the bolt Markov matrix from the shell Markov matrix.

The flange bending moment ranges and means are converted into shell pull forces acting on the flange segment, and then into minimum and maximum bolt stresses through the transfer functions of the flange segment. The bolt stress is the sum of the axial stress and of the bending stress scaled by bending_factor, evaluated on the bolt thread cross-section, according to ref. [2], section 6.7.5.4, eq. (42).

The flange bending moment M is converted into the segment shell force as Z = M / W * A_seg (ref. [2], eq. G.33), where W is the section modulus of the tower shell, evaluated at the shell mid-surface, and A_seg the shell cross-section area of the segment.

Parameters:

  • fseg (PolynomialFlangeSegment) –

    The flange segment containing the transfer functions. WARNING: Currently only works with PolynomialFlangeSegments.

  • flange_markov_matrix (MarkovMatrix) –

    The Markov matrix of bending moments on the flange.

  • bending_factor (float, default: 0.0 ) –

    Factor for the bending portion of the total stress range (kappa_b of ref. [2], eq. (43)). Defaults to 0.0 (axial stress only).

  • macro_geometric_factor (float, default: 1.0 ) –

    Factor for macro geometric influences (the SCF of ref. [2], section 6.7.5.3), affecting dead weight, mean, and range values. If omitted, it defaults to 1.0.

  • mean_factor (float, default: 1.0 ) –

    Factor for the mean values of the tower's bending moments. If omitted, it defaults to 1.0.

  • range_factor (float, default: 1.0 ) –

    Factor for the range of the tower's bending moments. If omitted, it defaults to 1.0.

  • SMF (float, default: 1.0 ) –

    Stress Multiplication Factor to be applied to bolt Markov matrix stress ranges. If omitted, it defaults to 1.0.

Returns:

  • MarkovMatrix –

    The bolt's Markov matrix representing the stress history. Its cycles and duration are the same as the flange Markov matrix.

shell_stiffness

shell_stiffness(shell_radius, shell_thickness, gap_angle)

Calculates the axial stiffness of a flange-segment shell via interpolation.

This function interpolates shell stiffness from a dataset of 2160 FEA results, covering 8 diameters (3 m to 10 m), 15 shell thicknesses (10 mm to 150 mm) and 18 gap angles (10° to 180°). This is the database of pre-computed stiffness values described in ref. [5], section 9.3.1, as an alternative to the simplified formula of ref. [2], eqs. G.43 and G.44. Values outside the range covered by the dataset are not extrapolated, and nan is returned instead.

Example
from math import pi
from pyflange.flangesegments import shell_stiffness

k_shell = shell_stiffness(4.0, 0.054, pi/6)   # R = 4 m, s = 54 mm, 30° gap

Parameters:

  • shell_radius (float) –

    Outer radius of the shell.

  • shell_thickness (float) –

    Thickness of the shell.

  • gap_angle (float) –

    Angular length of the flange gap in radians.

Returns:

  • float –

    The interpolated shell stiffness (K_sh), or nan if the arguments are outside the dataset range.