SWBPIPE · The open manual
Status of this editioniii

Status of this Edition


Open the Development Atlas for the product scope, current paths and remaining work. Previous status updates ↗

This page and the refreshed chapters describe implemented routes and known limits at revision 7a780551f0, checked on 22 October 2026. The manual’s Today marks link here. The case records identify their own execution paths and source pins. Historical records retain their earlier evidence, including revision 462f66975d. Three pressure cases retain their numerical comparisons from 12 October 2026 at revision a72f994d89. They have not been rerun for this edition. These comparisons establish only their stated cases and paths.

The original review examined revision bc6d3459b (24 September 2026), then e8562c068 (25 September 2026). Those changes admitted real project data and mixed rigid/nonlinear support directions. The current account uses source comparison, rather than assuming every original finding still applies.

Established section links remain valid. Each row distinguishes an implemented route, a remaining limit and historical behavior. A merge, test count or CI result does not establish general engineering validation. Read results with their route, model version and current limits visible.

The model and the route

A supported calculation, a readable result and an available output are separate capabilities.

Model document 0.6.0 is the current format. Models 0.1.0 through 0.5.0 are refused with a re-author diagnostic; the program does not migrate them. A pressure-free model omits pressure_contract. An exact-contract model declares 3.0.0/exact_pressure_v3 and its shear model. Pressure contract 2.0.0/exact_straight_pressure_v2 and its result identities are retired.

RouteImplemented calculation and desktop availability
Pressure-freePublishes preview-physics-2. Straight members and realized arcs use Euler–Bernoulli mechanics. Nonlinear supports have a four-pass iteration limit and a separate numerical confirmation after convergence. Outputs depend on the surface and result standing; fresh report packages remain unavailable.
Exact contractPublishes pressure-2. Straight members select Timoshenko or Euler–Bernoulli; new exact-contract authoring defaults to Timoshenko. Realized arcs remain Euler–Bernoulli. The route includes separate section bases, bend stress quantities and bounded expansion-joint laws with optional elastic tie rods. Eligible desktop results can export result JSON and stress-neutral CSV/JSON and enter user rule checks; reports and other handoffs remain refused.
Captured exact-source recoveryCan publish pressure-source-1 for eligible straight-member cases, now including Timoshenko and nonzero mill tolerance or corrosion allowance. Pressure regions must be explicitly empty. Bends, connectors and nonlinear supports remain outside the subset, which also has size and arithmetic-work limits. The same three desktop outputs are open only when the result reader admits the case; source results with load/reference states remain ineligible.
Retained-precision developmentBounded recovery, readers and selected output policies exist in development/test paths. The public desktop caller is not activated. Prepared policies and saved result bytes do not activate it.

Source basis: model format, desktop output policy and source-recovery limits.

A. Mechanics and result limits

Use the declared model route and its numerical standing when interpreting results.

LimitWhat happens, and what to do meanwhile
Pressure

The retired legacy_pressure_v1 contract is refused, even when its pressure is zero. A pressure-free document has no pressure contract. The former treatment omitted Poisson contraction and longitudinal pressure stress; those incorrect loads belong to historical results.

Model 0.6.0 accepts exact_pressure_v3, contract 3.0.0. It admits straight circular pipe, realized bends and supported objective connectors, including elastic tie rods, with linear restraints or springs. Each pressure region has equal bore and explicit terminal ownership, closure-transfer paths and E/ν, with derived G.

Pressure is a signed internal differential with zero external pressure increment and is uniform within each region. Negative differential pressure is admitted; external-pressure stability and collapse are not assessed. Mechanical, pressure-eigen and cap-transfer terms remain distinct.

Steady-flow momentum, transient pressure loads, Bourdon opening, pressure-dependent flexibility or SIFs, ovalization and hydrostatic head remain excluded. Nonlinear or constant-effort supports, combinations and equivalent-static generators are refused on this route.

Eligible pressure-2 results now reach desktop result JSON, stress-neutral CSV/JSON and user rule checks. Reports and other handoffs remain refused. See the output boundary for source-recovery and load/reference-state cases.

Meanwhile: use a supported, explicitly declared pressure model. Re-author refused legacy inputs; do not repair their results by adding a stress term.

Bends drawn in the program

A realized curved_bend_macro_element uses the entered radius, bend-plane reference and finite positive flexibility factor. The element uses stable small-angle calculations and global-frame assembly. The mechanics_geometry_only mode still uses the chord.

