Convolution Fatigue & SCC Lifetime

E2400425-v2

Initial Release
Fatigue life prediction (number of cycles) for convolutions (bellows, expansion joints and convoluted cylinders) using EJMA-1993 and ASME BPVC.VIII.2-2023
Estimation of possible Stress-Corrosion Cracking (SCC) Lifetime for convolutions
Dennis Coyne, 7-Dec-2024

Introduction

The Cosmic Explorer (CE) and Einstein Telescope (ET) projects are considering the use of corrugated, thin-walled, tubing for their beam tubes as an alternative to thick-walled, smooth, straight piping or ring-stiffened piping (for a number of reasons; see for example https://dcc.ligo.org/LIGO-T2400337). The unstiffened and ring-stiffened tubes require bellows (expansion joints) to allow for expansion during vacuum bakeouts, as well as adjustments for alignment. The corrugated tube alternative does not require these discrete bellows (expansion joints) since they are (in effect) long bellows. However, the corrugated tube option incorporates many more convolutions to the overall assembly than a set of discrete bellows. If reliability against UHV leaks scales with convolutions, then the reliability of the system may be insufficient.

The convolutions are typically formed by either mechanical expansion or hydroforming. In either case, high plastic strains are induced in the forming of the bellows. Regardless of the method employed in forming the initial cylindrical shell (roll formed or spiral welded), axisymmetric convolutions will cross the weld. The heat affected zone (HAZ) of the weld is often the initiation site of microcracks leading to leaks later during the operational phase of the system. (If the tube is spiral welded and also spirally corrugated, at the same helix angle, then the corrugations would not cross the weld.)

The CERN CE vacuum team have demonstrated crack formation issues where the corrugation crosses the weld when autogenous TIG welding AISI 430. They have also demonstrated dramatic reduction in grain coarsening and improved formability (for corrugating) when employing autogenous, continuous wave (CW), laser welding of AISI 441:
M. Dakshinamurthy and A. T. Pérez, CERN, Materials and manufacturing for the pilot sector, 22 Jan 2024

Fatigue

nomenclature

Following ASME BPVC.VIII.2-2023, Part 4.19, “Design Rules for Bellows Expansion Joints”.
for unreinforced bellows
Part 4.19.5.6, "External Pressure Strength":
	4.19.5.6(a) External pressure capacity per Table 4.19.2
	4.19.5.6(b) and (c) Instability due to external pressure 
Part 4.19.5.7, "Fatigue Evaluation", Table 4.19.4, Table 4.19.5, Table 4.19.6
A = cross-sectional area of one convolution
C1, C2 = coefficients used to determine the coefficients Cd, Cf, Cp
Cd, Cf, Cp = stress coefficients for U-shaped convolutions
Db = inside diameter of bellows convolution and end tangents
Dc = mean diameter of tangent collar
Dm = mean diameter of bellows convolutions
Ds = inside diameter of cylindrical shell or weld end on which the bellows is attached
Eb = modulus of elasticity of bellows material at design temperature
E0 = modulus of elasticity of bellows material at room temperature
Ec = modulus of elasticity of collar material at design temperature
ef = bellows forming strain (depends on whether formed from cylinder of Db or Dm diameter)
Es = modulus of elasticity of shell or weld end material at design temperature
k = factor considering the stiffening effect of the attachment weld and the end convolution on the pressure capacity of the end tangent
Kf = forming method factor: 1.0 for expanding mandrel or roll forming; 0.6 for hydraulic, elastomeric or pneumatic tube forming
Kg = fatigue strength reduction factor, 1 < Kg < 4
Km = 1.5 Ysm for as-formed bellows; 1.5 for annealed bellows
Lc = bellows collar length
Ls = Sqrt[(Ds+ts) ts]/3 = effective shell length
Lt = end tangent length
n = number of plies
Nc = number of convolutions
Nalw = allowable number of displacement cycles
Nspe = number of specified (required) displacement cycles
P = design pressure
q = convolution pitch
ri = average internal radius of U-shaped convolution
rm = mean radius of U-shaped convolution
S = allowable stress from Annex 3-A of bellows material at design temperature
Ss = allowable stress from Annex 3-A of shell material at design temperature
St = total stress range due to cyclic displacement
S1 = circumferential membrane stress in bellows tangent, due to pressure P
S1ppp = circumferential membrane stress in shell for internally attached bellows
S2I = circumferential membrane stress in intermediate convolutions
S3 = meridional membrane stress
S4 = meridional bending stress
S5 = meridional membrane stress due to the total equivalent axial displacement range Δqe
S6 = bending stress due to the total equivalent axial displacement range Δqe
t = nominal thickness of a ply
tc = collar thickness
tp = thickness of one ply, corrected for thinning during forming
ts = nominal thickness of shell or weld end
w = convolution height
Ysm = yield strength multiplier depending upon material
xe, xc, y, θ = max axial extension, max axial compession, lateral and angular displacements
Δqe = total equivalent axial displacement per convolution

coefficient Cp

Table 4.19.3 data

c2={0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,2.0,2.5,3.0,3.5,4.0};

Set A of coefficients a0,a1,a2,a3,a4,a5 are for c1 ≤ 0.3:

Aa0={1.001,0.999,0.961,0.955,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95};
Aa1={-0.448,-0.735,-1.146,-2.708,-2.524,-2.296,-2.477,-2.027,-2.073,-2.073,-2.073,-2.073,-2.073};
Aa2={-1.244,0.106,3.023,7.279,10.402,1.63,7.823,-5.264,-3.622,-3.622,-3.622,-3.622,-3.622};
Aa3={1.923,-0.585,-7.488,14.212,-93.848,16.03,-49.394,48.303,29.136,29.136,29.136,29.136,29.136};
Aa4={-0.398,1.787,8.824,-104.242,423.636,-113.939,141.212,-139.394,-49.394,-49.394,-49.394,-49.394,-49.394};
Aa5={-0.291,-1.022,-3.634,133.333,-613.333,240,-106.667,160,13.333,13.333,13.333,13.333,13.333};

Afc2a0=Interpolation[Transpose[{c2,Aa0}],InterpolationOrder->1];
Afc2a1=Interpolation[Transpose[{c2,Aa1}],InterpolationOrder->1];
Afc2a2=Interpolation[Transpose[{c2,Aa2}],InterpolationOrder->1];
Afc2a3=Interpolation[Transpose[{c2,Aa3}],InterpolationOrder->1];
Afc2a4=Interpolation[Transpose[{c2,Aa4}],InterpolationOrder->1];
Afc2a5=Interpolation[Transpose[{c2,Aa5}],InterpolationOrder->1];

ACp[c1_,c2_]:=Afc2a0[c2]+Afc2a1[c2] c1+Afc2a2[c2] c1^2+Afc2a3[c2] c1^3+Afc2a4[c2] c1^4+Afc2a5[c2] c1^5;

Set B of coefficients a0,a1,a2,a3,a4,a5 are for c1 > 0.3:

Ba0={1.001,0.999,0.961,0.622,0.201,0.598,0.473,0.477,0.935,1.575,1.464,1.495,2.037};
Ba1={-0.448,-0.735,-1.146,1.685,2.317,-0.99,-0.029,-0.146,-3.613,-8.646,-7.098,-6.904,-11.037};
Ba2={-1.244,0.106,3.023,-9.347,-5.956,3.741,-0.015,-0.018,9.456,24.368,17.875,16.024,28.276};
Ba3={1.932,-0.585,-7.488,18.447,7.594,-6.453,-0.03,0.037,-13.228,-35.239,-23.778,-19.6,-37.655};
Ba4={-0.398,1.787,8.824,-15.991,-4.945,5.107,0.016,0.097,9.355,25.313,15.953,12.069,25.213};
Ba5={-0.291,-1.022,-3.634,5.119,1.299,-1.527,0.016,-0.067,-2.613,-7.157,-4.245,-2.944,-6.716};

Bfc2a0=Interpolation[Transpose[{c2,Ba0}],InterpolationOrder->1];
Bfc2a1=Interpolation[Transpose[{c2,Ba1}],InterpolationOrder->1];
Bfc2a2=Interpolation[Transpose[{c2,Ba2}],InterpolationOrder->1];
Bfc2a3=Interpolation[Transpose[{c2,Ba3}],InterpolationOrder->1];
Bfc2a4=Interpolation[Transpose[{c2,Ba4}],InterpolationOrder->1];
Bfc2a5=Interpolation[Transpose[{c2,Ba5}],InterpolationOrder->1];

BCp[c1_,c2_]:=Bfc2a0[c2]+Bfc2a1[c2] c1+Bfc2a2[c2] c1^2+Bfc2a3[c2] c1^3+Bfc2a4[c2] c1^4+Bfc2a5[c2] c1^5;

plot Cp data

Close match to Figure 4.19.12:

Aplt=Plot[{ACp[x,c2[[1]]],ACp[x,c2[[2]]],ACp[x,c2[[3]]],ACp[x,c2[[4]]],ACp[x,c2[[5]]],ACp[x,c2[[6]]],ACp[x,c2[[7]]],ACp[x,c2[[8]]],ACp[x,c2[[9]]],ACp[x,c2[[10]]],ACp[x,c2[[11]]],ACp[x,c2[[12]]],ACp[x,c2[[13]]]},{x,0,0.3}];
Bplt=Plot[{BCp[x,c2[[1]]],BCp[x,c2[[2]]],BCp[x,c2[[3]]],BCp[x,c2[[4]]],BCp[x,c2[[5]]],BCp[x,c2[[6]]],BCp[x,c2[[7]]],BCp[x,c2[[8]]],BCp[x,c2[[9]]],BCp[x,c2[[10]]],BCp[x,c2[[11]]],BCp[x,c2[[12]]],BCp[x,c2[[13]]]},{x,0.3,1},PlotLegends->c2];
Show[Aplt,Bplt,PlotRange->{{0,1},{0,1}},Axes->False,Frame->True,GridLines->Automatic,FrameLabel->{"C1","Cp"},PlotLabel->"Cp vs C1 and C2"]

coefficient Cf

Table 4.19.4 data

c2={0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,2.0,2.5,3.0,3.5,4.0};

coefficients a0,a1,a2,a3,a4,a5:

Cfa0={1.006,1.007,1.003,1.003,0.997,1,1,1.001,1.002,1,0.999,0.998,1};
Cfa1={2.375,1.82,1.993,1.338,0.621,0.112,-0.285,-0.494,-1.061,-1.31,-1.521,-1.896,-2.007};
Cfa2={-3.977,-1.818,-5.055,-1.717,-0.907,-1.41,-1.309,-1.879,-0.715,-0.829,-0.039,1.839,1.62};
Cfa3={8.297,2.981,12.896,1.908,2.429,3.483,3.662,4.959,3.103,4.116,2.121,-2.047,-0.538};
Cfa4={-8.394,-2.43,-14.429,0.02,-2.901,-3.044,-3.467,-4.569,-3.016,-4.36,-2.215,1.852,-0.261};
Cfa5={3.194,0.87,5.897,-0.55,1.361,1.013,1.191,1.543,0.99,1.55,0.77,-0.664,0.249};

Cfa0=Interpolation[Transpose[{c2,Cfa0}],InterpolationOrder->1];
Cfa1=Interpolation[Transpose[{c2,Cfa1}],InterpolationOrder->1];
Cfa2=Interpolation[Transpose[{c2,Cfa2}],InterpolationOrder->1];
Cfa3=Interpolation[Transpose[{c2,Cfa3}],InterpolationOrder->1];
Cfa4=Interpolation[Transpose[{c2,Cfa4}],InterpolationOrder->1];
Cfa5=Interpolation[Transpose[{c2,Cfa5}],InterpolationOrder->1];

Cf[c1_,c2_]:=Cfa0[c2]+Cfa1[c2] c1+Cfa2[c2] c1^2+Cfa3[c2] c1^3+Cfa4[c2] c1^4+Cfa5[c2] c1^5;

plot Cf data

Close match to Figure 4.19.13:

LogPlot[{Cf[x,c2[[1]]],Cf[x,c2[[2]]],Cf[x,c2[[3]]],Cf[x,c2[[4]]],Cf[x,c2[[5]]],Cf[x,c2[[6]]],Cf[x,c2[[7]]],Cf[x,c2[[8]]],Cf[x,c2[[9]]],Cf[x,c2[[10]]],Cf[x,c2[[11]]],Cf[x,c2[[12]]],Cf[x,c2[[13]]]},{x,0,1},PlotRange->{{0,1},{0.05,3}},Axes->False,Frame->True,GridLines->Automatic,FrameLabel->{"C1","Cf"},PlotLabel->"Cf vs C1 and C2",PlotLegends->c2]

coefficient Cd

Table 4.19.4 data

c2={0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,2.0,2.5,3.0,3.5,4};

coefficients a0,a1,a2,a3,a4,a5:

Cda0={1,0.999,1.003,1.005,1.001,1.002,0.998,0.999,1,1,1,1,1.001};
Cda1={1.151,1.31,2.189,1.263,0.953,0.602,0.309,0.12,-0.133,-0.323,-0.545,-0.704,-0.955};
Cda2={1.685,0.909,-3.192,5.184,3.924,2.11,1.135,0.351,-0.46,-1.118,-0.42,-0.179,0.577};
Cda3={-4.414,-2.407,5.928,-13.929,-8.773,-3.625,-1.04,-0.178,1.596,3.73,1.457,0.946,-0.462};
Cda4={4.564,2.273,-5.576,13.828,10.44,5.166,1.296,0.942,-1.521,-4.453,-1.561,-1.038,0.181};
Cda5={-1.645,-0.706,2.07,-4.83,-4.749,-2.312,-0.087,-0.115,0.877,2.055,0.71,0.474,0.08};

Cda0=Interpolation[Transpose[{c2,Cda0}],InterpolationOrder->1];
Cda1=Interpolation[Transpose[{c2,Cda1}],InterpolationOrder->1];
Cda2=Interpolation[Transpose[{c2,Cda2}],InterpolationOrder->1];
Cda3=Interpolation[Transpose[{c2,Cda3}],InterpolationOrder->1];
Cda4=Interpolation[Transpose[{c2,Cda4}],InterpolationOrder->1];
Cda5=Interpolation[Transpose[{c2,Cda5}],InterpolationOrder->1];

Cd[c1_,c2_]:=Cda0[c2]+Cda1[c2] c1+Cda2[c2] c1^2+Cda3[c2] c1^3+Cda4[c2] c1^4+Cda5[c2] c1^5;

plot Cf data

Close match to Figure 4.19.14:

LogPlot[{Cd[x,c2[[1]]],Cd[x,c2[[2]]],Cd[x,c2[[3]]],Cd[x,c2[[4]]],Cd[x,c2[[5]]],Cd[x,c2[[6]]],Cd[x,c2[[7]]],Cd[x,c2[[8]]],Cd[x,c2[[9]]],Cd[x,c2[[10]]],Cd[x,c2[[11]]],Cd[x,c2[[12]]],Cd[x,c2[[13]]]},{x,0,1},PlotRange->{{0,1},{0.4,3}},Axes->False,Frame->True,GridLines->Automatic,FrameLabel->{"C1","Cd"},PlotLabel->"Cd vs C1 and C2",PlotLegends->c2]

fatigue curves

Ncu[St_]:=(1.86 10^6/(St-54000))^3.4;
Stu[Nc_]:=(1.86 10^6/Nc^(1/3.4)+54000) 0.00689476; (* MPa, U-shaped, unreinforced *)
Str[Nc_]:=(5.18 10^6/Nc^(1/2.9)+41800) 0.00689476; (* MPa, U-shaped, reinforced *)
Stt[Nc_]:=(2.30 10^6/Nc^(1/3.25)+41800) 0.00689476; (* MPa, toroidal *)
Sta[Nc_]:=Module[{St1,St2,St3},St1=35850/Nc^(1/2)+264;St2=46200/Nc^(1/2)+211;If[St1>448,St1,If[St2>257.2,St2,257.2]]]; (* MPa, U-shaped, unreinforced *)
Ncmin=10^2;
Ncmax=10^7;
plt1=LogLogPlot[{Stu[x],Str[x],Stt[x],Sta[x]},{x,Ncmin,Ncmax},PlotRange->{{Ncmin,Ncmax},{10^2,10^4}},Frame->True,FrameLabel->{"Fatigue Life (cycles)","Total Stress Range (MPa)"},GridLines->Automatic,PlotLegends->{"EJMA U-shaped, unreinforced","EJMA U-shaped, reinforced","EJMA toroidal","ASME U-shaped, unreinforced"}]

Export["fatigue.png",plt1,ImageSize->8*300,ImageResolution->300];

SystemOpen[DirectoryName[AbsoluteFileName["fatigue.png"]]]

LIGO Bellows

compare to CBI calculation per EJMA from  LIGO-E950010-v1

input parameters

Db=48.750 0.0254; (* m *)
Dc=0;
Ds=Db;
Eb=28.3 10^6 6894.76; (* Pa *)
E0=Eb;
Ec=0;
Es=Eb;
Kg=1;
Lc=0;
Lt=6 0.0254;
n=1;
Nc=6;
Nspe=50 365;
P=14.7 6894.76; (* Pa *)
q=2.5 0.0254;
S=115 10^6; (* Pa *)
Ss=S;
t=0.105 0.0254;
tc=0;
ts=0.127 0.0254;
w=3.020 0.0254;
xe=1.210 0.0254;
xc=0.430 0.0254;
y=0.125 0.0254;
θ=0.300 (Pi/180); (* rad *)

calculated parameters

k=Min[Lt/(1.5 Sqrt[Db t]),1.0];
Ls=Sqrt[(Ds+ts)ts]/3;
Dm=Db+w+n t;
tp=t Sqrt[Db/Dm];
ri=(q-2 t)/4;
rm=ri+n t/2;
A=n tp (2 Pi rm+2 Sqrt[(q/2-2 rm)^2+(w-2 rm)^2]);
Kf=1.0;
ef=Sqrt[(Log[1+2 w/Db])^2+(Log[1+n tp/(2 rm)])^2]; (* formed 100% to outside of Db *)
Ysmi=1+9.94 (Kf ef)-7.59 (Kf ef)^2-2.4 (Kf ef)^3+2.21 (Kf ef)^4;(* austenitic stainless steel *)
Ysm=Max[Min[Ysmi,2],1];
Km=1.5 Ysm;
C1=2 rm/w;
C2=1.82 rm/Sqrt[Dm tp];
Cp=If[C1≤0.3,ACp[C1,C2],BCp[C1,C2]];
Δqxe=xe/Nc;
Δqxc=xc/Nc;
Δqye=3 Dm y/(Nc (Nc q+xe));
Δqyc=3 Dm y/(Nc (Nc q+xc));
Δqθ=Dm θ/(2 Nc);
Δq=Δqxe+Δqxc+Δqye+Δqθ;

stresses due to pressure P

S1=P(Db+n t)^2 Lt Eb k/(2 (n t (Db+n t) Lt Eb+tc Dc Lc Ec k)) (* Pa *)
S1/6895 (* psi *)
S1<S

S1ppp=P(Ds+ts)^2 (Ls+q/2)Es/(2 (n t (Db+n t) Lt Eb+ts (Ds+ts)Ls Es))
S1ppp<Ss

S2I=P q Dm/(2 A) (* Pa *)
S2I/6895 (* psi *)
S2I<S

S3=P w/(2 n tp) (* Pa *)
S3/6895 (* psi *)
S4=(P Cp/(2 n))(w/tp)^2  (* Pa *)
S4/6895 (* psi *)
S3+S4<Km S

stresses due to cyclic deflection

part 4.19.5.7

S5=Eb tp^2 Δq/(2 w^3 Cf[C1,C2]) (* Pa *)
S5/6895 (* psi *)

S6=5 Eb tp Δq/(3 w^2 Cd[C1,C2]) (* Pa *)
S6/6895 (* psi *)

St=0.7 (S3+S4)+(S5+S6) (* Pa *)
St/6895 (* psi *)

Fatigue life per ASME BPVC.VIII.2-2023

for CBI cyclic displacement estimate

part 4.19.5.7 and Table 4.19.6, operating conditions, 100F
The notes on Table 4.19.6 in ASME BPVC.VIII.2-2023, are as follows:
“(a) In the above equations, Kg is the fatigue strength reduction factor that accounts for geometrical stress concentration factors due to thickness variations, weld geometries, surface notches, and other surface or environmental conditions. The range for Kg is 1.0 ≤ Kg ≤ 4.0 with its minimum value for smooth geometrical shapes and ts maximum for 90 deg welded corners and fillet welds. Fatigue strength reduction factors may be determined from theoretical, experimental, or photoelastic studies. A factor has already been included in the above equations for N to account for normal effects of size, environment, and surface finish. If the expansion bellows does not have circumferential welds and satisfies all of the design and examination requirements of this paragraph, a Kg = 1.0 may be used.
(b) The allowable number of cycles given in this table includes a reasonable design margin (2.6 on cycles and 1.25 on stress) and represents the maximum number of cycles for the operating condition considered. Therefore an additional design margin should not be applied. ...”

Ste=Kg St (E0/Eb)/10^6 (* MPa *)
If[Ste>448,Nalw=(35850/(Ste-264))^2,\
If[Ste>257.2,Nalw=(46200/(Ste-211))^2,\
Nalw=10^6]];
Nalw (* cycles *)
Nalw/365 (* yrs *)

for more realistic diurnal cyclic displacement estimate

The diurnal temperature fluctuations to which the LIGO LLO BT is subjected are ~25C (see section 6.1.1.2 0f T2000475-v1). This results in just 17.2 mm tube expansion (bellows compression), as compared to the 41.7 mm total axial displacement assumed by CBI. The result is a total equivalent displacement of ~70% of the value used by CBI:

CTE=17.2 10^-6; (* m/m/C *)
ΔT=25;
L=40;
xe2=0;
xc2=CTE ΔT L;
Δqxe2=xe2/Nc;
Δqxc2=xc2/Nc;
Δqye2=3 Dm y/(Nc (Nc q+xe2));
Δqyc2=3 Dm y/(Nc (Nc q+xc2));
Δqθ2=Dm θ/(2 Nc);
Δq2=Δqxe2+Δqxc2+Δqye2+Δqθ2
Δq2/Δq

Scale the stresses S5 and S6 by the ratio of revised displacement to previously assumed displacement:

St = (0.7 (S3 + S4) + (S5 + S6) (Δq2/Δq)); (* Pa *)
Ste=Kg St (E0/Eb)/10^6 (* MPa *)
If[Ste>448,Nalw=(35850/(Ste-264))^2,\
If[Ste>257.2,Nalw=(46200/(Ste-211))^2,\
Nalw=10^6]];
Nalw (* cycles *)
Nalw/365 (* yrs *)

If the cycle margin of 2.6 is factored out:

Nalw 2.6 (* cycles *)
Nalw 2.6/365 (* yrs *)

Fatigue life per EJMA-1993

E950010-00-B, pg. 2, operating conditions, 100F

Ste=167.742; (* ksi *)
Ste 6.89476 (* MPa *)
Nalw=(1860/(Ste-54))^3.4 (* cycles *)
Nalw/365 (* yrs *)

GEO600 Convoluted Beam Tubes

as an example of a corrugated tube which has been in service for > 20 yrs, consider the GEO600 beam tube

input parameters

Db=0.6; (* m *)
Dc=0;
Ds=Db;
Eb=28.3 10^6 6894.76; (* Pa *)
E0=Eb;
Ec=0;
Es=Eb;
Kg=1;
Lc=0;
Lt=6 0.0254;
n=1;
Nspe=50 365;
P=14.7 6894.76; (* Pa *)
q=0.030;
S=115 10^6; (* Pa *)
Ss=S;
t=0.0009;
tc=0;
ts=t;
w=0.017;

calculate diurnal compression displacement

CTE=17.2 10^-6; (* m/m/C *)
ΔT=25;
L=40;
Nc=L/q;
y=0;
θ=0; (* rad *)
xe=0;
xc=CTE ΔT L;
Δqxe=xe/Nc;
Δqxc=xc/Nc;
Δqye=3 Dm y/(Nc (Nc q+xe));
Δqyc=3 Dm y/(Nc (Nc q+xc));
Δqθ=Dm θ/(2 Nc);
Δq=Δqxe+Δqxc+Δqye+Δqθ

calculated parameters

k=Min[Lt/(1.5 Sqrt[Db t]),1.0];
Ls=Sqrt[(Ds+ts)ts]/3;
Dm=Db+w+n t;
tp=t Sqrt[Db/Dm];
ri=(q-2 t)/4;
rm=ri+n t/2;
A=n tp (2 Pi rm+2 Sqrt[(q/2-2 rm)^2+(w-2 rm)^2]);
Kf=1.0;
ef=Sqrt[(Log[1+2 w/Db])^2+(Log[1+n tp/(2 rm)])^2]; (* formed 100% to outside of Db *)
Ysmi=1+9.94 (Kf ef)-7.59 (Kf ef)^2-2.4 (Kf ef)^3+2.21 (Kf ef)^4;(* austenitic stainless steel *)
Ysm=Max[Min[Ysmi,2],1];
Km=1.5 Ysm;
C1=2 rm/w;
C2=1.82 rm/Sqrt[Dm tp];
Cp=If[C1≤0.3,ACp[C1,C2],BCp[C1,C2]];

stresses due to pressure P

S1=P(Db+n t)^2 Lt Eb k/(2 (n t (Db+n t) Lt Eb+tc Dc Lc Ec k)) (* Pa *)
S1/6895 (* psi *)
S1<S

S1ppp=P(Ds+ts)^2 (Ls+q/2)Es/(2 (n t (Db+n t) Lt Eb+ts (Ds+ts)Ls Es))
S1ppp<Ss

S2I=P q Dm/(2 A) (* Pa *)
S2I/6895 (* psi *)
S2I<S

S3=P w/(2 n tp) (* Pa *)
S3/6895 (* psi *)
S4=(P Cp/(2 n))(w/tp)^2  (* Pa *)
S4/6895 (* psi *)
S3+S4<Km S

stresses due to cyclic deflection

part 4.19.5.7

S5=Eb tp^2 Δq/(2 w^3 Cf[C1,C2]) (* Pa *)
S5/6895 (* psi *)

S6=5 Eb tp Δq/(3 w^2 Cd[C1,C2]) (* Pa *)
S6/6895 (* psi *)

St=0.7 (S3+S4)+(S5+S6) (* Pa *)
St/6895 (* psi *)

Fatigue life per ASME BPVC.VIII.2-2023

part 4.19.5.7 and Table 4.19.6, operating conditions, 100F
The notes on Table 4.19.6 in ASME BPVC.VIII.2-2023, are as follows:
“(a) In the above equations, Kg is the fatigue strength reduction factor that accounts for geometrical stress concentration factors due to thickness variations, weld geometries, surface notches, and other surface or environmental conditions. The range for Kg is 1.0 ≤ Kg ≤ 4.0 with its minimum value for smooth geometrical shapes and ts maximum for 90 deg welded corners and fillet welds. Fatigue strength reduction factors may be determined from theoretical, experimental, or photoelastic studies. A factor has already been included in the above equations for N to account for normal effects of size, environment, and surface finish. If the expansion bellows does not have circumferential welds and satisfies all of the design and examination requirements of this paragraph, a Kg = 1.0 may be used.
(b) The allowable number of cycles given in this table includes a reasonable design margin (2.6 on cycles and 1.25 on stress) and represents the maximum number of cycles for the operating condition considered. Therefore an additional design margin should not be applied. ...”

Ste=Kg St (E0/Eb)/10^6 (* MPa *)
If[Ste>448,Nalw=(35850/(Ste-264))^2,\
If[Ste>257.2,Nalw=(46200/(Ste-211))^2,\
Nalw=10^6]];
Nalw //N(* cycles *)
Nalw/365 //N(* yrs *)

SCC

time=3 10^-3/10^-11 (* sec *)
time/(60 60 24 365) //N (* yrs *)

extrapolating to K = 1 MPa

time=3 10^-3/(2 10^-12) (* sec *)
time/(60 60 24 365) //N (* yrs *)

M=2.897 10^-2; (* air, kg/mol *)
μ=1.831 10^-5; (* air viscosity, Pa-s *)
P1=101325; (* atm pressure, Pa *)
P2 = 0;
Mdot=Pi M R^4 (P1^2-P2^2)/(16 μ L R T);

https://www.nist.gov/pml/sensor-science/thermodynamic-metrology/unit-conversions

Q=10^-6; (* Torr-L/s *)
Q 0.01270903 (* sccm *)

5/Sqrt[Pi 3 10^-6] //N

Molecular Slip Flow

M.R.Prisco, et. al., Predictions of Vacuum Loss of Evacuated Vials from Initial Air Leak Rates, Journal of Pharmaceutical Sciences, volume 102, issue 8, Aug 2013, pp. 2730-2737.
https://doi.org/10.1002/jps.23652

P1=101325; (* atm pressure, Pa *)
P2 = 10 133.3224;
R=287.09; (* m^2/s^2/K *)
TC=22.2;
T=TC+273.15;
TF=TC (9/5)+32;
μcgs=2.7104×10^−7 TF+1.6270×10^−4; (* dyne-s/cm^2 *)
μ=μcgs 0.1; (* Pa-s *)
f1=0.9;
L=3.625 10^-3;
Clear[Q];
Q[d_]:=(P1) ((Pi d^4/(256 μ L))((P1^2-P2^2)/P1)+(Pi d^3/(4 L))((P1-P2)/P1) Sqrt[Pi R T/32]((2-f1)/f1));

Qtsccm={10^-8,10^-7,10^-6,10^-5,10^-4,10^-3,10^-2,10^-1,1,10,100,1000}; (* sccm *)
Qt=Qtsccm 0.001689; (* Pa m^3/s *)
dia=Table[0,Length[Qt]];
Do[dia[[i]]=d 10^6/.NSolve[Q[d]==Qt[[i]],d,PositiveReals][[1]],{i,1,Length[Qt]}]
dia

P2 = 133.3224 10^-9; (* Pa *)
L=3.2 10^-3;
Qtorr={10^-9,10^-8,10^-7,10^-6}; (* Torr-L/s *)
Qt=Qtorr 0.133322; (* Pa m^3/s *)
dia=Table[0,Length[Qt]];
Do[dia[[i]]=d 10^6/.NSolve[Q[d]==Qt[[i]],d,PositiveReals][[1]],{i,1,Length[Qt]}]
dia

K1=1151 Sqrt[Pi dia[[1]] 10^-6]