PyFlex
1.0
Riser cross section analysis
|
Functions | |
def | analytical_contact_pressures (sigma, alpha, n, A, R, t, p_int, p_ext) |
def | critical_curvature (slenderobject, contact_pressure, frictionfactors=np.array([5, 5, 5])) |
def | local_bending (thickness, width, alpha, theta, phi, e, r, type, bend_model="Savik") |
def | tension_stress_history (t_eff, p_int, p_ext, alpha, R, thick, A, E, n) |
def | bending_stress_history (slenderobject, curvhist, ntheta=16, nphi=16, bend_model="Savik") |
def | stick_stress (model, curv, critcurv, theta=None) |
def | fric_stress (curv, eps_mat, sig_mat, midpoint) |
def | max_stickstress (model, critcurv) |
Copyright (C) 2016 Joakim A. Taby This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
def coefficients.analytical_contact_pressures | ( | sigma, | |
alpha, | |||
n, | |||
A, | |||
R, | |||
t, | |||
p_int, | |||
p_ext | |||
) |
Finding contact pressure from pressure differencial between layers. Using B1.23 from handbook, assuming sliding occurs along midpoint between layers.
Definition at line 17 of file coefficients.py.
def coefficients.bending_stress_history | ( | slenderobject, | |
curvhist, | |||
ntheta = 16 , |
|||
nphi = 16 , |
|||
bend_model = "Savik" |
|||
) |
Calculates the stress history from time histories of curvatures and axial stress coefficient :param bend_model: Which bend model to apply. Savik or Tan implemented :param nphi: Number of points around tendon to perform calculation. 4 is used of rectangular tendon given. :param ntheta: number of points around the cross section to perform calculation :param slenderobject, instande of the Slender class :param curvhist: numpy array containg each curvature time series as a column vector :return: stress history for each point on defined in bendcoeff
Definition at line 209 of file coefficients.py.
def coefficients.critical_curvature | ( | slenderobject, | |
contact_pressure, | |||
frictionfactors = np.array([5, 5, 5]) |
|||
) |
Finding the critical curvature. Need to find where this is taken from. :param frictionfactors: friction factors between layer and the layer inside :param contact_pressure: contact line load. A matrix [2,nlayers] for outside and inside of layer respectively :param slenderobject: Object of slender type from the sledner class of slenders
Definition at line 72 of file coefficients.py.
def coefficients.fric_stress | ( | curv, | |
eps_mat, | |||
sig_mat, | |||
midpoint | |||
) |
2D elastoplastic materialmodel with kinematic hardening :param midpoint: the midpoint of the yield surface at simulation start :param sig_mat: the stress at yield :param eps_mat: the strain at yield :param curv: curvature history 2xN :return: Frictional stress
Definition at line 289 of file coefficients.py.
def coefficients.local_bending | ( | thickness, | |
width, | |||
alpha, | |||
theta, | |||
phi, | |||
e, | |||
r, | |||
type, | |||
bend_model = "Savik" |
|||
) |
Calculating the local bending coefficients Equations from 'On stresses and fatigue in flexible pipes' by Savik 1992 and 'Validity and limitation of analytical models for the bending stress of a helical wire in unbonded flexible pipes' Tang et.al. 2015 :param bend_model: Which bend model to apply. Savik or Tan implemented :param e: Youngs modulus. One for each layer :param geometry of the tendon. one item means circular, two means rectangular :param alpha: lay_angle of slender structure, list :param theta: position around the crossection for calculation, numpy vector :param phi: local position for calculation of coefficient, numpy vector :return:list of numpy arrays defining the coefficients for each layer
Definition at line 129 of file coefficients.py.
def coefficients.max_stickstress | ( | model, | |
critcurv | |||
) |
def coefficients.stick_stress | ( | model, | |
curv, | |||
critcurv, | |||
theta = None |
|||
) |
Calculating the stick stress at position theta on the crossection, limited by the critical curvature. Equations from 'Bending Behavior of Helically Wrapped Cables' Hong et.al. 2005 :param theta: Position around cross section range [0 2*pi] :param critcurv: Critical curvature. Curvature at which slip initiates for each layer :param curv: Curvature history Dim: 2xN :param model: Slender object as defined in slenders.Slender
Definition at line 245 of file coefficients.py.
def coefficients.tension_stress_history | ( | t_eff, | |
p_int, | |||
p_ext, | |||
alpha, | |||
R, | |||
thick, | |||
A, | |||
E, | |||
n | |||
) |
Solving for axial stress accorind got Handbook B1.10, B1.23 and B1.13 :param t_eff: history of effective tension :param p_int: history of internal pressure :param p_ext: history of external pressure :param alpha: lay angles of the layers :param R: radiuses of the layers :param thick: thickness of the layers :param A: Area of the tendons :param E: young's modulus of the tendons :param n: number of tendons in each layer :return: numpy array with tension stress histories
Definition at line 171 of file coefficients.py.