Class PipingStressAnalysis
java.lang.Object
neqsim.process.mechanicaldesign.designstandards.PipingStressAnalysis
- All Implemented Interfaces:
Serializable
Piping stress analysis utilities per ASME B31.3 (Process Piping).
Provides calculations for thermal expansion stress, pipe support spacing (span tables), sustained stress checks, and flexibility analysis. These are screening-level calculations suitable for preliminary design; detailed analysis should use dedicated piping stress software.
References:
- ASME B31.3: Process Piping
- ASME B31.1: Power Piping
- Version:
- 1.0
- Author:
- esol
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleSteel coefficient of thermal expansion at 20C in mm/(m*C).private static final doubleYoung's modulus for carbon steel at ambient in MPa.private static final doubleGravitational acceleration in m/s2.private static final doubleDensity of steel in kg/m3.private static final doubleDensity of water for hydro-test in kg/m3.private static final longSerialization version UID. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doubleallowableExpansionStressRange(double scMPa, double shMPa, double f) Calculate allowable thermal expansion stress range per ASME B31.3 Eq. (1a).static booleancodeStressCheck(double sustainedStressMPa, double expansionStressMPa, double allowableHotMPa, double allowableExpansionMPa) Check whether code stress requirements are met.static doubleexpansionLoopLength(double expansionMm, double pipeODMm, double allowableStressMPa) Calculate required expansion loop length for a straight pipe run.static doublemaxSupportSpan(double pipeODMm, double wallThicknessMm, double contentDensityKgM3, double insulationThicknessMm, double insulationDensityKgM3, double maxDeflectionMm, double allowableStressMPa) Calculate maximum allowable support span for a pipe.static doublemomentOfInertia(double pipeODMm, double wallThicknessMm) Calculate moment of inertia of pipe cross-section.static doublesectionModulus(double pipeODMm, double wallThicknessMm) Calculate section modulus of pipe cross-section.static doublesustainedStress(double pressureMPa, double pipeODMm, double wallThicknessMm, double bendingMomentNm, double stressIntensificationFactor) Calculate sustained (longitudinal) stress per ASME B31.3.static doublethermalExpansion(double lengthM, double installTempC, double operatingTempC) Calculate thermal expansion using default carbon steel coefficient.static doublethermalExpansion(double lengthM, double installTempC, double operatingTempC, double coefficientMmMC) Calculate thermal expansion of a pipe run.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
ALPHA_STEEL
private static final double ALPHA_STEELSteel coefficient of thermal expansion at 20C in mm/(m*C).- See Also:
-
E_STEEL_MPA
private static final double E_STEEL_MPAYoung's modulus for carbon steel at ambient in MPa.- See Also:
-
RHO_STEEL
private static final double RHO_STEELDensity of steel in kg/m3.- See Also:
-
RHO_WATER
private static final double RHO_WATERDensity of water for hydro-test in kg/m3.- See Also:
-
G
private static final double GGravitational acceleration in m/s2.- See Also:
-
-
Constructor Details
-
PipingStressAnalysis
public PipingStressAnalysis()
-
-
Method Details
-
thermalExpansion
public static double thermalExpansion(double lengthM, double installTempC, double operatingTempC, double coefficientMmMC) Calculate thermal expansion of a pipe run.- Parameters:
lengthM- pipe length in metersinstallTempC- installation temperature in CelsiusoperatingTempC- operating temperature in CelsiuscoefficientMmMC- thermal expansion coefficient in mm/(m*C), default 0.012 for CS- Returns:
- thermal expansion in mm
-
thermalExpansion
public static double thermalExpansion(double lengthM, double installTempC, double operatingTempC) Calculate thermal expansion using default carbon steel coefficient.- Parameters:
lengthM- pipe length in metersinstallTempC- installation temperature in CelsiusoperatingTempC- operating temperature in Celsius- Returns:
- thermal expansion in mm
-
allowableExpansionStressRange
public static double allowableExpansionStressRange(double scMPa, double shMPa, double f) Calculate allowable thermal expansion stress range per ASME B31.3 Eq. (1a).S_A = f * (1.25 * S_c + 0.25 * S_h)
- Parameters:
scMPa- basic allowable stress at minimum (cold) temperature in MPashMPa- basic allowable stress at maximum (hot) temperature in MPaf- stress range reduction factor (1.0 for less than 7000 cycles)- Returns:
- allowable expansion stress range in MPa
-
sustainedStress
public static double sustainedStress(double pressureMPa, double pipeODMm, double wallThicknessMm, double bendingMomentNm, double stressIntensificationFactor) Calculate sustained (longitudinal) stress per ASME B31.3.S_L = P*D/(4*t) + 0.75*i*M_A/Z
- Parameters:
pressureMPa- internal design pressure in MPapipeODMm- pipe outer diameter in mmwallThicknessMm- pipe wall thickness in mmbendingMomentNm- sustained bending moment at point in N*m (use 0 for straight pipe)stressIntensificationFactor- SIF (1.0 for straight pipe)- Returns:
- sustained stress in MPa
-
sectionModulus
public static double sectionModulus(double pipeODMm, double wallThicknessMm) Calculate section modulus of pipe cross-section.- Parameters:
pipeODMm- pipe outer diameter in mmwallThicknessMm- pipe wall thickness in mm- Returns:
- section modulus in mm3
-
momentOfInertia
public static double momentOfInertia(double pipeODMm, double wallThicknessMm) Calculate moment of inertia of pipe cross-section.- Parameters:
pipeODMm- pipe outer diameter in mmwallThicknessMm- pipe wall thickness in mm- Returns:
- moment of inertia in mm4
-
maxSupportSpan
public static double maxSupportSpan(double pipeODMm, double wallThicknessMm, double contentDensityKgM3, double insulationThicknessMm, double insulationDensityKgM3, double maxDeflectionMm, double allowableStressMPa) Calculate maximum allowable support span for a pipe.Based on simple-beam deflection formula with a maximum allowable midspan deflection of 3mm and bending stress limit. Returns the lesser of deflection-limited and stress-limited spans.
- Parameters:
pipeODMm- pipe outer diameter in mmwallThicknessMm- pipe wall thickness in mmcontentDensityKgM3- density of pipe contents in kg/m3insulationThicknessMm- insulation thickness in mm (0 if none)insulationDensityKgM3- insulation density in kg/m3 (0 if none)maxDeflectionMm- maximum allowable midspan deflection in mm (typically 3)allowableStressMPa- allowable bending stress in MPa- Returns:
- maximum support span in meters
-
expansionLoopLength
public static double expansionLoopLength(double expansionMm, double pipeODMm, double allowableStressMPa) Calculate required expansion loop length for a straight pipe run.Using the simplified formula: L_loop = sqrt(3 * E * D * delta / S_A)
- Parameters:
expansionMm- total thermal expansion to absorb in mmpipeODMm- pipe outer diameter in mmallowableStressMPa- allowable expansion stress in MPa- Returns:
- required loop leg length in meters
-
codeStressCheck
public static boolean codeStressCheck(double sustainedStressMPa, double expansionStressMPa, double allowableHotMPa, double allowableExpansionMPa) Check whether code stress requirements are met.- Parameters:
sustainedStressMPa- calculated sustained stress in MPaexpansionStressMPa- calculated expansion stress in MPaallowableHotMPa- allowable stress at hot temperature in MPaallowableExpansionMPa- allowable expansion stress range in MPa- Returns:
- true if both sustained and expansion stresses are within limits
-