Stress linearization is a widely used and misunderstood tool to interpret solid model FEA results. The article “The Nuts and Bolts of Stress Linearization” was written after repeatedly answering the same questions about how linearization works. The article is simpler than the description provided in the ASME VIII-2 book and works as a good introduction prior to reading VIII-2.

The second article shows how linearization can be used to reduce the effect of mesh size on stress results. SCL results are good even before a mesh has converged.

Quick Links (to topics on this page)

The Nuts and Bolts of Stress Linearization

File: 1844, Last Updated: March 2012, LB

Why classify stresses?

The ASME pressure vessel code is based on the observed safety of vessels. It is a real world working standard – its roots were born of failed vessels and dead operators in an era long before concepts like stress concentrations were even known. At its birth theory ran out when items got more complex than cylinders and spheres.

When rules were required for items like flanged and dished heads, models and full sized vessels were made and tested. The observations were turned into design rules. Vessels became safer through their efforts – but why did they work?

Later generations of vessel engineers developed magical tools like finite element analysis that allowed them to see stresses inside vessel components. They had to learn why we got away with weird rules like area replacement on nozzles. Different types of stresses were found to have different safety implications. Also, the location of the stress was very important.

They observed that a bending stress is less dangerous than a membrane stress – it is allowed to be 1.5x higher in VIII-1. Local stresses around nozzles or transitions could be higher than global stresses – sometimes 2x as high, depending on the location and cause. They wrote the VIII-2 rules and developed the stress linearization method.

More decades have passed. Finite element analysis is no longer a magical tool hiding in research labs. Many engineers and technologists now have access to it. But analyzing the stresses found in a pressure vessel is still a difficult task. Running a finite element model and looking for the highest stresses is not adequate.

This article is a guide to how the stress linearization tool works to separate stresses into membrane and bending. Examples are provided along with sample data and a spreadsheet based stress linearization tool. The programming code is explained in the appendixes and can be examined in the spreadsheet.

This article does not discuss whether the stresses are local or global and which allowable stresses should be used for where. This is a topic for a later article.

The Stress Classification Line

A Stress Classification Line or SCL is a straight line running from the inside to outside of a vessel. It is perpendicular to both the inside and outside surfaces. Finite Element Analysis provides the raw stress data at nodes along this line. The stress linearization tool takes the nodal data for the complex stress pattern found along this line and breaks it down into components:

Membrane – or average stress – always positive. You can not tell from stress classification whether the average stress is compressive or tension. This is the same problem as looking at Tresca or von-Mises plots. Magnitudes are provided but directions are missing. The membrane stress is usually equal to the code allowable stress for global areas and 1.5 as much for local areas.

Bending – is the difference in stress from inside to outside – always positive (a better definition follows).

Membrane + Bending – sum of the above two numbers – The ASME code allows the membrane + bending stress to be higher than the membrane only. In some local locations, the membrane + bending stress can be higher than the yield point for the material.

Peak – or highest stress found along the line. This is also always positive but not necessarily higher than the membrane + bending number. Peak stress is usually used to determine the fatigue life at the SCL.

ASME VIII-2 chart Figure 5.1 provides a guide to what the maximum allowed stresses are allowed for different locations. The combination of this chart and the output from the stress classification tool can be used to produce pass fail judgments on the component under study.

Warning – Figure 5.1 provides pass/fail criteria on vessel design, however thought is still required! Have the critical areas of the vessel been studied? Is the failure mechanism understood – some mechanisms such as snap through or external pressure buckling will not be detected by this analysis tool.

Example – Stress Classification at Work

This spherical head has a heavy nozzle full penetration welded into its crown. To know if the design is adequate, the membrane and membrane + bending stresses are required. A 5° slice of the model will represent the whole head. The slice has a split line near the weld to ensure that when meshed, the nodes at this location line up straight – the Stress Classification Line.

The utility determined the membrane, bending, membrane + bending and peak stresses along the SCL. The membrane and membrane + bending stresses have been compared with the code allowed limits. The complex stresses found in the finite model have been reduced to pass/fail criteria.

It can also be seen that the stress classification line did not pass through the area of highest stresses – the user repeated the analysis through a higher stress area – see the following page.

