Class SourServiceAssessment

java.lang.Object
neqsim.process.corrosion.SourServiceAssessment
All Implemented Interfaces:
Serializable

public class SourServiceAssessment extends Object implements 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

Standards used for sour service assessment
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 Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • h2sPartialPressureBar

      private double h2sPartialPressureBar
      H2S partial pressure in bar.
    • totalPressureBar

      private double totalPressureBar
      Total system pressure in bar.
    • co2PartialPressureBar

      private double co2PartialPressureBar
      CO2 partial pressure in bar.
    • inSituPH

      private double inSituPH
      In-situ pH of aqueous phase.
    • temperatureC

      private double temperatureC
      Temperature in degrees Celsius.
    • chlorideConcentrationMgL

      private double chlorideConcentrationMgL
      Chloride concentration in mg/L (ppm).
    • materialGrade

      private String materialGrade
      Material grade (e.g., "X52", "X65", "316L", "22Cr duplex").
    • yieldStrengthMPa

      private double yieldStrengthMPa
      Material yield strength in MPa.
    • hardnessHRC

      private double hardnessHRC
      Material hardness in HRC.
    • pwhtApplied

      private boolean pwhtApplied
      Whether post-weld heat treatment has been done.
    • freeWaterPresent

      private boolean freeWaterPresent
      Whether free water is present.
    • elementalSulfurPresent

      private boolean elementalSulfurPresent
      Elemental sulfur present.
    • sourRegion

      private int sourRegion
      ISO 15156 sour region (0–3).
    • sscAcceptable

      private boolean sscAcceptable
      Whether SSC risk is acceptable.
    • hicAcceptable

      private boolean hicAcceptable
      Whether HIC risk is acceptable.
    • sohicAcceptable

      private boolean sohicAcceptable
      Whether SOHIC risk is acceptable.
    • sscRiskLevel

      private String sscRiskLevel
      SSC risk level.
    • hicRiskLevel

      private String hicRiskLevel
      HIC risk level.
    • overallRiskLevel

      private String overallRiskLevel
      Overall sour service risk.
    • recommendedMaterial

      private String recommendedMaterial
      Recommended material.
    • maxAllowableHardnessHRC

      private double maxAllowableHardnessHRC
      Maximum allowable hardness for this region.
    • maxAllowableYieldStrengthMPa

      private double maxAllowableYieldStrengthMPa
      Maximum allowable yield strength in MPa.
    • notes

      private List<String> notes
      Notes and warnings.
    • standardsApplied

      private List<String> standardsApplied
      Standards applied.
    • evaluated

      private boolean evaluated
      Whether 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

      public void setMaterialGrade(String grade)
      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

      public void setFluid(SystemInterface fluid)
      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

      public String getSSCRiskLevel()
      Gets SSC risk level.
      Returns:
      risk level string
    • getHICRiskLevel

      public String getHICRiskLevel()
      Gets HIC risk level.
      Returns:
      risk level string
    • getOverallRiskLevel

      public String getOverallRiskLevel()
      Gets overall sour service risk level.
      Returns:
      risk level string
    • getRecommendedMaterial

      public 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

      public List<String> getNotes()
      Gets notes and warnings.
      Returns:
      list of notes
    • getStandardsApplied

      public List<String> getStandardsApplied()
      Gets standards applied.
      Returns:
      list of standard references
    • isEvaluated

      public boolean isEvaluated()
      Checks whether evaluation has been performed.
      Returns:
      true if evaluate() has been called
    • isCRAMaterial

      private boolean isCRAMaterial(String grade)
      Determines if a material grade is a CRA.
      Parameters:
      grade - material grade string
      Returns:
      true if CRA
    • autoSetYieldStrength

      private void autoSetYieldStrength(String grade)
      Auto-sets yield strength from grade.
      Parameters:
      grade - material grade
    • toMap

      public Map<String,Object> toMap()
      Converts results to a map.
      Returns:
      ordered map of all results
    • toJson

      public String toJson()
      Converts results to JSON string.
      Returns:
      JSON representation of the assessment