The earlier review recorded anchor forces about 58 % high and elbow stress about 23 % low for that chord treatment in an L-bend. Those figures do not qualify the current curved mode.

The pressure route includes bend free strain and member-owned end-cap transfer. Wall axial and effective force remain distinct. A region changes direction only at realized bends; mitres, straight-to-straight kinks and geometry-only pressure bends are refused.

Current results add signed normal-stress extremes, transverse-shear measures and bounded maxima along the arc. An entered in-plane/out-of-plane SIF pair supplies a separate directional bending measure and its arc maximum. These are mechanical quantities, not code stresses.

Pressurized arcs also publish a toroidal membrane hoop idealization and radial surface stresses when bend radius exceeds the section outer radius. The shear measure uses a local straight-annulus field without a curvature correction. Neither idealization is a general shell solution. A maximum can still be withheld when its enclosure check fails; solution error is separate.

Meanwhile: read the model mode, section basis and stated approximation before interpreting bend results.

Unstable models

The earlier review found apparently solved mechanisms with rotations of 109 radians or more. Current structural paths apply numerical integrity and formation gates. Successful factorization alone does not establish physical stability or accuracy of every recovered quantity.

Meanwhile: look at the largest displacement and rotation of every run before reading anything else. Read the result’s numerical admission and coverage limits.

Numerical recovery

The earlier check could report checks passed while errors in some recovered member rows exceeded its criterion. The merged repair reforms stiffness and loads from the represented inputs, applies displacement corrections and bounds error in the recovered member actions. The bound assumes the prepared matrix’s inverse norm is no more than 1024 times its Hager estimate. It also depends on the arc re-formation limits stated in the numerical design. The bound covers the intended system re-formed at 128-bit precision from the entered binary64 primitives. It does not bound physical modelling error.

Supported linear cases use checked member recoveries only when prior integrity checks passed and the member bound is available. Cases already demoted to Sensitive retain their earlier binary64 recovery rows. Checked forces, stresses and reactions can differ from a binary64 recalculation using the displayed displacements. A missing member bound cannot produce checks passed.

After nonlinear support iteration converges, a separate confirmation can establish the support state and member bound. Cases that pass publish checked member and support rows. Cases whose confirmation or bound is unavailable retain Sensitive with a named explanation; convergence alone does not qualify their rows. This confirmation does not extend the four-pass iteration limit. Some stress-free cases can also be Sensitive and carry STRESS_FREE_WITHIN_NUMERICAL_PRECISION.

Meanwhile: read the standing and recovery evidence for the actual case. A numerical bound is not a check of the entered physical model or code compliance.

Support loads

Ordinary preview-physics-2 publishes six signed support components where actions can be attributed. Ambiguous coincident rigid actions are withheld. Forces and moments must be interpreted with the declared frame and sign convention.

Historic precision-1 results retain force norms without moments; constant-effort reactions read zero. The current reader refuses that retired identity and requires a rerun; its historical record does not grant rule, report or export eligibility. Meanwhile: take unsupported support loads from the validating program.

SIF review row

Geometry-only bend markers and tee/branch records retain the separate user equal-factor intensified bending measure, i·hypot(My,Mz)/Z, on supported adjacent straight ends.

Realized bends now accept an explicit positive in-plane/out-of-plane SIF pair. It forms a directional intensified bending measure in the arc tangent frame and a bounded maximum along the arc. The flexibility factor, axial stress and torsional stress are not added to this measure, and it is never combined into a code stress.

The retired summary multiplied stress by SIF and, by default, flexibility factor; the historical test gave 699 MPa where 47 MPa was expected. That old row is not the current measure. User-entered factors still need their own engineering sources.

Summary stress

Current results publish supported straight and curved circular normal-stress extrema, with torsional shear kept separate. Arc maxima now use an enclosure over the declared arc problem, not just the five sampled stations. Incomplete member/case coverage still withholds the affected headline.

The exact route publishes nominal and reduced section results separately and selects no governing section basis. The new station extremes and shear measures do not supply principal, von Mises or Tresca stresses or a code stress range.

The retired summary added |σby| + |σbz|. Circular bending instead uses √(My2 + Mz2)/Z. The old sum could be up to 41 % high. Work from current signed resultants, section bases and coverage evidence.

Expansion joints

