Professional Documents
Culture Documents
In my ongoing quest to reinvent all the equations in all the engineering codes (http://daft.engineer/real-world-
problems/pipe-strength-and-the-mysterious-y/), I found myself idly wondering why the equations of shell thickness
in API 650 are the way they are. You would think that the governing stress in a storage tank is the hoop stress, and
the max hoop stress is at the bottom of the shell course where the hydrostatic pressure is the greatest. However if
you look at the code you nd the minimum thickness for a tank with diameter containing a uid with speci c
gravity and uid height :
Where is a distance somewhere up from the bottom of the shell course, to be determined either empirically as
"about a foot" or through the complicated set of madness that is the variable design point method (an issue for
another day).
a rst approach
At rst glance you may be wondering "what is this crazy equation?" Lets back up and start with the equation for
hoop stress:
The hydrostatic pressure at some point , measured from the bottom of the shell course is:
Where I've substituted in the speci c gravity and the unit conversions such that the stress is in MPa and the
thickness in mm instead of the SI base units of Pa and m.
http://daft.engineer/real-world-problems/hoop-stress-and-wall-thickness-in-storage-tanks/ 1/7
12/20/2017 Hoop stress and wall thickness in storage tanks
So that half explains that, API 650 is calculating the minimum thickness needed to withstand the hoop stress at a
height . But why is it some and not the bottom of the shell course, where the hoop stress would naively be
higher?
1. Pull out Kircho -Love plate theory and solve some ODEs
2. Pull out Roark's and look at a superposition of stresses
I am going to be lazy and look at Roark's, i.e. Roark's Formulas for Stress and Strain, 7th Edition. The nice thing about
Roark's is that it collates solutions to the various stress equations for common loadings, so basically someone else
has solved those di erential equations for you. What remains is to perform superposition to get the particular set of
loads that your system experiences.
I'm going to look at a hypothetical shell course with hydrostatic pressure, supported at the bottom in such a way that
the radial deformation is zero and the rotation is zero. The classic situation would be if it was welded to the oor
plates.
http://daft.engineer/real-world-problems/hoop-stress-and-wall-thickness-in-storage-tanks/ 2/7
12/20/2017 Hoop stress and wall thickness in storage tanks
Note is not the tank diameter from here on out, it is the bending rigidity:
I am just assuming that since storage tanks are typically large relative to the thickness of the shell, that ,
which allows me to use 8 and 10 from Table 13.2
First o the radial deformation at the bottom is zero, by assumption, and it is the sum of the contributions from each
situation:
http://daft.engineer/real-world-problems/hoop-stress-and-wall-thickness-in-storage-tanks/ 3/7
12/20/2017 Hoop stress and wall thickness in storage tanks
Anywho, the nal expression for the radial deformation at the bottom is (dropping the subscript "o")
This is a system of linear equations with 2 equations and 2 unknowns, and , solving for
and
The radial de ection at any point along the shell course is the superposition of the radial de ection due to the
hydrostatic pressure, i.e. and the reactions at the bottom:
The hoop stress is, by Hooke's law, proportional to the relative radial de ection:
Just glaring at the equation tells us something interesting. First o the hoop stress is actually quite small immediately
adjacent to the shell bottom, due to the reaction forces there, but the impact of those forces decays as we move up
the shell course -- this is the impact of
We would expect that there is a threshold where the hoop stress due to hydrostatic pressure comes to dominate
and the hoop stress would then be linear with distance up to the top of the tank. The max. hoop stress would then
be approximately:
Where is the height where is basically zero (waves hands in the air)
Below are expressions for the hoop stress and radial displacement implemented in python.
def lmbda(nu,R,t):
return (3*(1-nu**2)/(R*t)**2)**(0.25)
def hoop_stress(rho,H,R,t):
''' returns a function for calculating the hoop stress at a point x from the base'''
nu = 0.3
g = 9.81 # m/s^2
l = lmbda(nu,R,t)
assert (l*H > 6), 'load criteria'
return lambda x: ((rho*g*R)/t)*(H-x - H*exp(-l*x)*(cos(l*x)+sin(l*x)))
def radial_disp(rho,H,R,t):
''' returns a function for calculating the radial displacement from a point x from the base'''
nu = 0.3
E = 200*1e9 #GPa
g = 9.81 #m/s^2
l = lmbda(nu,R,t)
assert (l*H > 6), 'load criteria'
return lambda x: ((rho*g*R*R)/(E*t))*(H-x - H*exp(-l*x)*(cos(l*x)+sin(l*x)))
We can plot what the hoop stress is doing for an arbitrary tank with a height of 4m, diameter of 2m, and a shell
thickness of 5mm (full of water with a density of 1000kg/m3)
http://daft.engineer/real-world-problems/hoop-stress-and-wall-thickness-in-storage-tanks/ 5/7
12/20/2017 Hoop stress and wall thickness in storage tanks
real_sigma = sigma(max_val.x)
naive_sigma = (1000*9.81*1.0*(4.0-max_val.x))/(0.005)
per_diff = 100 * abs(real_sigma - naive_sigma)/real_sigma
Well that's interesting. I would have expected the naive answer to be higher than the "real" answer. If we plot just the
component of the hoop stress from the reaction forces we see that while it decays towards zero it dips below and
continues to oscillate around zero. This isn't too shocking since there are those cos and sin functions in there.
Regardless of the speci cs, the error is small in making the naive assumption and it is more workable for nding the
required shell thickness since depends upon thickness. When all the safety factors are included the slight error in
not pinpointing the exact location of highest stress is negligible.
I assume that the Variable Design Point method does something similar but likely uses a more comprehensive
model of the tank. For example I ignored the weight of the shell entirely as well as any impact the girth welds have
on the sti ness of the shell. Once all this is included the hoop stress becomes a function of and , which makes
solving for all that more annoying.
http://daft.engineer/real-world-problems/hoop-stress-and-wall-thickness-in-storage-tanks/ 6/7
12/20/2017 Hoop stress and wall thickness in storage tanks
(https://github.com/selenized/)
(https://mastodon.club/@allan)
(https://www.instagram.com/allan_says_hi/)
(https://www.goodreads.com/selenized)
Blog powered by Pelican (http://getpelican.com), which takes great advantage of Python (http://python.org).
http://daft.engineer/real-world-problems/hoop-stress-and-wall-thickness-in-storage-tanks/ 7/7