Part III
The Method in SWBPIPE
A. The 3D beam model
SWBPIPE solves the problem of Part II by the direct stiffness method. The centreline is divided into elements that meet at nodes. Every node has six degrees of freedom, three movements and three rotations, in the order ux, uy, uz, θx, θy, θz. Each element relates the twelve movements at its two ends to the twelve forces and moments there through its stiffness matrix; the matrices are assembled into one system for the whole line and solved for the movements of the nodes. The classical force method of Part II F solves the same problem by other means, and the bend element below is built from the same flexibility integrals.
This part describes the method as it should be computed. Where the program does not yet compute it that way, a mark headed Today says so and links to the status of this edition.
1.Axes.
Each element has its own axes. Local x runs from the first node to the second. Local y comes from a reference direction given for the element, with its x component removed, and local z completes a right-handed set. For a round pipe the reference direction affects only the axes in which forces and moments are reported, not the stiffness. The element stiffness is turned into global axes by the direction cosines of the local axes,
where T repeats the 3 × 3 direction-cosine matrix four times along its diagonal. The inclined member case checks this transformation.
A reference direction must be entered on every pipe, although it does not change a round section’s stiffness.
2.Straight pipe.
A straight element carries axial force, torsion and bending about both local axes. Its section comes from the nominal outside diameter Do and nominal wall t, with Di = Do − 2t:
J is the torsion constant, equal to the polar moment for a circular tube. Stiffness and weight use the nominal wall. Corrosion and other allowances reduce the section used for stress only, as the codes require (Part II K).
For bending in the local x–y plane, with the degrees of freedom ordered vi, θz,i, vj, θz,j, an element of length L has the stiffness
| 12 | 6L | −12 | 6L |
| 6L | 4L2 | −6L | 2L2 |
| −12 | −6L | 12 | −6L |
| 6L | 2L2 | −6L | 4L2 |
In the x–z plane the terms coupling a movement to a rotation change sign, because a positive θy lowers the z coordinate ahead of it. The axial and torsional terms are EA/L and GJ/L.
The element is an Euler–Bernoulli beam, with no shear deformation. Commercial programs include it, so short, heavy legs will be stiffer here than in the program you validate in (Status). A mill tolerance, if entered, is taken off the wall for stiffness and weight as well as stress (Status).
3.Bends.
A bend is built the way the classical methods built it, from its flexibility. With one end held, the flexibility at the other end is found by integrating the unit-load moments and forces around the arc of radius R. The bending terms are multiplied by the flexibility factor k (Part II E):
where M is the in-plane and M′ the out-of-plane bending moment. For an elbow the classical theory gives the same k in both planes. The integrals are evaluated in closed form, the 6 × 6 flexibility is inverted, and the result is carried by equilibrium to a 12 × 12 stiffness joining the two tangent points. Weight is applied along the arc. The expansion loop checks the element at k = 1, 5, 10 and 20.
A bend drawn in the program is analysed as the straight chord between its ends, without k or SIF. The curved element is used only when a model file asks for it (Status). You enter k; the program does not compute it from the bend’s geometry.
4.Rigid elements, expansion joints and tees.
Rigid elements. Valves, flanges and other stiff components are modelled as elements many times stiffer than the pipe they join, with their weight lumped at their centre of gravity. Expansion joints replace the pipe over their length with the joint’s own axial, lateral, angular and torsional stiffness. A joint without tie rods also transmits its pressure thrust, the pressure times its effective area, to the adjoining pipe and anchors; tie rods carry that thrust across the joint instead. Tees join the header and branch at a common node; the branch SIF is applied with the branch section modulus.
There is no rigid element and component weights are not added (Status). Expansion joints have almost no effect (Status). A tee is a rigid junction with no branch section modulus (Status).
5.Assembly and solution.
Every element adds its stiffness into one system for the whole model, Ku = F. Restrained degrees of freedom are removed exactly, not represented by stiff springs, and prescribed movements carry their effect into the load. For a properly restrained model the reduced K is symmetric and positive definite. It is solved by a sparse direct method: the equations are reordered to keep the matrix narrow (reverse Cuthill–McKee), then factored as LDLT. A pivot that is zero or negative, or tiny against the largest diagonal term, means the model can still move as a mechanism; the solve stops there and names the free node and direction. A dense solve is available as a check.
No support is ever assumed. A model with no supports, or one missing a material, an orientation or a unit, is not solved, and the message names what is missing.
The pivot test is an absolute threshold, so some mechanisms are reported as solved (Status). Prescribed movements cannot yet be entered (Status).
6.What comes back.
From the solved movements the program recovers the reaction at every restraint, R = Ku − F, with its three force and three moment components; the forces and moments at the ends of each element; and the section forces at intermediate points along each element: its quarter points and middle. Element forces are recovered as the element stiffness times its end movements, less the equivalent loads that were applied to its nodes.
Each support reports only the size of its resultant force, with no components and no moments (Status).
Checked by: cantilever, branch assembly, loads to resultants, intermediate points, one linear static path, torsion.