Legacy finite-span joint definitions and their four-rate element are refused and require re-authoring. An objective connector replaces one straight span with an authored symmetric 6×6 work matrix, frame, attachments and installed reference. Its law uses small displacements and rotations.

Model 0.6.0 admits explicitly untied hardware or explicit axial rods with a bilateral linear elastic law. Each rod has its own stiffness, attachment offsets, reference extension and source. Rod forces and the joint’s elastic and pressure actions are reported separately.

The unpressurized law remains available. The constant_effective_area_reference_v1 pressure law admits a joint as an edge of one equal-bore region between coaxial straight members with zero connector attachment offsets. Effective area, pressure basis and region ownership remain explicit. Joint faces at region terminals or beside realized arcs remain refused.

Ideal inextensible, tension-only and gapped rods, nuts, stops and collective constraints are not supported. Neither are finite rotation, geometric stiffness or pressure- and temperature-dependent tangent laws. The replaced span supplies no member result, self-weight or inherited load.

Meanwhile: use the supported connector and rod laws explicitly. An annotation-only joint supplies pipe mechanics and is refused on the pressure route.

Constant-effort hangers

The entered constant force acts in every solved ordinary load case, including thermal-only cases. It supplies no stiffness or restraint row. The ordinary result identifies the applied force; a historical zero reaction does not mean no force was applied.

Combinations are withheld when their factors would fail to count that force once. Model 0.6.0 does not provide device preload/reference laws or general hanger state history. Meanwhile: apply the hanger load as a force in the weight case only when using the inherited manual workaround. Do not also retain an active constant-force device.

Spring hangers

A rate alone does not supply the installed cold load or hanger design. Spring base motion and device preload/reference states are refused on model 0.6.0. Inactive or locked participation is also refused. A spring acts along its declared axis; an additional rigid guide needs a separate support.

Meanwhile: in the sustained case, model a designed spring as a constant force equal to its hot load when that approximation is independently justified. This approximation does not provide automatic hanger design or all load states.

Combinations with nonlinear supports

Ordinary preview-physics-2 withholds factored-linear mechanics combinations for nonlinear supports, constant-effort double counting and mixed modulus bases. These guards replace silent linear superposition of incompatible states. Result-state subtraction and range envelopes operate on solved rows; they do not solve a new equilibrium state.

Meanwhile: solve each combined nonlinear loading as its own load case (Part III D). Exact-pressure and model 0.6.0 load/reference-state combinations remain unsupported.

Section bases and allowances

On the exact route, nominal wall supplies stiffness and pipe-metal mass. Wall reduced by entered mill tolerance and corrosion allowance supplies the reduced stress section and pressure bore. Contents mass uses that bore. Stress rows are published on both nominal and reduced section bases, even when they coincide.

The pressure-free route retains its single wall-minus-mill-tolerance basis for stiffness, weight and stress. Meanwhile: identify the model route and each row’s section basis. The former blanket advice to omit mill tolerance does not describe the exact route. Source: section bases and shear model.

B. Models that cannot yet be built or solved

These limits block some models or require a separately validated method.

LimitWhat happens, and what to do meanwhile
Nonlinear iteration limit

The product active-set iteration stops after four passes. The earlier rack examples with a dozen or more rests, or five friction shoes, exceeded this limit. A higher-limit investigation converged those recorded models; it does not establish general convergence or change the product limit.

Meanwhile: keep nonlinear supports to the few that matter. Treat non-convergence as a failed solve, not an approximate solved state.

Imposed movements and cold spring

Model 0.6.0 supports explicit installation, material, thermal and fit reference states for independently solved straight circular members. Rigid support translations and rotations are absolute prescribed boundary values. Thermal and fit strain compose once as lambda_fit*lambda_thermal-1.

Spring base motions, device preload/reference laws, inactive or locked supports, per-case mass states and installation/contact history remain unsupported. A fit reference strain is not a general cut-and-close joint model. Meanwhile: apply unsupported movements in the validating program.

Rigid elements and component weights

Rigid component geometry and weight records do not establish a rigid solver element or applied component weight. A general reducer element remains unavailable. Meanwhile: confirm that component weight is absent from declared load sources. Then add its point force at the center of gravity.

Restraint directions

Restraints act along explicitly listed global axes. The type does not infer directions. Skewed or pipe-relative restraints, two-sided gaps and general links between two nodes remain outside this support model. The vertical support acts on global Z.

