Class SourServiceAssessment
java.lang.Object
neqsim.process.corrosion.SourServiceAssessment
- All Implemented Interfaces:
Serializable
Sour service material assessment per NACE MR0175 / ISO 15156.
Evaluates whether materials are suitable for hydrogen sulfide (H2S)-containing environments by classifying the sour severity region and checking material limits for sulfide stress cracking (SSC), hydrogen-induced cracking (HIC), and stress-oriented hydrogen-induced cracking (SOHIC).
ISO 15156 Sour Service Regions
- Region 0 — Non-sour: pH2S < 0.3 kPa (0.003 bar) or total P < 0.4 MPa with H2S < 10%
- Region 1 — Mildly sour: Low pH2S with moderate pH
- Region 2 — Moderately sour: Intermediate pH2S range
- Region 3 — Severely sour: High pH2S and/or low pH
Standards Implemented
| Standard | Scope |
|---|---|
| ISO 15156-1 | General principles for sour service |
| ISO 15156-2 | Carbon and low alloy steels |
| ISO 15156-3 | CRAs and other alloys |
| NACE MR0175 | Equivalent to ISO 15156 |
| NORSOK M-001 | Material selection framework |
| EFC 16/17 | Sour service guidelines for CRAs |
Usage
SourServiceAssessment ssa = new SourServiceAssessment();
ssa.setH2SPartialPressureBar(0.05);
ssa.setTotalPressureBar(100.0);
ssa.setCO2PartialPressureBar(3.0);
ssa.setInSituPH(4.0);
ssa.setTemperatureC(80.0);
ssa.setChlorideConcentrationMgL(50000);
ssa.setMaterialGrade("X65");
ssa.evaluate();
int region = ssa.getSourRegion();
boolean sscOk = ssa.isSSCAcceptable();
boolean hicOk = ssa.isHICAcceptable();
String json = ssa.toJson();
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleChloride concentration in mg/L (ppm).private doubleCO2 partial pressure in bar.private booleanElemental sulfur present.private booleanWhether evaluated.private booleanWhether free water is present.private doubleH2S partial pressure in bar.private doubleMaterial hardness in HRC.private booleanWhether HIC risk is acceptable.private StringHIC risk level.private doubleIn-situ pH of aqueous phase.private StringMaterial grade (e.g., "X52", "X65", "316L", "22Cr duplex").private doubleMaximum allowable hardness for this region.private doubleMaximum allowable yield strength in MPa.Notes and warnings.private StringOverall sour service risk.private booleanWhether post-weld heat treatment has been done.private StringRecommended material.private static final longSerialization version UID.private booleanWhether SOHIC risk is acceptable.private intISO 15156 sour region (0–3).private booleanWhether SSC risk is acceptable.private StringSSC risk level.Standards applied.private doubleTemperature in degrees Celsius.private doubleTotal system pressure in bar.private doubleMaterial yield strength in MPa. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidautoSetYieldStrength(String grade) Auto-sets yield strength from grade.voidevaluate()Performs the full sour service assessment.private voidEvaluates CRA materials for SSC per ISO 15156-3.private voidEvaluates HIC risk per ISO 15156-2 Annex B.private voidSelects recommended material for the sour severity.private voidDetermines overall risk level.private voidEvaluates SOHIC risk.private voidClassifies sour region per ISO 15156-2 Figure B.1.private voidEvaluates SSC risk per ISO 15156-2.Gets HIC risk level.doubleGets maximum allowable hardness for this region.getNotes()Gets notes and warnings.Gets overall sour service risk level.Gets recommended material.intGets the ISO 15156 sour region (0-3).Gets SSC risk level.Gets standards applied.private booleanisCRAMaterial(String grade) Determines if a material grade is a CRA.booleanChecks whether evaluation has been performed.booleanChecks if HIC risk is acceptable.booleanChecks if SOHIC risk is acceptable.booleanChecks if SSC risk is acceptable.voidsetChlorideConcentrationMgL(double mgL) Sets chloride concentration.voidsetCO2PartialPressureBar(double pressureBar) Sets CO2 partial pressure.voidsetElementalSulfurPresent(boolean present) Sets elemental sulfur presence.voidsetFluid(SystemInterface fluid) Sets conditions from a NeqSim fluid object.voidsetFreeWaterPresent(boolean present) Sets free water presence.voidsetH2SPartialPressureBar(double pressureBar) Sets H2S partial pressure.voidsetHardnessHRC(double hrc) Sets material hardness.voidsetInSituPH(double pH) Sets in-situ pH of aqueous phase.voidsetMaterialGrade(String grade) Sets material grade.voidsetPWHTApplied(boolean applied) Sets PWHT status.voidsetTemperatureC(double tempC) Sets temperature.voidsetTotalPressureBar(double pressureBar) Sets total system pressure.voidsetYieldStrengthMPa(double mpa) Sets yield strength.toJson()Converts results to JSON string.toMap()Converts results to a map.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
h2sPartialPressureBar
private double h2sPartialPressureBarH2S partial pressure in bar. -
totalPressureBar
private double totalPressureBarTotal system pressure in bar. -
co2PartialPressureBar
private double co2PartialPressureBarCO2 partial pressure in bar. -
inSituPH
private double inSituPHIn-situ pH of aqueous phase. -
temperatureC
private double temperatureCTemperature in degrees Celsius. -
chlorideConcentrationMgL
private double chlorideConcentrationMgLChloride concentration in mg/L (ppm). -
materialGrade
Material grade (e.g., "X52", "X65", "316L", "22Cr duplex"). -
yieldStrengthMPa
private double yieldStrengthMPaMaterial yield strength in MPa. -
hardnessHRC
private double hardnessHRCMaterial hardness in HRC. -
pwhtApplied
private boolean pwhtAppliedWhether post-weld heat treatment has been done. -
freeWaterPresent
private boolean freeWaterPresentWhether free water is present. -
elementalSulfurPresent
private boolean elementalSulfurPresentElemental sulfur present. -
sourRegion
private int sourRegionISO 15156 sour region (0–3). -
sscAcceptable
private boolean sscAcceptableWhether SSC risk is acceptable. -
hicAcceptable
private boolean hicAcceptableWhether HIC risk is acceptable. -
sohicAcceptable
private boolean sohicAcceptableWhether SOHIC risk is acceptable. -
sscRiskLevel
SSC risk level. -
hicRiskLevel
HIC risk level. -
overallRiskLevel
Overall sour service risk. -
recommendedMaterial
Recommended material. -
maxAllowableHardnessHRC
private double maxAllowableHardnessHRCMaximum allowable hardness for this region. -
maxAllowableYieldStrengthMPa
private double maxAllowableYieldStrengthMPaMaximum allowable yield strength in MPa. -
notes
-
standardsApplied
-
evaluated
private boolean evaluatedWhether evaluated.
-
-
Constructor Details
-
SourServiceAssessment
public SourServiceAssessment()Default constructor.
-
-
Method Details
-
setH2SPartialPressureBar
public void setH2SPartialPressureBar(double pressureBar) Sets H2S partial pressure.- Parameters:
pressureBar- H2S partial pressure in bar
-
setTotalPressureBar
public void setTotalPressureBar(double pressureBar) Sets total system pressure.- Parameters:
pressureBar- total pressure in bar
-
setCO2PartialPressureBar
public void setCO2PartialPressureBar(double pressureBar) Sets CO2 partial pressure.- Parameters:
pressureBar- CO2 partial pressure in bar
-
setInSituPH
public void setInSituPH(double pH) Sets in-situ pH of aqueous phase.- Parameters:
pH- in-situ pH value (0-14)
-
setTemperatureC
public void setTemperatureC(double tempC) Sets temperature.- Parameters:
tempC- temperature in degrees Celsius
-
setChlorideConcentrationMgL
public void setChlorideConcentrationMgL(double mgL) Sets chloride concentration.- Parameters:
mgL- chloride concentration in mg/L
-
setMaterialGrade
Sets material grade.- Parameters:
grade- material grade string (e.g., "X52", "X65", "316L", "22Cr duplex")
-
setYieldStrengthMPa
public void setYieldStrengthMPa(double mpa) Sets yield strength.- Parameters:
mpa- yield strength in MPa
-
setHardnessHRC
public void setHardnessHRC(double hrc) Sets material hardness.- Parameters:
hrc- hardness in HRC
-
setPWHTApplied
public void setPWHTApplied(boolean applied) Sets PWHT status.- Parameters:
applied- true if PWHT has been applied
-
setFreeWaterPresent
public void setFreeWaterPresent(boolean present) Sets free water presence.- Parameters:
present- true if free water is present
-
setElementalSulfurPresent
public void setElementalSulfurPresent(boolean present) Sets elemental sulfur presence.- Parameters:
present- true if elemental sulfur is present
-
setFluid
Sets conditions from a NeqSim fluid object.- Parameters:
fluid- the NeqSim thermodynamic system (after flash)
-
evaluate
public void evaluate()Performs the full sour service assessment. -
evaluateSourRegion
private void evaluateSourRegion()Classifies sour region per ISO 15156-2 Figure B.1. -
evaluateSSC
private void evaluateSSC()Evaluates SSC risk per ISO 15156-2. -
evaluateCRAForSSC
private void evaluateCRAForSSC()Evaluates CRA materials for SSC per ISO 15156-3. -
evaluateHIC
private void evaluateHIC()Evaluates HIC risk per ISO 15156-2 Annex B. -
evaluateSOHIC
private void evaluateSOHIC()Evaluates SOHIC risk. -
evaluateOverallRisk
private void evaluateOverallRisk()Determines overall risk level. -
evaluateMaterialRecommendation
private void evaluateMaterialRecommendation()Selects recommended material for the sour severity. -
getSourRegion
public int getSourRegion()Gets the ISO 15156 sour region (0-3).- Returns:
- sour region number
-
isSSCAcceptable
public boolean isSSCAcceptable()Checks if SSC risk is acceptable.- Returns:
- true if acceptable
-
isHICAcceptable
public boolean isHICAcceptable()Checks if HIC risk is acceptable.- Returns:
- true if acceptable
-
isSOHICAcceptable
public boolean isSOHICAcceptable()Checks if SOHIC risk is acceptable.- Returns:
- true if acceptable
-
getSSCRiskLevel
-
getHICRiskLevel
-
getOverallRiskLevel
Gets overall sour service risk level.- Returns:
- risk level string
-
getRecommendedMaterial
Gets recommended material.- Returns:
- recommended material string
-
getMaxAllowableHardnessHRC
public double getMaxAllowableHardnessHRC()Gets maximum allowable hardness for this region.- Returns:
- maximum hardness in HRC
-
getNotes
-
getStandardsApplied
-
isEvaluated
public boolean isEvaluated()Checks whether evaluation has been performed.- Returns:
- true if evaluate() has been called
-
isCRAMaterial
Determines if a material grade is a CRA.- Parameters:
grade- material grade string- Returns:
- true if CRA
-
autoSetYieldStrength
Auto-sets yield strength from grade.- Parameters:
grade- material grade
-
toMap
-
toJson
Converts results to JSON string.- Returns:
- JSON representation of the assessment
-