SWBPIPE · The open manual
Part VI · VerificationVI

Part VI

Verification


Each case states a problem small enough to work by hand and compares the answer with the program. They are grouped by what they show. Of the 64 cases, 32 compare a solved or recovered result with an independent hand calculation, and five check the loads and boundary conditions the solver is given. The other 25 check the software: the state changes of the support iteration, repeatability, reading a model and reporting a failure. Two are withdrawn because they check a model now known to be wrong.

Every page says what its comparison shows and does not show, and which part of the program it exercises. Most cases call the solver’s components directly rather than the program’s own model-to-solve path, and most use small illustrative values rather than real pipe sizes. The suite is therefore evidence that the elements, loads, support logic and stress formulas are right, not yet that a real line built in the program solves correctly; the status of this edition says where it does not. None of the cases says anything about a design, or about compliance with a code.

Since 24 September 2026 every change proposed to the program runs these tests, with the rest of the solver’s tests, and its check fails if any of them fails. Each page also gives the command to run its case on your own machine.

A. System benchmarks · 1 case

A piping configuration solved independently by hand and compared with the solver.

  1. A plane L-bend between two anchors under a 150 K rise, with the elbow made progressively more flexible.

B. Elements and loads · 14 cases

Single elements and small frames solved in closed form, and the loads prepared for the solver.

  1. A header and a branch meet at one shared node; a force on the branch tip is checked for displacements and anchor reactions.

  2. A single member fixed at one end carries a lateral force at the other; the tip deflection is checked.

  3. A member held at both ends is warmed uniformly; the product’s thermal-restraint calculation must return the hand value of the restraint force.

  4. A single linear spring is given a prescribed displacement; the boundary set-up and the spring reaction are checked.

  5. A member at 45 degrees in plan is transformed to global axes; its direction cosines and matrix symmetry are checked.

  6. A straight pipe element turns mass into weight per metre and recovers its axial end force from a given displacement.

  7. An anchor, a spring and an imposed rotation are prepared together; the restrained freedoms and support values are checked.

  8. A hollow pipe is twisted using a shear modulus picked at an exact point or interpolated in temperature; tip rotations are checked, and a wrong fallback must be caught.

  9. One member is carried through load preparation, supports, solution and force recovery, and two faulty inputs must be reported.

  10. A cantilever pipe with a uniform load and a midspan point force is checked for equivalent end loads, tip movement and midspan resultants.

  11. The same cantilever loads are applied to a pipe running along global Y; the coordinate transformation of loads and results is checked.

  12. A cantilever pipe loaded over its middle half is checked for equivalent end loads, free-end movement and midspan resultants.

  13. Shear and bending are requested at four stations in a deliberately unsorted order; order and values are checked.

  14. Seismic and wind loads are generated from user-entered factors and the pipe’s own mass and size; intensities and end forces are checked.

C. Stress recovery · 15 cases

Stresses recovered from known section forces, checked against the formulas of Part III E.

  1. An axial force on an invented section; checks that the recovered axial stress equals force divided by area.

  2. Bending moments about two local axes; checks that each bending stress equals its moment divided by the matching section modulus.

  3. A straight pipe with an imposed end stretch and twist; checks the end force and torque and the axial and torsional shear stresses they produce.

  4. Internal pressure in a thin cylindrical wall; checks the hoop and longitudinal membrane stresses.

  5. Two load states on the same section; checks the component-by-component stress range, and that a pressure mismatch between the states is refused.

  6. A torque on an invented section; checks that the torsional shear stress equals torque times radius divided by the torsion constant.

  7. A loaded cantilever pipe with known free-end movement; checks the midspan bending moment and the stresses recovered from it.

  8. The loaded cantilever turned to run along global Y; checks that the midspan moment and bending stress come out as for the aligned pipe.

  9. A cantilever pipe loaded over its middle half only; checks the midspan bending moment and the stresses recovered from it.

  10. Shear, moment and stress at four stations requested out of order; checks the values and that the requested order is kept.

  11. A straight pipe carrying an entered thermal axial force with no movement; checks the axial force and stress at the end, at midspan and along a sweep.

  12. An axial force together with end bending and a line load; checks the midspan axial force, moment and the two stresses they produce.

  13. Midspan resultants on an invented circular pipe section; checks the section properties carried in and the stresses recovered from them.

  14. A pipe wall thinned by corrosion and mill tolerance thicknesses; checks the stresses from the thinner section and that the extra thinning lowers the section modulus.

  15. A fully restrained pipe warmed with properties taken at a hot temperature point; checks the axial stress, the range to the cold state and the record of which properties each state used.