Only supported spring families consume finite stiffness. Unused stiffness blocks the solve. Meanwhile: do not represent guides or line stops on skewed runs as though they were pipe-relative restraints.

Friction

Ordinary friction is a separate support on one global axis. Its normal force is explicit or comes from a declared linear support reaction. This does not provide general friction on a lifting rest or a coupled Coulomb circle. Independent sliding axes can produce the earlier square-law behavior.

Nozzles and branches

General nozzle flexibility and nozzle-axis reporting remain unavailable. A tee does not supply a general flexible branch element or an independently established branch section modulus. Declared component modifiers do not create a code-qualified fitting model.

Hydrotest

Hydrotest pressure is refused by the mechanics solver. Hydrostatic head and a coupled contents pressure/weight state remain unsupported. Model 0.6.0 refuses locked hanger participation and per-case mass states. Meanwhile: check hydrotest in the validating program.

Units

Entered quantities need explicit compatible units. Supported inputs include bar, kN, kN·m, GPa, N/mm and °F. Unit conversion does not supply a pressure reference: barg and bara are refused unit symbols.

The earlier interface started in SI with meters. A display-unit setting does not alter the physical meaning of stored quantities. Pressure-reference assumptions belong in the explicit pressure contract.

C. Bounded and unfinished capabilities

These capabilities remain bounded, unavailable, or separate from engineering acceptance.

LimitWhat happens, and what to do meanwhile
Solve memory

Ordinary desktop solves run in capped local worker processes. The default pool is 75% of physical memory. The default per-solve worker budget is the smaller of 12 GiB and that pool; lower budgets are allowed. Larger per-solve budgets are not yet qualified.

Admission and worker growth check the pool, current memory pressure and conservative free-memory headroom. A solve can be refused before it starts or stopped during growth. Cancellation ends the worker; reservations are released after it exits. A resource refusal does not silently change the solver mode or numerical route.

The memory panel shows the selected budget, pool, reservations, queued work and refusal reasons. A pool above the recommended fraction requires acknowledgement; acknowledgement cannot bypass a headroom or qualification refusal.

The pool belongs to one app process. Its custody accounting counts delivered bytes and does not measure the webview heap. Other model commands do not yet have the solve ingress bound. The packaged CLI self-test runs outside this pool. These controls are not a whole-app memory guarantee or activation of the retained desktop route. Meanwhile: use the reported refusal to reduce the workload or free memory; do not infer that physical capacity guarantees a solve.

Code stresses

Mechanical load categories and user-authored rules do not provide a code stress implementation. Displacement ranges, allowables and code acceptance require the declared engineering method. The program supplies bounded force, moment and stress components (Part II K).

Formula evaluation supports intervals and refuses nonfinite intermediate arithmetic. A passing formula gate is not standards approval. Make the code check in the program you validate in.

Operating conditions

The ordinary route selects a material basis per case and withholds mixed-modulus combinations. Model 0.6.0 declares per-member actual, selected and installation temperatures, expansion definitions and selected E/ν, with derived G.

These states do not automatically create operating conditions T1, T2 …, code stress categories or a cold-modulus displacement range (Part II D).

Saved-state comparison

Local projects can be saved and reopened. The desktop comparison workspace currently compares a load-case basis with combination rows from the same run, using stable result IDs and explicit source references.

It does not compare two saved model states or separate analysis runs. A mapping editor, tolerance classification and named immutable state/run browsing remain unfinished. Result-state subtraction is a comparison of solved quantities, not a new equilibrium solve.

Model batch file export

The earlier desktop .mbf export wrote a skeleton: nodes, pipes, anchors and guides. Missing sizes, materials, fittings, temperatures and loads, altered support types, and US coordinates labeled as millimeters made that output unsuitable for direct design use.

The current CAEPIPE MBF package is an explicit smoke subset with source-unit records, stable-ID sidecars and loss reports. Package construction does not establish complete interchange or target-program acceptance. Desktop output also depends on its route policy.

Meanwhile: use an admitted file only as a start for a model in the receiving program (Part V). Reconcile its loss report, units, geometry, properties, supports and loads.

Libraries and tables

Library import validates declared provenance and bounded payloads. An imported or selected record does not establish solve readiness. Hanger libraries require explicit identities, quantity provenance and supported units; missing engineering values remain absent.