Some Stress Linearization utilities can interpolate data through areas where no nodes are found – no split lines are required. Where to put the split lines and how to interpret the results are not in the scope of this report – this report is concerned with how the stress linearization utility works.

FEA Report showing Stress Linearization

SCL through a location near the root of a weld fillet. Here the stresses are mostly uniform from inside to outside surface, which the SCL interprets as mostly membrane.


SCL through a weld and into the highest stress area of a nozzle. The SCL interprets the difference in stress from inside to outside as bending. Here the stresses are excesive.

How does Stress Linearization work?

What is happening under the hood when your stress linearization utility presents results? (Per ASME VIII-2 5.A.4 or “Stress Integration Method”) A spreadsheet stress linearization utility is attached that allows you to try this for your self.

Step 0 – Prepare the Model

The model might not provide nodes at the location where they are required. They might not exist, or the nodes might not line up in a straight line. In this case, the user splits the model to provide a line where a row of nodes stretching from the inside to the outside of the model.

The required location of the line might not be known until the model is run. Multiple lines might be required (Some programs provide tools to extract data where there are no nodes and without splitting models).

Caution – splitting a model to create stress classification locations can increase the number of surfaces with force loads. The forces that might be correct before the split can now be too large. Don’t forget to re-check your reaction force balances after spitting a model!

Step 1 – Import Data From a Finite Analysis Run

The FEA program exports results for each node in the model. When using high order elements, intermediated nodes are also generated. The required data is:

  • The location of the node – (x, y, z) in the models global coordinate system
  • The 6 stresses at each node – (Sx, Sy, Sz and shear Txy, Txz, Tyz).

The FEA program solves for the above stresses, but usually translates the results into vonMises or Tresca results which are more commonly viewed.

The utility included with this report is written to import data from Cosomos Designer. The code can be viewed by pressing Alt+F11 in Excel. It is up to the user to translate it to read other FEA outputs.

Step 2 – Order the Data

The data will probably be imported in nodal order. The program needs to arrange the nodes on the SCL from inside to outside. The stress linearization tool will determine the ends of the line, and sort the nodes between them.

The program finds the maximum and minimum x, y and z coordinates and decides which end will be the start (end i or inside) and which the finish (end j or outside). Usually the node closest to (0,0,0) is the start end (or end i). The distance from i to j is the length of the stress classification line or t. Half way between i and j is the center of the line.

Caution – the program might not order the data in the direction that you were expecting. If you are looking at graphical results, the stress classification line results might be the reverse of what was expected. Know which end of the line matches the inside of your vessel (coordinates for the lines can be found below the graph)…

The sample utility included with this report has a box that allows the direction of the line in the graph to be reversed (normal or reverse) – note: which end is chosen as end i or j has no impact on the calculated results.

Step 3 – Translate the Stresses to Local Coordinates

When the data is imported, 6 stress components are read for each node on the SCL. The stress components are aligned with the global coordinate system of the model. The data for each node needs to be translated along the line ij. Instead of directions x, y and z, we now have N, T and H.

Theoretically, N stands for Normal, T Tangential and H Hoop stress directions. However, when the program reads and translates the data, the only guaranty is that the tangential stress is aligned to the SCL running from ij and N and T are at 90 degrees to it and each other.


Step 3b – Interpolate the Data Points

This utility uses cubic splines to interpolate more data points along the SCL. 71 equally spaced nodes are used to reduce integration errors caused by too few data points. See Appendix 3.

Step 4 – Calculate the Membrane Stress: Pm

The distance between each node along the SCL is the dimension dx. dx usually varies between nodes depending on how the model is meshed. Sum (integrate) dx*Sn over the length of the SCL from i to j. Repeat for each of the other 5 local stress components. This produces 6 stress components (Snm, Stm, Shm, Tntm, Tnhm, Thtm). These 6 components are either fed into a Tresca routine (ASME VIII-2 2006 edition) or von Mises (ASME VIII-2 2007 edition). The output is a single value for the membrane stress.


