Lateral Buckling Tools#

This module provides classes and functions for lateral buckling calculations and friction factor distribution fitting for subsea pipelines.

Features:

  • The LBDistributions class implements lognormal distribution fitting for geotechnical friction factors, supporting low, best, and high estimates (LE, BE, HE) and multiple fit types.

  • Designed for use in pipeline lateral buckling reliability analysis and geotechnical parameter estimation.

  • All calculations are vectorized using NumPy and leverage SciPy for statistical fitting.


class refpy.lateral_buckling_tools.LBDistributions(*, friction_factor_le, friction_factor_be, friction_factor_he, friction_factor_fit_type)[source]#

Bases: object

Class for lateral buckling calculations, including friction factor distribution fitting.

Parameters:
  • friction_factor_le (float, optional) – Low estimate (LE) friction factor, representing the 5th percentile.

  • friction_factor_be (float, optional) – Best estimate (BE) friction factor, representing the 50th percentile.

  • friction_factor_he (float, optional) – High estimate (HE) friction factor, representing the 95th percentile.

  • friction_factor_fit_type (str, optional) – Type of fit to perform: ‘LE_BE_HE’, ‘LE_BE’, or ‘BE_HE’.

friction_distribution()[source]#

Compute the parameters of the lognormal friction factor distribution (axial or lateral) by minimizing the root mean square error (RMSE) between geotechnical estimates and back-calculated friction factors from the lognormal distribution.

Returns:

  • mean_friction (np.ndarray) – Array of mean values of the lognormal friction factor distribution.

  • std_friction (np.ndarray) – Array of standard deviation values of the lognormal friction factor distribution.

  • location_param (np.ndarray) – Array of location parameters of the lognormal friction factor distribution.

  • scale_param (np.ndarray) – Array of scale parameters of the lognormal friction factor distribution.

  • le_fit (np.ndarray) – Array of fitted LE values.

  • be_fit (np.ndarray) – Array of fitted BE values.

  • he_fit (np.ndarray) – Array of fitted HE values.

  • rmse (np.ndarray) – Array of RMSE values for the best fit type.

Notes

The function calculates the parameters of the lognormal friction factor distribution based on LE at 5th percentile, BE at 50th percentile, and HE at 95th percentile

Examples

>>> lb = LBDistributions(
...     friction_factor_le=[0.5],
...     friction_factor_be=[1.0],
...     friction_factor_he=[1.5],
...     friction_factor_fit_type=['LE_BE_HE']
... )
>>> lb.friction_distribution()
(array([0.9684083]), array([0.30043236]), array([-0.07804666]), array([0.3031342]), array([0.56177265]), array([0.92492127]), array([1.52282131]), array([0.05765844]))