Class HydrogenPipelineDesign
java.lang.Object
neqsim.process.mechanicaldesign.MechanicalDesign
neqsim.process.mechanicaldesign.pipeline.HydrogenPipelineDesign
- All Implemented Interfaces:
Serializable
Hydrogen pipeline mechanical design per ASME B31.12 and DNV-ST-F101.
Extends the standard pipeline mechanical design with hydrogen-specific considerations:
- Hydrogen embrittlement derating factors per ASME B31.12
- Material compatibility assessment for hydrogen service
- Design factor reduction for hydrogen pipelines
- Fatigue considerations for cyclic hydrogen loading
- Permeation rate estimation
Design Standards
- ASME B31.12 — Hydrogen Piping and Pipelines (primary)
- DNV-ST-F101 — Submarine Pipeline Systems
- EIGA 121/14 — Hydrogen Pipeline Systems
- CGA G-5.6 — Hydrogen Pipeline Systems
Material Compatibility (ASME B31.12 Table IX-5A)
| Material Grade | Max Pressure [bar] | Derating Factor | Compatibility |
|---|---|---|---|
| API 5L X42 | 100 | 1.0 | Excellent |
| API 5L X52 | 100 | 0.95 | Good |
| API 5L X60 | 80 | 0.90 | Acceptable |
| API 5L X65 | 70 | 0.85 | Limited |
| API 5L X70 | 50 | 0.80 | Not recommended |
Usage Example
AdiabaticPipe pipe = new AdiabaticPipe("H2 Pipeline", stream);
pipe.setDiameter(0.508);
pipe.setLength(150000.0);
HydrogenPipelineDesign design = new HydrogenPipelineDesign(pipe);
design.setMaxOperationPressure(100.0);
design.setDesignPressure(110.0);
design.setDesignTemperature(60.0);
design.setMaterialGrade("X52");
design.setHydrogenMoleFraction(1.0);
design.calcDesign();
double wallThickness = design.getRequiredWallThickness();
boolean compatible = design.isMaterialCompatible();
- Version:
- 1.0
- Author:
- esol
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleCorrosion allowance [mm].private doubleDesign factor per ASME B31.12 (lower than natural gas).private doubleDesign pressure [bara].private doubleDesign temperature [C].private doubleHydrogen derating factor based on material grade.private doubleHydrogen mole fraction in transported gas [0-1].private doubleJoint factor (1.0 for seamless or SAW).private booleanWhether the material is compatible with hydrogen.private StringMaterial grade per API 5L.private static final doubleMaximum hardness for hydrogen service per ASME B31.12 [HRC].private static final doubleMaximum SMYS for hydrogen service per ASME B31.12 [MPa].private doubleOuter diameter [m].private doubleCalculated hydrogen permeation rate [mol/(m2 s)].private doublePipeline length [m].private doubleRequired wall thickness [mm].private static final longSerialization version UID.private doubleSMTS of selected material [MPa].private doubleSMYS of selected material [MPa].private doubleTemperature derating factor.private doubleWater depth for subsea pipelines [m], 0 for onshore.Fields inherited from class MechanicalDesign
costEstimate, designStandard, innerDiameter, maxDesignCv, maxDesignDuty, maxDesignGassVolumeFlow, maxDesignOilVolumeFlow, maxDesignPower, maxDesignPressureDrop, maxDesignVelocity, maxDesignVolumeFlow, maxDesignWaterVolumeFlow, minDesignDuty, minDesignGassVolumeFLow, minDesignOilFLow, minDesignPower, minDesignVolumeFLow, minDesignWaterVolumeFLow, moduleHeight, moduleLength, moduleWidth, tantanLength, wallThickness, weightElectroInstrument, weightNozzle, weightPiping, weightStructualSteel, weightVessel, weigthInternals, weigthVesselShell -
Constructor Summary
ConstructorsConstructorDescriptionHydrogenPipelineDesign(ProcessEquipmentInterface equipment) Constructor for HydrogenPipelineDesign. -
Method Summary
Modifier and TypeMethodDescriptionvoidcalcDesign.private doubleCalculate hydrogen derating factor per ASME B31.12 Table IX-5A.private doubleCalculate hydrogen permeation rate through pipe wall.private booleanCheck material compatibility with hydrogen service.doubleGet design factor.Get design results as a map.doubleGet hydrogen derating factor.Get material grade.doubleGet outer diameter [m].doubleGet hydrogen permeation rate.doubleGet pipeline length [m].doubleGet required wall thickness [mm].doublegetSmys()Get SMYS [MPa].booleanCheck if material is compatible with hydrogen service.voidsetCorrosionAllowance(double ca) Set corrosion allowance [mm].voidsetDesignFactor(double factor) Set design factor per ASME B31.12 (default 0.50 for hydrogen).voidsetDesignPressure(double pressure) Set design pressure [bara].voidsetDesignTemperature(double temperature) Set design temperature [C].voidsetHydrogenMoleFraction(double fraction) Set hydrogen mole fraction [0-1].voidsetMaterialGrade(String grade) Set material grade per API 5L.voidsetOuterDiameter(double od) Set outer diameter [m].voidsetPipelineLength(double length) Set pipeline length [m].voidsetWaterDepth(double depth) Set water depth for subsea pipelines [m].private voidLook up material SMYS/SMTS based on grade.Methods inherited from class MechanicalDesign
addDesignDataSource, calculateCostEstimate, costEstimateToJson, displayResults, equals, generateBillOfMaterials, getApplicableStandards, getBareModuleCost, getCompanySpecificDesignStandards, getConstrutionMaterial, getCorrosionAllowance, getCostEstimate, getDefaultLiquidDensity, getDefaultLiquidViscosity, getDesignCorrosionAllowance, getDesignDataSources, getDesignJointEfficiency, getDesignLimitData, getDesignMaxPressureLimit, getDesignMaxTemperatureLimit, getDesignMinPressureLimit, getDesignMinTemperatureLimit, getDesignStandard, getDuty, getGrassRootsCost, getHeatTransferArea, getInnerDiameter, getInstallationManHours, getJointEfficiency, getLastMarginResult, getMaterialDesignStandard, getMaterialPipeDesignStandard, getMaxAllowableStress, getMaxDesignCv, getMaxDesignGassVolumeFlow, getMaxDesignOilVolumeFlow, getMaxDesignPressure, getMaxDesignPressureDrop, getMaxDesignVelocity, getMaxDesignVolumeFlow, getMaxDesignWaterVolumeFlow, getMaxOperationPressure, getMaxOperationTemperature, getMinDesignGassVolumeFLow, getMinDesignOilFLow, getMinDesignPressure, getMinDesignVolumeFLow, getMinDesignWaterVolumeFLow, getMinOperationPressure, getMinOperationTemperature, getModuleHeight, getModuleLength, getModuleWidth, getPower, getPressureMarginFactor, getProcessEquipment, getPurchasedEquipmentCost, getRecommendedStandards, getResponse, getTantanLength, getTensileStrength, getTotalModuleCost, getVolumeTotal, getWallThickness, getWeightElectroInstrument, getWeightNozzle, getWeightPiping, getWeightStructualSteel, getWeightTotal, getWeightVessel, getWeigthInternals, getWeigthVesselShell, hasDesignStandard, hashCode, initMechanicalDesign, isHasSetCompanySpecificDesignStandards, readDesignSpecifications, setCompanySpecificDesignStandards, setConstrutionMaterial, setCostEstimateCepci, setCostEstimateLocationFactor, setCostEstimateMaterial, setDefaultLiquidDensity, setDefaultLiquidViscosity, setDesign, setDesignDataSource, setDesignDataSources, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandards, setHasSetCompanySpecificDesignStandards, setInnerDiameter, setJointEfficiency, setMaterialDesignStandard, setMaterialPipeDesignStandard, setMaxDesignCv, setMaxDesignDuty, setMaxDesignGassVolumeFlow, setMaxDesignOilVolumeFlow, setMaxDesignPower, setMaxDesignPressureDrop, setMaxDesignVelocity, setMaxDesignVolumeFlow, setMaxDesignWaterVolumeFlow, setMaxOperationPressure, setMaxOperationTemperature, setMinDesignDuty, setMinDesignGassVolumeFLow, setMinDesignOilFLow, setMinDesignPower, setMinDesignVolumeFLow, setMinDesignWaterVolumeFLow, setMinOperationPressure, setMinOperationTemperature, setModuleHeight, setModuleLength, setModuleWidth, setPressureMarginFactor, setProcessEquipment, setTantanLength, setTensileStrength, setWallThickness, setWeightElectroInstrument, setWeightNozzle, setWeightPiping, setWeightStructualSteel, setWeightTotal, setWeightVessel, setWeigthInternals, setWeigthVesselShell, toCompactJson, toJson, validateOperatingEnvelope, validateOperatingEnvelope
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
outerDiameter
private double outerDiameterOuter diameter [m]. -
designPressure
private double designPressureDesign pressure [bara]. -
designTemperature
private double designTemperatureDesign temperature [C]. -
materialGrade
Material grade per API 5L. -
smys
private double smysSMYS of selected material [MPa]. -
smts
private double smtsSMTS of selected material [MPa]. -
hydrogenMoleFraction
private double hydrogenMoleFractionHydrogen mole fraction in transported gas [0-1]. -
designFactor
private double designFactorDesign factor per ASME B31.12 (lower than natural gas). -
jointFactor
private double jointFactorJoint factor (1.0 for seamless or SAW). -
temperatureDeratingFactor
private double temperatureDeratingFactorTemperature derating factor. -
hydrogenDeratingFactor
private double hydrogenDeratingFactorHydrogen derating factor based on material grade. -
corrosionAllowance
private double corrosionAllowanceCorrosion allowance [mm]. -
requiredWallThickness
private double requiredWallThicknessRequired wall thickness [mm]. -
pipelineLength
private double pipelineLengthPipeline length [m]. -
waterDepth
private double waterDepthWater depth for subsea pipelines [m], 0 for onshore. -
permeationRate
private double permeationRateCalculated hydrogen permeation rate [mol/(m2 s)]. -
materialCompatible
private boolean materialCompatibleWhether the material is compatible with hydrogen. -
MAX_HARDNESS_HRC
private static final double MAX_HARDNESS_HRCMaximum hardness for hydrogen service per ASME B31.12 [HRC].- See Also:
-
MAX_SMYS_H2_MPA
private static final double MAX_SMYS_H2_MPAMaximum SMYS for hydrogen service per ASME B31.12 [MPa].- See Also:
-
-
Constructor Details
-
HydrogenPipelineDesign
Constructor for HydrogenPipelineDesign.- Parameters:
equipment- the pipeline equipment
-
-
Method Details
-
calcDesign
-
updateMaterialProperties
private void updateMaterialProperties()Look up material SMYS/SMTS based on grade. -
calculateHydrogenDeratingFactor
Calculate hydrogen derating factor per ASME B31.12 Table IX-5A.Higher strength steels are more susceptible to hydrogen embrittlement.
- Parameters:
grade- material grade- Returns:
- derating factor [0-1]
-
checkMaterialCompatibility
private boolean checkMaterialCompatibility()Check material compatibility with hydrogen service.- Returns:
- true if material is compatible
-
calculatePermeationRate
private double calculatePermeationRate()Calculate hydrogen permeation rate through pipe wall.Based on Sieverts' law: J = Phi * sqrt(P) / t, where Phi is the permeability coefficient.
- Returns:
- permeation rate [mol/(m2 s)]
-
getRequiredWallThickness
public double getRequiredWallThickness()Get required wall thickness [mm].- Returns:
- required wall thickness including corrosion allowance [mm]
-
getHydrogenDeratingFactor
public double getHydrogenDeratingFactor()Get hydrogen derating factor.- Returns:
- derating factor [0-1]
-
isMaterialCompatible
public boolean isMaterialCompatible()Check if material is compatible with hydrogen service.- Returns:
- true if compatible
-
getPermeationRate
public double getPermeationRate()Get hydrogen permeation rate.- Returns:
- permeation rate [mol/(m2 s)]
-
setOuterDiameter
public void setOuterDiameter(double od) Set outer diameter [m].- Overrides:
setOuterDiameterin classMechanicalDesign- Parameters:
od- outer diameter [m]
-
getOuterDiameter
public double getOuterDiameter()Get outer diameter [m].- Overrides:
getOuterDiameterin classMechanicalDesign- Returns:
- outer diameter [m]
-
setDesignPressure
public void setDesignPressure(double pressure) Set design pressure [bara].- Parameters:
pressure- design pressure [bara]
-
setDesignTemperature
public void setDesignTemperature(double temperature) Set design temperature [C].- Parameters:
temperature- design temperature [C]
-
setMaterialGrade
Set material grade per API 5L.- Parameters:
grade- material grade (e.g. "X42", "X52", "X65")
-
getMaterialGrade
-
setHydrogenMoleFraction
public void setHydrogenMoleFraction(double fraction) Set hydrogen mole fraction [0-1].- Parameters:
fraction- hydrogen mole fraction
-
setDesignFactor
public void setDesignFactor(double factor) Set design factor per ASME B31.12 (default 0.50 for hydrogen).- Parameters:
factor- design factor
-
setCorrosionAllowance
public void setCorrosionAllowance(double ca) Set corrosion allowance [mm].- Overrides:
setCorrosionAllowancein classMechanicalDesign- Parameters:
ca- corrosion allowance [mm]
-
setPipelineLength
public void setPipelineLength(double length) Set pipeline length [m].- Parameters:
length- pipeline length [m]
-
getPipelineLength
public double getPipelineLength()Get pipeline length [m].- Returns:
- pipeline length [m]
-
setWaterDepth
public void setWaterDepth(double depth) Set water depth for subsea pipelines [m].- Parameters:
depth- water depth [m], 0 for onshore
-
getSmys
public double getSmys()Get SMYS [MPa].- Returns:
- specified minimum yield strength [MPa]
-
getDesignFactor
public double getDesignFactor()Get design factor.- Returns:
- design factor
-
getDesignResults
-