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.
The final two articles address a contradiction in Canadian B51 FEA reporting requirements. The requirement is for the mesh to be refined until the results converge. However the mesh does not converge at discontinuities found in almost all pressurized devices. The solution is not to look for converged results, but to use Stress Classification Lines to derive the stresses instead.
Quick Links (to topics on this page)
- The Nuts and Bolts of Stress Linearization
- Stress Classification Lines (SCL) – Passing Through Areas of Very High Error
- Mesh Refinement at Discontinuities
- Mesh Refinements Near Discontinuities
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.
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.
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 Linearization Utility (xlsm) – version 2.36 (March 2012) – Important update to fix SolidWorks Simulation file format change.
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
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.
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.
Mesh Refinement at Discontinuities
Last Updated: Nov. 26, 2008, By: LB
Using the Error Function Results for Areas At Discontinuities
Error plots show how well the complexity of a mesh matches the complexity of the model and its loads. Once the mesh matches the complexity of the model, the reported error is low. We use 5% error as an acceptance criterion. This method checks the whole model at once, and is much less work than mesh refinement.
This study compares mesh refinement at a node with error plot methods to estimate the convergence of FEA results. CosmosDesigner (Now SolidWorks Simulation) 2708 SP5.0 FEA software is used for this report.
Example: Shell Element Error Plots
Test shape – a simple flat plate modeled at 1/4″ thickness. 3 test points (1, 2, 3) are shown on this model. A split line has been added to guarantee a node will always be available at point 2 to sample. For this sample, the stress at the three points is of interest, so the error at those points has to be less than 5% per the acceptance criteria.
Stress results and stress results graph. For this study, the results from 0.125 and 0.063″ mesh size meet the 5% acceptance criteria.
An ultimate stress value is extrapolated using linear regression on the above stresses and extrapolating to a theoretical zero mesh size (the 1″ mesh size data point for stress 1 is ignored).
In general, when the reported error is less than the 5% acceptance criteria, the actual error is much less. Even when the acceptance criteria is met, some elements will have higher error levels (Point 1 at 0.063″ mesh).
Mesh Refinement vs Error Plots
Mesh refinement by measuring the stress at individual locations and extrapolating to a theoretical zero mesh size can be used to validate individual areas on a model. However, many FEA runs are required, and in this case, only 3 points on the model were proven. There is no guarantee that the most important points have been studied. The Error plots prove every element in the model. If the first mesh chosen is acceptable, no additional work is required to prove the model.
Mesh Refinements Near Discontinuities
Last Updated: May 10 2013, By:LB
Error plots show how well the complexity of a mesh matches the complexity of the model. Once the mesh matches the complexity of the model, the reported error is low. As a guideline, Pressure Vessel Engineering uses 5% error as an acceptance criterion.
This report examines the accuracy of stress results near an area of discontinuity as the mesh is refined. The 5% error criteria estimates the errors in the mesh except in areas of very low stress located near high stress areas. These areas are not usually of interest in a pressure vessel study.
In this study stresses are measured at 5 fixed locations in a simple shape as the mesh size is changed. The stress errors predicted by the error function are compared with ultimate stress predicted from mesh refinement. SolidWorks SimulationDesigner 2008 SP5.0 FEA software is used for this report using 2nd order shell elements.
The SolidWorks Simulation Error function will not work for all locations on a model. For this model, the error results for Point 2 – a low stress area adjacent to a high stress area – were found to be not useable (the reported stress was too low vs. the real stress). Areas of low stress like this would not normally be of interest in a pressure vessel study.
As a guideline, at Pressure Vessel Engineering we consider using caution when viewing results at a node when there are elements within 1 node that have errors over 5%.
Point 5 – the sharp corner – never achieved an acceptable error level of 5% or less. The theoretical stress at a sharp corner is infinite. As the mesh size was reduced, the stress followed a curve towards infinity. The error function correctly showed that the results for that node were never usable.
In spite of the presence of Point 5 on the model – that theoretically reaches infinity – the stress values at the other locations settled along a smooth trendline towards an ultimate finite value. For these remaining locations, the error function predicted error results of 2/3 the actual final error. (Other reports have shown true errors of less than the predicted error.)
With these limitations in mind, the error function is a useful predictor of the accuracy of the calculated results without the need to run multiple mesh size runs. The error function checks the results for entire models vs. mesh refinement which only validates the actual points under study.