No bundled catalog, sizing, ranking, source scraping or vendor parser is supplied by that import boundary. Standards, material and fitting data need their own valid sources and selection evidence.

Wind and seismic

Ordinary equivalent-static generators retain bounded behavior. Wind acts on entered exposed spans along the declared global axis. Straight pipes permit disjoint fractional extents. Overlapping extents or mixed whole-span and fractional declarations on one pipe are refused. Realized curved-bend spans require whole-span loading; partial extents are refused. Wind supplies no height profile or automatic projection perpendicular to the pipe. Seismic load acts in one sense per case on the declared axes. A generator does not provide a complete wind or seismic analysis.

Exact-pressure equivalents and combinations remain unsupported. Model 0.6.0 does not provide per-case mass selection or a coupled hydrostatic contents state.

Shear deformation

Exact-contract straight members select timoshenko_annulus_energy_v1 or euler_bernoulli. New authoring defaults to Timoshenko with an energy-matched annular shear factor. A document’s existing selection is preserved. Realized arcs and pressure-free members remain Euler–Bernoulli. Compare the selected formulations before attributing a difference to shear flexibility.

Result points

Arc end and station rows use their declared tangent frames and signs. The current result format adds signed normal-stress extremes and transverse-shear measures at stations, optional directional SIF measures, and separately bounded arc maxima. Exact-route rows identify nominal and reduced section bases.

A bounded maximum applies to the arc problem formed from published binary64 end actions and uniform load intensities. Its enclosure does not include solution error, which has separate checks. A missing bound or incomplete member/case coverage still withholds the affected maximum or headline.

Five sampled values alone do not establish a governing maximum. Earlier case records can retain older row sets and chord-frame end actions; read their own source pins and metadata.

1.Implemented paths and evidence.

The original review found specific useful foundations. Its curved-bend comparisons agreed with a 64-segment straight model to five significant figures and independent L-bend solutions to eight. Those figures describe their recorded configurations and paths.

The current source contains coordinate transformations, exact restraint elimination, sparse structural solves, consistent span/arc loads and active-set support logic. Each capability has route and input limits. None establishes broad validation, complete numerical accuracy or shipping readiness for all piping systems.

Rust supplies the product result-reader decisions across native, WebAssembly and Python consumers. Python verifier copies remain in tests. Native solves retain the producer’s exact result bytes; exported envelopes identify copied members by canonical-value hashes.

The desktop can open a model document, solve, inspect results, save a local project and reopen it. Export remains subject to the result’s standing and route policy. Saves check the stored revision and write in one transaction. Another writer’s change requires a replacement prompt; a further change before confirmation is refused and prompts again. Recorded native smoke checks exercise this path; they do not issue a release.

Retained-precision development now includes straight Timoshenko members, separate section allowances, bounded member-load and combination handling, and the implemented coverage and arithmetic-work repairs. Its separate desktop activation is still pending. Some row kinds have no verified bound, and size, work and memory limits still apply. See the implemented sequence and activation boundary.

Captured exact-source recovery can publish pressure-source-1 for eligible straight-member cases, including Timoshenko and nonzero mill tolerance or corrosion allowance. It requires explicitly empty pressure regions, linear restraints or springs and supported nodal or load/reference-state inputs, within a 256-DOF ceiling and additional work limits. Bends, connectors, component records, actual pressure inventories and nonlinear supports remain excluded. A failed selected-source finalization now falls back to an ordinary publication on both supported source routes, with the reason recorded. That fallback keeps its own numerical standing and gains no retained qualification. See the source-family implementation and fallback design.

Desktop result JSON, stress-neutral CSV/JSON and user rule checks now admit eligible pressure-2 and pressure-source-1 results. The native reader must accept the source and its numerical standing; for source recovery, the registered live invocation is required. Pressure-source results with load/reference states remain ineligible, while an ordinary pressure-2 load/reference-state result can qualify. Stored or copied bytes alone do not supply that live source binding.

Reports and the other exact-route handoffs remain refused. Fresh report packages are unavailable for every current result identity, including pressure-free results. The three opened outputs do not make the remaining surfaces available. See the desktop policy and output design.

The repository contains macOS Apple-silicon packaging and draft 0.1.0 release notes. The draft still leaves the candidate revision, release date, artifact checksums and release evidence to be selected. This development account does not announce an available release. See the release preparation.

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