D. Nonlinear supports · 6 cases

Rests, gaps and friction where the solver must find which supports act, with movements or reactions checked by hand.

  1. An axial member pushed by 8.0 N slides on a friction support (μ = 0.25, N = 12.0 N); the support must resist with a fixed −3.0 N rather than let go, leaving a 0.05 mm displacement.

  2. A friction support takes its normal force from the 100.0 N reaction at a named transverse restraint, giving a 30.0 N limit that holds a 10.0 N axial push in one iteration.

  3. A sticking friction support (μ = 0.30, N = 20.0 N) meets a 10.0 N axial push above its 6.0 N limit and must change to sliding, converging in two iterations.

  4. A sticking friction support with a given 100.0 N normal reaction and μ = 0.30 has a 30.0 N limit, holds a 10.0 N axial push, and converges in one iteration.

  5. A gap that starts closed at +0.01 mm would need a +3.0 N pulling reaction to hold the member against a −2.0 N load; it must open, leaving the end free at −0.02 mm.

  6. A released one-way support under a −10.0 N axial pull sees the end move −0.1 mm into its bearing side; it must re-engage and carry +10.0 N, with the end back at 0.0 mm.

E. Algorithm and software checks · 26 cases

State changes of the support iteration, repeatability, reading and recording a model, and failure reporting. These check the software, not the mechanics.

  1. A two-column portal frame is pushed sideways at the top; the case checks that assembly and solution repeat exactly.

  2. Nodal forces, a uniform weight and an imposed displacement are prepared for the solver; the sums and bookkeeping are checked.

  3. A cantilever written as a structured model file is read without hidden defaults and solved; the loads, reactions and resultants are checked.

  4. The solved model-file cantilever is packaged into a result record that says what each value is and traces load values back to their source.

  5. A released one-way support sees a trial displacement of −0.02 mm towards its bearing side; one classification step, with no frame solve, must re-engage it and count one change.

  6. An axial member pushed by 10.0 N moves further than a 0.05 mm clearance to a stop; the open gap must close and the loop converge in two iterations.

  7. A lift-off support that needs a positive reaction to stay in contact sees the opposite sign under a 10.0 N axial push; it must release and the loop converge in two iterations.

  8. A rotational lift-off support at a loaded tip releases first, and only then does a 0.002 mm transverse gap close; the solver must follow the chain over three iterations, one change at a time.

  9. At one tip, a friction support in x takes its normal force from a y restraint (100.0 N, limit 6.0 N) and slides, while a 0.0002 mm gap in z closes; both change on the first iteration.

  10. At one tip, a friction support in x with a normal force taken from a y restraint slides, while a lift-off support on rotation about z releases under a 2.0 N·mm moment.

  11. One tip carries a one-way support, a gap, a friction support and a rotational lift-off support at once; all four must change state on the first iteration and hold on the second.

  12. At one tip, a friction support in x with a given 20.0 N normal reaction (limit 6.0 N) slides while a 0.0002 mm gap in y closes; both change on the first iteration.

  13. At one tip, an axial lift-off support in x releases while a 0.0002 mm transverse gap in y closes; both change on the first iteration and hold on the second.

  14. The base two-support case: at one tip a one-way support in x releases while a 0.0002 mm gap in y closes.

  15. The same one-way-and-gap tip problem, run as an observation: it records that the solver converges in two iterations but applies no tolerance and no residual thresholds.

  16. The one-way-and-gap tip case with the transverse force reversed to −1.0 N and a gap that closes on negative displacement; both supports change on the first iteration.

  17. A gap-only tip case: a 0.0002 mm gap in x closes on positive movement while another in y closes on negative movement, both in the same first iteration.

  18. Mixing translation and rotation at one tip: an axial one-way support releases under 10.0 N while a lift-off support on rotation about z releases under 2.0 N·mm.

  19. One tip with a one-way support in x, a 0.0002 mm gap in y and a friction support in z (limit 3.0 N); all three must change on the first iteration.

  20. The one-way-and-gap pairing spread over two nodes of a two-span chain: a one-way support at the middle node releases while a 0.0002 mm gap at the tip closes.

  21. A two-span chain with a positive-side 0.0002 mm gap at the middle node and a negative-side gap at the tip; both must close on the first iteration.

  22. An active one-way support under a 10.0 N axial push sees a reaction of the wrong sense; it must release and the loop converge in two iterations.

  23. Two friction supports with the same 0.30 coefficient and 10.0 N normal reaction but tangential reactions of 2.0 N and 3.5 N; one classification step must keep one sticking and one sliding.

  24. A closed gap sits at its 0.25 mm clearance and bears with a −2.0 N reaction; one classification step must keep it closed with no change.

  25. A lift-off support in contact reaches a trial reaction of exactly 0.0 N at a 0.04 mm trial displacement; one classification step must release it and count one change.

  26. A released rotational one-way support must re-engage on the last allowed iteration (4 of 4); the solver must report a non-convergence failure rather than a result.

