Pipe-Soil Interaction Tools#
- class pysubsea.pipe_soil_interaction_tools.PSI(*, total_outer_diameter=0.0, surface_roughness=None, undrained_shear_strength_depth_array=None, undrained_shear_strength_value_array=None, submerged_unit_weight=0.0)[source]#
Bases:
objectClass for calculating the capacity of soils using various models for a given pipe and soil configuration.
- Parameters:
total_outer_diameter (float, optional) – Total outer diameter of the pipe, including coating.
surface_roughness (str, optional) – Surface roughness of the pipe (‘Smooth’ or ‘Rough’).
undrained_shear_strength_depth_array (array_like, optional) – Per-pipe depth values, in m, defining the undrained shear strength profile.
undrained_shear_strength_value_array (array_like, optional) – Per-pipe undrained shear strength values, in Pa, matching
undrained_shear_strength_depth_array.submerged_unit_weight (float, optional) – Submerged unit weight of the soil, gamma’, in N/m3.
- downward_undrained_model1()[source]#
Calculate vertical penetration resistance using undrained Model 1.
The calculation follows the bearing-capacity formulation in the attached PDF. For each pipe, the method evaluates depths at 0.001 m spacing from 0.001 m to the maximum depth of
undrained_shear_strength_depth_arrayand prepends the zero-depth point to the returned arrays. The reference shear strength is linearly interpolated atzsu,0from the profile defined byundrained_shear_strength_depth_arrayandundrained_shear_strength_value_array, and the buoyancy contribution uses the supplied submerged unit weight.- Returns:
depth_arrays (np.ndarray) – Depth arrays with shape
(n_pipes, n_depths).vertical_bearing_capacity_arrays (np.ndarray) – Vertical penetration resistance arrays with shape
(n_pipes, n_depths), in N/m.
Examples
>>> psi = PSI( ... total_outer_diameter=[0.2731], ... surface_roughness=['Smooth'], ... undrained_shear_strength_depth_array=[[0.0, 0.3, 0.5, 1.0, 2.0]], ... undrained_shear_strength_value_array=[[1200, 5300, 3000, 4200, 6300]], ... submerged_unit_weight=[5500.0] ... ) >>> depths, capacities = psi.downward_undrained_model1() >>> depths.shape, capacities.shape, float(depths[0, 0]), round(float(depths[0, -1]), 5), float(capacities[0, 0]) ((1, 2001), (1, 2001), 0.0, 2.0, 0.0)
- downward_undrained_model2()[source]#
Calculate vertical penetration resistance using undrained Model 2.
Model 2 follows the alternative formulation in the attached PDF. It combines the minimum of the two resistance-factor terms with the soil buoyancy contribution. For each pipe, the method evaluates depths at 0.001 m spacing from 0.001 m to the maximum depth of
undrained_shear_strength_depth_arrayand prepends the zero-depth point to the returned arrays. The shear strength at the pipe invert is linearly interpolated from the profile defined byundrained_shear_strength_depth_arrayandundrained_shear_strength_value_array.- Returns:
depth_arrays (np.ndarray) – Depth arrays with shape
(n_pipes, n_depths).vertical_bearing_capacity_arrays (np.ndarray) – Vertical penetration resistance arrays with shape
(n_pipes, n_depths), in N/m.
Examples
>>> psi = PSI( ... total_outer_diameter=[0.2731], ... surface_roughness=['Smooth'], ... undrained_shear_strength_depth_array=[[0.0, 0.3, 0.5, 1.0, 2.0]], ... undrained_shear_strength_value_array=[[1200, 5300, 3000, 4200, 6300]], ... submerged_unit_weight=[5500.0] ... ) >>> depths, capacities = psi.downward_undrained_model2() >>> depths.shape, capacities.shape, float(depths[0, 0]), round(float(depths[0, -1]), 5), float(capacities[0, 0]) ((1, 2001), (1, 2001), 0.0, 2.0, 0.0)