SourServiceAssessment
Package: neqsim.process.corrosion
Standards: ISO 15156-1/2/3, NACE MR0175, NORSOK M-001, EFC 16/17
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).
Sour Service Regions (ISO 15156)
| Region |
H2S Level |
Description |
| 0 |
pH2S < 0.3 kPa (0.003 bar) |
Non-sour |
| 1 |
0.3–1.0 kPa, moderate pH |
Mildly sour |
| 2 |
1.0–10.0 kPa |
Moderately sour |
| 3 |
> 10.0 kPa or low pH |
Severely sour |
Failure Mechanisms Assessed
| Mechanism |
Description |
Key Factors |
| SSC |
Sulfide stress cracking |
Hardness (HRC), yield strength, sour region |
| HIC |
Hydrogen-induced cracking |
H2S level, free water, inclusions |
| SOHIC |
Stress-oriented HIC |
Residual stress, PWHT status |
Quick Start
Java
import neqsim.process.corrosion.SourServiceAssessment;
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.setHardnessHRC(22.0);
ssa.setYieldStrengthMPa(450.0);
ssa.setPWHTApplied(true);
ssa.setFreeWaterPresent(true);
ssa.evaluate();
System.out.println("Sour Region: " + ssa.getSourRegion());
System.out.println("SSC Acceptable: " + ssa.isSSCAcceptable());
System.out.println("HIC Acceptable: " + ssa.isHICAcceptable());
System.out.println("SOHIC Acceptable: " + ssa.isSOHICAcceptable());
System.out.println("Overall Risk: " + ssa.getOverallRiskLevel());
System.out.println("Recommended Material: " + ssa.getRecommendedMaterial());
Python
from neqsim import jneqsim
SourServiceAssessment = jneqsim.process.corrosion.SourServiceAssessment
ssa = SourServiceAssessment()
ssa.setH2SPartialPressureBar(0.05)
ssa.setTotalPressureBar(100.0)
ssa.setCO2PartialPressureBar(3.0)
ssa.setInSituPH(4.0)
ssa.setTemperatureC(80.0)
ssa.setMaterialGrade("X65")
ssa.evaluate()
print(f"Sour Region: {ssa.getSourRegion()}")
print(f"SSC OK: {ssa.isSSCAcceptable()}")
print(f"Overall Risk: {ssa.getOverallRiskLevel()}")
Integration with NeqSim Fluid
// Extract H2S/CO2 partial pressures from a flashed fluid
SourServiceAssessment ssa = new SourServiceAssessment();
ssa.setFluid(flashedSystem); // auto-extracts partial pressures
ssa.setMaterialGrade("X65");
ssa.evaluate();
| Method |
Type |
Default |
Description |
setH2SPartialPressureBar(double) |
double |
0.0 |
H2S partial pressure (bar) |
setTotalPressureBar(double) |
double |
0.0 |
Total system pressure (bar) |
setCO2PartialPressureBar(double) |
double |
0.0 |
CO2 partial pressure (bar) |
setInSituPH(double) |
double |
5.0 |
In-situ pH of aqueous phase |
setTemperatureC(double) |
double |
60.0 |
Operating temperature (°C) |
setChlorideConcentrationMgL(double) |
double |
0.0 |
Chloride concentration (mg/L) |
setMaterialGrade(String) |
String |
“X65” |
Material grade (e.g., “X65”, “L80”, “316L”) |
setYieldStrengthMPa(double) |
double |
450.0 |
Actual yield strength (MPa) |
setHardnessHRC(double) |
double |
22.0 |
Maximum hardness (HRC) |
setPWHTApplied(boolean) |
boolean |
false |
Post-weld heat treatment applied |
setFreeWaterPresent(boolean) |
boolean |
true |
Free water present in system |
setElementalSulfurPresent(boolean) |
boolean |
false |
Elemental sulfur present |
setFluid(SystemInterface) |
SystemInterface |
— |
Auto-extracts H2S/CO2 partial pressures from fluid |
Output Methods
| Method |
Return Type |
Description |
getSourRegion() |
int |
ISO 15156 sour region (0–3) |
isSSCAcceptable() |
boolean |
SSC risk acceptable for this material |
isHICAcceptable() |
boolean |
HIC risk acceptable |
isSOHICAcceptable() |
boolean |
SOHIC risk acceptable |
getSSCRiskLevel() |
String |
SSC risk: “Low”, “Medium”, “High”, “Very High” |
getHICRiskLevel() |
String |
HIC risk level |
getOverallRiskLevel() |
String |
Combined worst-case risk level |
getRecommendedMaterial() |
String |
Recommended material for this environment |
getNotes() |
List<String> |
Detailed assessment notes and warnings |
getStandardsApplied() |
List<String> |
Standards referenced in the assessment |
toMap() |
Map |
All results as a LinkedHashMap |
toJson() |
String |
Complete JSON report |
SSC Acceptability Criteria
| Region |
Max HRC |
Max Yield (MPa) |
PWHT Required |
Additional |
| 0 |
— |
— |
No |
Non-sour; no SSC restrictions |
| 1 |
22 |
760 |
No |
Standard CS grades acceptable |
| 2 |
22 |
760 |
Yes |
PWHT mandatory for welds |
| 3 |
22 |
550 |
Yes |
Reduced yield limit; CRA may be needed |