Lateral Buckling Tools#

class pysubsea.lateral_buckling_tools.LBForces(*, outer_diameter=0.0, wall_thickness=0.0, youngs_modulus=0.0, submerged_weight=0.0)[source]#

Bases: object

Class for lateral buckling force calculations.

Parameters:
  • outer_diameter (float or array-like, optional) – Pipe outer diameter, used to compute section properties from Pipe.

  • wall_thickness (float or array-like, optional) – Pipe wall thickness, used to compute section properties from Pipe.

  • youngs_modulus (float or array-like, optional) – Young’s modulus of the material.

  • submerged_weight (float or array-like, optional) – Submerged weight for the condition of interest.

characteristic_buckling_force()[source]#

Compute characteristic buckling force.

Returns:

characteristic_buckling_force – Characteristic lateral buckling force.

Return type:

np.ndarray

Examples

>>> lb = LBForces(
...     youngs_modulus=[207.0e+09],
...     outer_diameter=[0.2731],
...     wall_thickness=[0.0127],
...     submerged_weight=[1000.0]
... )
>>> lb.characteristic_buckling_force()
array([1200711.7485...])
class pysubsea.lateral_buckling_tools.LBSoilDistributions(*, 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_parameters()[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.

  • friction_factor_range (np.ndarray) – 2D array with shape (n_cases, 10000), one range per case.

  • friction_factor_cdf (np.ndarray) – 2D array with shape (n_cases, 10000), one CDF per case.

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 = LBSoilDistributions(
...     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_parameters()
(array([0.9684083]), array([0.30043236]), array([-0.07804666]), array([0.3031342]), array([0.56177265]), array([0.92492127]), array([1.52282131]), array([0.05765844]), array([[...]]), array([[...]]))