Note – von Mises stresses can be 85% to 100% of the reported Tresca stress for the same input data. Von Mises stress criteria of VIII-2 2007 edition is less conservative than the 2006 Tresca criteria.

The membrane stress (and other intermediate stresses) can be found to the right of the output section of the sheet.


Step 5a – Calculate the Bending Stress: Pb

The bending component is perpendicular to the SCL. Only components Sn, Sh and Tnt are perpendicular to the line running from i to j. The program integrates the “linear varying portion” of these stresses along the line and produces Snb, Shb and Tnhb bending components. See the section “IntegrateMembraneAndBendingStress” in the code to see how the membrane and bending components are calculated.

The utility uses the three components to calculate the bending only stress.


The Pb stress has no real application in pressure vessels on its own. The code rules for determining the acceptability of stresses refer to membrane + bending stress…

Step 5b – Calculate the Bending + Membrane Stress: Pm + Pb

The membrane + Bending stress needs to be calculated for each end of the SCL.


The end with the larger stress is reported. The utility included with this report interpolates the membrane + bending stress from i to j.

Step 6 – Calculate the Peak Stress

The actual stress at each node is known from step 3. The SCL utility calculates and plots the von Mises or the Tresca stress for each node. The peak stress is simply the highest calculated stress along the line from i to j.

Note: The peak stress can be higher or lower than the membrane + bending stress. Two pages follow – in the first, the peak stress in a wide flange beam under bending load is slightly less than the membrane + bending stress. In the second, the peak stress in a heavy wall pipe is much higher than the membrane + bending stress.

Note – the Pm and Pm+Pb stress is used to determine if the stress is below the code allowed limits and for cycle life calculation. Peak stress is not normally used.


Peak stress is less than Membrane + Bending stress


Peak stress is much greater than Membrane + Bending stress

Step 7 – Show the Shear Stress at Each Node (A Step for the User, Not the Utility)

The shear stress can be used to judge the quality of the SCL. For many pressure vessel applications, the shear stress is expected to be zero at the inner and outer surface of a pressure vessel. The following 2 examples show an SCL firstly perpendicular to the surface and in the second example slanted. The components of shear in the second example are clearly not zero at each end.

For this very simple example, the shear stresses could be used to pick between a good SCL and a bad one. Some locations on a vessel have surface shear stresses so this rule will not always work.

Step 8 (Also a Step for the User!) – Study the Results…

…and think about it. The SCL utility is just a tool – use your brain!



App. 1: Finding Endpoints of the Stress Classification Line (SCL)

The data is imported from the FEA program in nodal order. The nodal order has no relation to the order that the elements are needed for analysis. The nodes must be arranged from inside (i) of the model to outside (j). The endpoints have to be found, and the nodes ranked from i to j.

This utility sorts the imported nodes to find the two nodes with the largest distance from all the other imported nodes. These nodes are the endpoints i and j. The node closer to the origin is assigned as i.

Note: the use of i as the inside and j as the outside is an arbitrary but convenient notation. Identical results will be obtained if i and j are reversed.

See the routine ChooseNodeij for more details. This routine can handle distorted stress classification lines and individual nodes that are located off the true SCL. Curved SCLs could also be used.

App. 2: Routines for von Mises and Tresca Stress (VBA)

These routines are programmed into the sample excel spreadsheets. Von Mises is easy. Tresca is bear involving finding the principle stresses (Mohr’s circle). Look for the routines VonMisesStress and TrescaStress

App. 3: Integration Method

The quality of results obtained from stress classification are strongly dependent upon the number of nodes found on the SCL. When insufficient nodes are present, the linearization tool will typically over-report the membrane and the membrane+ bending stress.


The above membrane stress data is from the thick walled pipe sample. The stress linearization utility included with this report uses 71 node cubic spline interpolation along the imported SCL data. This original data set has 17 nodes from i to j. In the above graph, nodes are dropped from the data set to produce SCLs with 17, 9, 5, 3 and 2 nodes. Without interpolation 9 nodes are required to reduce the error level to below 5%. With cubic spline interpolation, this level of accuracy is reached with about 4-5 nodes. The more complex the stress pattern, the more pronounced the effect.