W. Withdrawn · 2 cases

Cases that check a model now known to be wrong. They will be rebuilt on the corrected mechanics.

  1. A pipe fixed at both ends is heated and pressurised; its equivalent end loads and recovered axial force are checked with zero displacement.

  2. Thermal, pressure and a partial-span transverse load are assembled together on one pipe; displacements and resultants along it are checked.

Still to come

The practitioner’s cases the suite does not yet contain.

  • A line on several rests under weight, with every support load worked by hand.
  • A three-dimensional line with out-of-plane bends at real pipe sizes, solved through the program’s own model-to-solve path.
  • A tee, with the branch stress intensified on the branch section.
  • A variable spring hanger designed by the standard procedure and analysed with its preload.
  • A rest near a pump nozzle that lifts off under thermal load.
  • A guide with clearance on the short leg of an L-bend, closing under thermal load.
  • A line sliding on several shoes with friction, and the anchor load it produces.
  • An expansion range formed as operating minus sustained, and the stress computed from it.
  • An imposed nozzle movement, and a line with cold spring.
  • Worked examples from the Kellogg manual.

The planned programme

Planned. None of it has been run yet.

The cases above were written as the solver was built. A fuller programme is planned to establish, for each release, which of the program’s capabilities agree with which independent references, and within what tolerances. Its result will be a statement of that scope, tied to one release. It will not be a certificate, a finding of compliance with any code, or a claim that SWBPIPE matches any other program in every respect.

It will draw on three kinds of reference:

  • Closed-form cases for axial load, bending, torsion, thermal expansion, springs, gaps and friction, with expected values computed by a separate reference program that shares no code with the solver.
  • Published benchmarks: the open verification cases of EDF’s Code_Aster for a straight pipe (SSLL106), the three-dimensional Hovgaard piping system (SSLL101) and a bent pipe in bending (SSLX102); and, if the program gains dynamic analysis, the NRC piping benchmark problems of NUREG/CR-1677.
  • Equivalent models run in established commercial programs where a licence is available, with each program’s version and native input kept with the result.

Capabilities will be qualified in groups, each passed or not on its own:

GroupWhat it covers
Straight pipe, staticAxial load, bending, torsion, thermal expansion, imposed movements, reactions and stresses, in several orientations and units.
Piping systems, staticAssembled three-dimensional lines with bends, under weight, thermal and applied loads.
Nonlinear supportsGaps, rests that lift off, friction, and the order in which loads are applied.
Each export formatWhether the model that reaches the receiving program is the model intended (Part V B).
Agents and screensWhether a model built by an agent and the same model built by a person reach the solver identical, with the same warnings.
DynamicsModal and response-spectrum analysis, if the program gains them.

The rules are written down before the tests are run. Expected values never come from the program under test. The tolerance for each quantity is set in advance and is not widened after a failure. A test that cannot run, for want of a reference or a licence, counts as not passed. Failures stay on the record, and each report lists every test the group requires, including those that failed or could not be run. Each record says who or what produced it: work done by an agent is labelled as an agent’s, and no review is claimed that did not take place. The evidence will be organised along the lines of NASA’s public standard for models and simulations, NASA-STD-7009B, without a claim of compliance with it.

The first step is the test machinery and the closed-form cases, with a report that is shown to fail when an error is put in on purpose. The Code_Aster straight-pipe and Hovgaard cases, the export checks and the nonlinear supports follow, before any dynamic analysis.

Contents · Part VI · The program: swbpipe.com · MIT licence