Class ManifoldMechanicalDesignCalculator
java.lang.Object
neqsim.process.mechanicaldesign.manifold.ManifoldMechanicalDesignCalculator
- All Implemented Interfaces:
Serializable
Calculator for manifold mechanical design based on industry standards.
This class provides methods to calculate wall thickness, velocity limits, support design, vibration analysis, and structural analysis for manifolds including:
- Topside manifolds (offshore platforms)
- Onshore manifolds (process facilities)
- Subsea manifolds (production and injection)
Design standards applied:
- ASME B31.3 - Process Piping (topside/onshore)
- DNV-ST-F101 - Submarine Pipeline Systems (subsea)
- API RP 14E - Erosional Velocity
- NORSOK L-002 - Piping System Layout
- API RP 17A - Subsea Production Systems
- DNV-RP-F112 - Duplex Stainless Steel
- Version:
- 1.0
- Author:
- ASMF
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumManifold location enumeration.static enumManifold type enumeration. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleAcoustic power level in W.private doubleAIV likelihood of failure (0-1).private doubleAllowable stress in MPa.static final StringAPI RP 17A Subsea Production Systems.List of applied standards.static final StringASME B31.3 Process Piping.private doubleBranch pipe outer diameter in meters.private doubleBranch flow velocity in m/s.private doubleBranch pipe wall thickness in meters.private doubleCorrosion allowance in meters.private doubleDesign factor (0.72 typical).private doubleDesign pressure in MPa.private doubleDesign temperature in Celsius.static final StringDNV-ST-F101 Submarine Pipeline Systems.private doubleErosional C-factor.private doubleErosional velocity in m/s.private doubleExternal pressure at seabed in MPa.private doubleFabrication tolerance factor.private booleanHas pig launcher/receiver capability.private doubleHoop stress in header in MPa.private doubleHeader length in meters.private doubleHeader pipe outer diameter in meters.private doubleHeader flow velocity in m/s.private doubleHeader pipe wall thickness in meters.private doubleWeld joint efficiency.private doubleLiquid volume fraction (0-1).Manifold location type (TOPSIDE, ONSHORE, SUBSEA).Manifold type (PRODUCTION, INJECTION, TEST, PIGGING).private doubleMass flow rate in kg/s.private StringMaterial grade.private doubleMaximum gas velocity in m/s.private doubleMaximum liquid velocity in m/s.private doubleMaximum multiphase velocity in m/s.private doubleMinimum required branch wall thickness in meters.private doubleMinimum design temperature in Celsius.private doubleMinimum required header wall thickness in meters.private doubleMixture density in kg/m3.private doubleNatural frequency of header in Hz.static final StringNORSOK L-002 Piping System Layout.private intNumber of inlet headers.private intNumber of outlet headers.private intNumber of supports required.private intNumber of valves on manifold.private doubleOperating pressure in MPa.private doubleManifold overall height in meters.private doubleManifold overall length in meters.private doubleManifold overall width in meters.private booleanReinforcement check passed.private doubleReinforcement pad thickness in meters.private booleanReinforcement required at branch connections.private doubleSafety class factor (for subsea).private static final longSerialization version UID.private doubleSpecified Minimum Tensile Strength in MPa.private doubleSpecified Minimum Yield Strength in MPa.private doubleSteel density in kg/m3.private doubleTotal submerged weight in kg/m (for subsea).private doubleSupport spacing in meters.private doubleTest pressure in MPa.private doubleThermal expansion coefficient in 1/°C.private doubleTotal dry weight in kg.private booleanVelocity check passed.private booleanVibration check passed.private doubleVortex shedding frequency in Hz.private booleanWall thickness check passed.private doubleWater depth for subsea in meters.private doubleYoung's modulus in GPa. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoublecalculateAcousticPowerLevel(double upstreamPressure, double downstreamPressure) Calculate acoustic power level for AIV screening.doubleCalculate allowable stress.doubleCalculate branch connection reinforcement per ASME B31.3.doubleCalculate branch flow velocity.doubleCalculate branch pipe wall thickness.doubleCalculate total dry weight of manifold.doubleCalculate erosional velocity per API RP 14E.doubleCalculate header flow velocity.doubleCalculate hoop stress in header.doubleCalculate minimum wall thickness based on location and design code.doubleCalculate natural frequency of header pipe.doubleCalculate submerged weight for subsea manifold.doubleCalculate support spacing for manifold.doubleCalculate wall thickness per ASME B31.3.doubleCalculate wall thickness per DNV-ST-F101 for subsea.booleanCheck velocity limits.doubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubleintintintintdoubledoubledoubledoubledoubledoublegetSmts()doublegetSmys()doubledoubledoubledoublebooleanbooleanbooleanbooleanbooleanbooleanPerform complete design verification.voidsetBranchOuterDiameter(double branchOuterDiameter) voidsetBranchWallThickness(double branchWallThickness) voidsetCorrosionAllowance(double corrosionAllowance) voidsetDesignFactor(double designFactor) voidsetDesignPressure(double designPressure) voidsetDesignTemperature(double designTemperature) voidsetErosionalCFactor(double erosionalCFactor) voidsetHasPigging(boolean hasPigging) voidsetHeaderLength(double headerLength) voidsetHeaderOuterDiameter(double headerOuterDiameter) voidsetHeaderWallThickness(double headerWallThickness) voidsetJointEfficiency(double jointEfficiency) voidsetLiquidFraction(double liquidFraction) voidvoidvoidsetMassFlowRate(double massFlowRate) voidsetMaterialGrade(String materialGrade) voidsetMixtureDensity(double mixtureDensity) voidsetNumberOfInlets(int numberOfInlets) voidsetNumberOfOutlets(int numberOfOutlets) voidsetNumberOfValves(int numberOfValves) voidsetOverallHeight(double overallHeight) voidsetOverallLength(double overallLength) voidsetOverallWidth(double overallWidth) voidsetSafetyClassFactor(double safetyClassFactor) voidsetSmts(double smts) voidsetSmys(double smys) voidsetWaterDepth(double waterDepth) toJson()Convert to JSON string.toMap()Convert results to Map for JSON serialization.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
ASME_B31_3
-
DNV_ST_F101
-
NORSOK_L002
-
API_RP_17A
-
location
Manifold location type (TOPSIDE, ONSHORE, SUBSEA). -
manifoldType
Manifold type (PRODUCTION, INJECTION, TEST, PIGGING). -
numberOfInlets
private int numberOfInletsNumber of inlet headers. -
numberOfOutlets
private int numberOfOutletsNumber of outlet headers. -
numberOfValves
private int numberOfValvesNumber of valves on manifold. -
hasPigging
private boolean hasPiggingHas pig launcher/receiver capability. -
headerOuterDiameter
private double headerOuterDiameterHeader pipe outer diameter in meters. -
headerWallThickness
private double headerWallThicknessHeader pipe wall thickness in meters. -
branchOuterDiameter
private double branchOuterDiameterBranch pipe outer diameter in meters. -
branchWallThickness
private double branchWallThicknessBranch pipe wall thickness in meters. -
headerLength
private double headerLengthHeader length in meters. -
overallLength
private double overallLengthManifold overall length in meters. -
overallWidth
private double overallWidthManifold overall width in meters. -
overallHeight
private double overallHeightManifold overall height in meters. -
designPressure
private double designPressureDesign pressure in MPa. -
designTemperature
private double designTemperatureDesign temperature in Celsius. -
minDesignTemperature
private double minDesignTemperatureMinimum design temperature in Celsius. -
operatingPressure
private double operatingPressureOperating pressure in MPa. -
testPressure
private double testPressureTest pressure in MPa. -
waterDepth
private double waterDepthWater depth for subsea in meters. -
externalPressure
private double externalPressureExternal pressure at seabed in MPa. -
materialGrade
Material grade. -
smys
private double smysSpecified Minimum Yield Strength in MPa. -
smts
private double smtsSpecified Minimum Tensile Strength in MPa. -
youngsModulus
private double youngsModulusYoung's modulus in GPa. -
steelDensity
private double steelDensitySteel density in kg/m3. -
thermalExpansion
private double thermalExpansionThermal expansion coefficient in 1/°C. -
designFactor
private double designFactorDesign factor (0.72 typical). -
jointEfficiency
private double jointEfficiencyWeld joint efficiency. -
corrosionAllowance
private double corrosionAllowanceCorrosion allowance in meters. -
fabricationTolerance
private double fabricationToleranceFabrication tolerance factor. -
safetyClassFactor
private double safetyClassFactorSafety class factor (for subsea). -
erosionalCFactor
private double erosionalCFactorErosional C-factor. -
maxGasVelocity
private double maxGasVelocityMaximum gas velocity in m/s. -
maxLiquidVelocity
private double maxLiquidVelocityMaximum liquid velocity in m/s. -
maxMultiphaseVelocity
private double maxMultiphaseVelocityMaximum multiphase velocity in m/s. -
mixtureDensity
private double mixtureDensityMixture density in kg/m3. -
massFlowRate
private double massFlowRateMass flow rate in kg/s. -
liquidFraction
private double liquidFractionLiquid volume fraction (0-1). -
minHeaderWallThickness
private double minHeaderWallThicknessMinimum required header wall thickness in meters. -
minBranchWallThickness
private double minBranchWallThicknessMinimum required branch wall thickness in meters. -
headerHoopStress
private double headerHoopStressHoop stress in header in MPa. -
allowableStress
private double allowableStressAllowable stress in MPa. -
headerVelocity
private double headerVelocityHeader flow velocity in m/s. -
branchVelocity
private double branchVelocityBranch flow velocity in m/s. -
erosionalVelocity
private double erosionalVelocityErosional velocity in m/s. -
reinforcementRequired
private boolean reinforcementRequiredReinforcement required at branch connections. -
reinforcementPadThickness
private double reinforcementPadThicknessReinforcement pad thickness in meters. -
totalDryWeight
private double totalDryWeightTotal dry weight in kg. -
submergedWeight
private double submergedWeightTotal submerged weight in kg/m (for subsea). -
supportSpacing
private double supportSpacingSupport spacing in meters. -
numberOfSupports
private int numberOfSupportsNumber of supports required. -
acousticPowerLevel
private double acousticPowerLevelAcoustic power level in W. -
aivLikelihoodOfFailure
private double aivLikelihoodOfFailureAIV likelihood of failure (0-1). -
naturalFrequency
private double naturalFrequencyNatural frequency of header in Hz. -
vortexSheddingFrequency
private double vortexSheddingFrequencyVortex shedding frequency in Hz. -
velocityCheckPassed
private boolean velocityCheckPassedVelocity check passed. -
wallThicknessCheckPassed
private boolean wallThicknessCheckPassedWall thickness check passed. -
reinforcementCheckPassed
private boolean reinforcementCheckPassedReinforcement check passed. -
vibrationCheckPassed
private boolean vibrationCheckPassedVibration check passed. -
appliedStandards
-
ASME_ALLOWABLE_STRESSES
-
SUBSEA_MATERIAL_PROPERTIES
-
-
Constructor Details
-
ManifoldMechanicalDesignCalculator
public ManifoldMechanicalDesignCalculator()Default constructor.
-
-
Method Details
-
calculateMinimumWallThickness
public double calculateMinimumWallThickness()Calculate minimum wall thickness based on location and design code.- Returns:
- minimum wall thickness in meters
-
calculateWallThicknessASME
public double calculateWallThicknessASME()Calculate wall thickness per ASME B31.3.- Returns:
- minimum wall thickness in meters
-
calculateWallThicknessDNV
public double calculateWallThicknessDNV()Calculate wall thickness per DNV-ST-F101 for subsea.- Returns:
- minimum wall thickness in meters
-
calculateBranchWallThickness
public double calculateBranchWallThickness()Calculate branch pipe wall thickness.- Returns:
- minimum branch wall thickness in meters
-
calculateBranchReinforcement
public double calculateBranchReinforcement()Calculate branch connection reinforcement per ASME B31.3.- Returns:
- required reinforcement area in m2
-
calculateErosionalVelocity
public double calculateErosionalVelocity()Calculate erosional velocity per API RP 14E.- Returns:
- erosional velocity in m/s
-
calculateHeaderVelocity
public double calculateHeaderVelocity()Calculate header flow velocity.- Returns:
- header velocity in m/s
-
calculateBranchVelocity
public double calculateBranchVelocity()Calculate branch flow velocity.- Returns:
- branch velocity in m/s (per branch)
-
checkVelocityLimits
public boolean checkVelocityLimits()Check velocity limits.- Returns:
- true if velocities are acceptable
-
calculateAllowableStress
public double calculateAllowableStress()Calculate allowable stress.- Returns:
- allowable stress in MPa
-
calculateHoopStress
public double calculateHoopStress()Calculate hoop stress in header.- Returns:
- hoop stress in MPa
-
calculateSupportSpacing
public double calculateSupportSpacing()Calculate support spacing for manifold.- Returns:
- recommended support spacing in meters
-
calculateAcousticPowerLevel
public double calculateAcousticPowerLevel(double upstreamPressure, double downstreamPressure) Calculate acoustic power level for AIV screening.- Parameters:
upstreamPressure- upstream pressure in baradownstreamPressure- downstream pressure in bara- Returns:
- acoustic power level in W
-
calculateNaturalFrequency
public double calculateNaturalFrequency()Calculate natural frequency of header pipe.- Returns:
- natural frequency in Hz
-
calculateDryWeight
public double calculateDryWeight()Calculate total dry weight of manifold.- Returns:
- dry weight in kg
-
calculateSubmergedWeight
public double calculateSubmergedWeight()Calculate submerged weight for subsea manifold.- Returns:
- submerged weight in kg
-
performDesignVerification
public boolean performDesignVerification()Perform complete design verification.- Returns:
- true if all checks pass
-
toMap
-
toJson
-
getLocation
-
setLocation
-
getManifoldType
-
setManifoldType
-
getNumberOfInlets
public int getNumberOfInlets() -
setNumberOfInlets
public void setNumberOfInlets(int numberOfInlets) -
getNumberOfOutlets
public int getNumberOfOutlets() -
setNumberOfOutlets
public void setNumberOfOutlets(int numberOfOutlets) -
getNumberOfValves
public int getNumberOfValves() -
setNumberOfValves
public void setNumberOfValves(int numberOfValves) -
getHeaderOuterDiameter
public double getHeaderOuterDiameter() -
setHeaderOuterDiameter
public void setHeaderOuterDiameter(double headerOuterDiameter) -
getHeaderWallThickness
public double getHeaderWallThickness() -
setHeaderWallThickness
public void setHeaderWallThickness(double headerWallThickness) -
getBranchOuterDiameter
public double getBranchOuterDiameter() -
setBranchOuterDiameter
public void setBranchOuterDiameter(double branchOuterDiameter) -
getBranchWallThickness
public double getBranchWallThickness() -
setBranchWallThickness
public void setBranchWallThickness(double branchWallThickness) -
getDesignPressure
public double getDesignPressure() -
setDesignPressure
public void setDesignPressure(double designPressure) -
getDesignTemperature
public double getDesignTemperature() -
setDesignTemperature
public void setDesignTemperature(double designTemperature) -
getWaterDepth
public double getWaterDepth() -
setWaterDepth
public void setWaterDepth(double waterDepth) -
getMaterialGrade
-
setMaterialGrade
-
getSmys
public double getSmys() -
setSmys
public void setSmys(double smys) -
getSmts
public double getSmts() -
setSmts
public void setSmts(double smts) -
getDesignFactor
public double getDesignFactor() -
setDesignFactor
public void setDesignFactor(double designFactor) -
getJointEfficiency
public double getJointEfficiency() -
setJointEfficiency
public void setJointEfficiency(double jointEfficiency) -
getCorrosionAllowance
public double getCorrosionAllowance() -
setCorrosionAllowance
public void setCorrosionAllowance(double corrosionAllowance) -
getErosionalCFactor
public double getErosionalCFactor() -
setErosionalCFactor
public void setErosionalCFactor(double erosionalCFactor) -
getMassFlowRate
public double getMassFlowRate() -
setMassFlowRate
public void setMassFlowRate(double massFlowRate) -
getMixtureDensity
public double getMixtureDensity() -
setMixtureDensity
public void setMixtureDensity(double mixtureDensity) -
getLiquidFraction
public double getLiquidFraction() -
setLiquidFraction
public void setLiquidFraction(double liquidFraction) -
getHeaderLength
public double getHeaderLength() -
setHeaderLength
public void setHeaderLength(double headerLength) -
getOverallLength
public double getOverallLength() -
setOverallLength
public void setOverallLength(double overallLength) -
getOverallWidth
public double getOverallWidth() -
setOverallWidth
public void setOverallWidth(double overallWidth) -
getOverallHeight
public double getOverallHeight() -
setOverallHeight
public void setOverallHeight(double overallHeight) -
getMinHeaderWallThickness
public double getMinHeaderWallThickness() -
getMinBranchWallThickness
public double getMinBranchWallThickness() -
getAllowableStress
public double getAllowableStress() -
getHeaderVelocity
public double getHeaderVelocity() -
getBranchVelocity
public double getBranchVelocity() -
getErosionalVelocity
public double getErosionalVelocity() -
isVelocityCheckPassed
public boolean isVelocityCheckPassed() -
isWallThicknessCheckPassed
public boolean isWallThicknessCheckPassed() -
isReinforcementCheckPassed
public boolean isReinforcementCheckPassed() -
isReinforcementRequired
public boolean isReinforcementRequired() -
getReinforcementPadThickness
public double getReinforcementPadThickness() -
getTotalDryWeight
public double getTotalDryWeight() -
getSubmergedWeight
public double getSubmergedWeight() -
getSupportSpacing
public double getSupportSpacing() -
getNumberOfSupports
public int getNumberOfSupports() -
getAppliedStandards
-
setSafetyClassFactor
public void setSafetyClassFactor(double safetyClassFactor) -
getSafetyClassFactor
public double getSafetyClassFactor() -
setHasPigging
public void setHasPigging(boolean hasPigging) -
isHasPigging
public boolean isHasPigging()
-