Typically the stresses in an object are highest at the surface. This effect causes the linearization tool to over-report stresses in the middle of the object when insufficient nodes are used. The end result is reported membrane and bending stresses that are higher than actual.


This is only one cause of bad results with few nodes. The other is the integration mathematics. Bending stresses calculations use both the distance from the center of the line and the magnitude at the point. These calculations are more accurate as the distance between points is decreased. Doubling the amount of data points on a SCL by simple linear interpolation between each given point increases the accuracy of the results. Using spline interpolation is better. For this utility 71 nodes are used to provide good quality graphs.


Here the results are shown for the same thick walled pipe sample. 17 nodes are read from the SCL. Cubic spline interpolation is used to setup new evenly spaced nodes along the line. The error from integration drops to less than 1% at 17 nodes. This error occurs for complex or simple stress patterns. Interpolation increases the accuracy of results.

71 nodes are used in the sample program. This corresponds to an expected integration error of 0.04% and provides plenty of nodes for a good graphing. An odd number of nodes are used to provide a middle node for the M+B graph. This same result using linear instead of cubic spline interpolation requires about 500 interpolated nodes.


Stress Classification Lines (SCL) – Passing Through Areas of Very High Error

File: PVE-3277, Last Updated: Feb 2009, By:LB, Update Sept 14 2016 LB


Stresses at sharp corners rise towards infinity as the mesh size is reduced. However the forces have to balance in a Finite Element model regardless of the mesh size used. In these studies SCL (Stress Classification Line) results are compared a different mesh sizes. This report shows that it is possible to take stress classification lines through these areas of peak stress and get ultimate stresses – however the results will not be as expected.

Two studies are shown. In Study 1, the SCL passes between 2 sharp corners. The stress classification method produces results that do not vary as the mesh is refined. However, it misses the magnitude of the membrane and reports no bending stress. This is a limitation of the stress classification method.

In study 2, the SCL passes through only one sharp corner. This study shows results that converge to a finite value. Again, the reported membrane stress is less than expected.

Sharp corners exist in pressure vessels, and produce high stresses in those locations.  We rely on the pressure vessel being built from ductile materials reducing the corner stresses from infinity to the material yield point.  Where possible, removing the sharp corners removes peak stresses.  When this can not be done, the SCL is the tool used to report the stress in a manner consistent with code rules.

Study 1 – High Error on Both Ends

Drawing of simple flat plate model.

The test shape – a simple flat plate modeled at 1/4″ thickness.

Drawing of split lines used to provide fixed nodes.

The split lines to provide nodes in fixed locations regardless of the mesh size used. The first line passes through the corners with zero radius and a theoretical infinite stress.

Drawing of applied loads.

Applied loads – 500 psi at the left edge. The right edge is fixed. The shell model is meshed at 1/4″ thick. Line 1 and Line 2 are identified. They are referred to as Stress Line 1 and Stress Line 2 in the rest of the report.

Stress results at 1 inch mesh.

Stress results at 1″ mesh size. Stress Intensity (Tresca*2 or P1-P3).

Error plot for 1 inch mesh.

The error plot for the 1″ Mesh size – the error around the corners is greater than 5% and should not be used. However, the results will be included in line #1. Line 2 only passes through elements with less than 5% error and should be acceptable.

Graph of von Mises

SCL through Stress Line 1 at 1″ mesh size. Membrane Stress = 282.93 psi Membrane + Bending Stress = 289.28 psi

von Mises graph for 2 inch mesh

SCL through Stress Line 2 at 1″ mesh size.
Membrane Stress = 333.45 psi
Membrane + Bending Stress = 334.59 psi

von Mises graph for 0.5 inch mesh

SCL through Stress Line 1 at 0.5″ mesh size.
Membrane Stress = 289.963 psi
Membrane + Bending Stress = 290.71 psi

von Mises graph stress line 2

SCL through Stress Line 2 at 0.5″ mesh size.
Membrane Stress = 333.43 psi
Membrane + Bending Stress = 333.92 psi

von Mises graph

SCL through Stress Line 1 at 0.25″ mesh size.
Membrane Stress = 286.58 psi
Membrane + Bending Stress = 288.69 psi


SCL through Stress Line 2 at 0.25″ mesh size.
Membrane Stress = 333.42 psi
Membrane + Bending Stress = 333.66 psi


SCL through Stress Line 1 at 0.125″ mesh size.
Membrane Stress = 290.21 psi
Membrane + Bending Stress = 292.58 psi


SCL through Stress Line 2 at 0.125″ mesh size.
Membrane Stress = 333.42 psi
Membrane + Bending Stress = 333.53 psi

FEA error plots for 4 mesh sizes

Error plots for the 4 mesh sizes studied. Same 0-5% scale.

Graph of stress vs mesh size

Conclusions for Study 1:

1) Although SCL 1 passes through 2 areas of theoretical infinite stress, and resulting high error, the SCL results are practically unchanged as the mesh is refined. Although the stresses are rising at the ends of the SCL at points that are approaching infinity, these high stresses are affecting increasingly smaller element areas and are having smaller impacts. The end result is constant reported Membrane and Membrane + Bending results.

2) The reported membrane stress for SCL 1 is less than for SCL 2. The expected answer is that the membrane stress is the same for both lines – 333 psi. For SCL 1, shear stress Tnt provides a large component of the stress. This stress is positive at one end of the SCL and negative at the other. The membrane stress is calculated by averaging these stresses over the length of the line, so Tnt makes no contribution.

The stresses at both ends of SCL 1 increase. They are not alternating (increasing on one end, decreasing on the other) as is found in a bending stress. The SCL tool does not see these stresses as being a bending stress because they are not alternating.

The results are not as expected for SCL 1 – this is a limitation of the stress classification method. Stress classification lines should not be run between 2 sharp corners.

Study 2 – High Error on One End Only

The shape from study 1 is cut in half for this next study. SCL 1 runs from a sharp corner to a smooth surface. Identical stress classification locations are used.

Drawing for study 2

The test shape #2 – One half of the test shape used in study #1 – again modeled at 1/4″ thickness. The split lines to provide nodes in fixed locations regardless of the mesh size used. The first line passes through one corner with zero radius (and a theoretical infinite stress). Line 1 and Line 2 are identified. They are referred to as Stress Line 1 and Stress Line 2 in the rest of the report.

FEA model - applied loads

Applied loads – 250 psi at the left edge. The right edge is fixed. The shell model is meshed at 1/4″ thick. Stress results are shown at 1″ mesh size. Stress Intensity is shown (Tresca*2 or P1-P3). Theoretical stress is 250 lbs/(3″ x 0.25″) = 333.33 psi.

Error plot of 1 inch mesh.

The error plot for the 1″ Mesh size – the error around the corners is greater than 5% and should not be used. However, the results will be included in line #1. Line 2 only passes through elements with less than 5% error and should be acceptable.

Graph of von Mises

SCL through Stress Line 1 at 1″ mesh size. Membrane Stress = 280.98 psi Membrane + Bending Stress = 337.22 psi


SCL through Stress Line 2 at 1″ mesh size. Membrane Stress = 333.35 psi Membrane + Bending Stress = 334.85 psi
The remaining Stress Line 2 plots look identical and are not shown.


SCL through Stress Line 1 at 0.5″ mesh size.
Membrane Stress = 289.43 psi
Membrane + Bending Stress = 365.89 psi


SCL through Stress Line 1 at 0.25″ mesh size.
Membrane Stress = 293.38 psi
Membrane + Bending Stress = 381.87 psi


SCL through Stress Line 1 at 0.125″ mesh size.
Membrane Stress = 296.27 psi
Membrane + Bending Stress = 392.75 psi

Chart of mesh sizes and stressesGraph of stress vs mesh size

Conclusions for Study 2:

1) SCL 1 which passes through an area of theoretical infinite stress reports increasing Membrane and Membrane + Bending results as the mesh is refined. However, these reported results converge to fixed, not infinite values. Ultimate stresses at zero mesh size can be extrapolated for the Membrane and the Membrane + Bending stresses. The ultimate membrane stress is less than the 333 psi expected because some of the stress is interpreted as bending.

2) Avoiding the areas of high error on one end of an SCL is desired if possible.