Class CO2CorrosionMaterialSelection

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

public class CO2CorrosionMaterialSelection extends Object implements Serializable
CRA (Corrosion Resistant Alloy) material selection for CO2-containing service.

Determines when carbon steel with inhibition or corrosion allowance is insufficient, and recommends the appropriate CRA grade. Uses empirical temperature and chloride limits from NORSOK M-001, EFC 17, and vendor qualification data.

Material Hierarchy

  • Carbon steel + corrosion allowance + inhibition (cheapest, most common)
  • 13Cr martensitic (low CO2, low Cl⁻, no H2S)
  • 22Cr duplex (moderate CO2, moderate Cl⁻, mild sour)
  • 25Cr super duplex (high CO2, high Cl⁻, moderate sour)
  • Nickel alloy (severe sour + high Cl⁻ + high T)

Standards

Standards used for CRA material selection
Standard Scope
NORSOK M-001 Material selection framework
EFC 17 CRA guidelines for CO2/H2S service
ISO 15156-3 CRA limits in sour service
DNV-RP-F112 Duplex SS in subsea production systems
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

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

      private double co2PartialPressureBar
      CO2 partial pressure in bar.
    • h2sPartialPressureBar

      private double h2sPartialPressureBar
      H2S partial pressure in bar.
    • temperatureC

      private double temperatureC
      Temperature in degrees Celsius.
    • chlorideConcentrationMgL

      private double chlorideConcentrationMgL
      Chloride concentration in mg/L.
    • co2CorrosionRateMmyr

      private double co2CorrosionRateMmyr
      CO2 corrosion rate (uninhibited) in mm/yr.
    • inhibitorAvailability

      private double inhibitorAvailability
      Inhibitor availability factor (0-1).
    • designLifeYears

      private double designLifeYears
      Design life in years.
    • maxCorrosionAllowanceMm

      private double maxCorrosionAllowanceMm
      Maximum allowable corrosion allowance in mm.
    • inhibitionFeasible

      private boolean inhibitionFeasible
      Whether continuous inhibition is feasible.
    • inSituPH

      private double inSituPH
      In-situ pH.
    • selectedMaterial

      private String selectedMaterial
      Selected material grade.
    • alternatives

      private List<String> alternatives
      Material alternatives (ranked by cost).
    • selectionRationale

      private String selectionRationale
      Selection rationale.
    • csCorrosionAllowanceMm

      private double csCorrosionAllowanceMm
      Required corrosion allowance for CS option (mm).
    • carbonSteelViable

      private boolean carbonSteelViable
      Whether carbon steel with inhibition is viable.
    • relativeCostFactor

      private double relativeCostFactor
      Approximate relative cost factor (CS=1.0).
    • notes

      private List<String> notes
      Notes.
    • evaluated

      private boolean evaluated
      Evaluated flag.
  • Constructor Details

    • CO2CorrosionMaterialSelection

      public CO2CorrosionMaterialSelection()
      Default constructor.
  • Method Details

    • setCO2PartialPressureBar

      public void setCO2PartialPressureBar(double bar)
      Sets CO2 partial pressure.
      Parameters:
      bar - CO2 partial pressure in bar
    • setH2SPartialPressureBar

      public void setH2SPartialPressureBar(double bar)
      Sets H2S partial pressure.
      Parameters:
      bar - H2S partial pressure in bar
    • 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 in mg/L
    • setCO2CorrosionRateMmyr

      public void setCO2CorrosionRateMmyr(double mmyr)
      Sets CO2 corrosion rate (uninhibited).
      Parameters:
      mmyr - corrosion rate in mm/yr
    • setInhibitorAvailability

      public void setInhibitorAvailability(double factor)
      Sets inhibitor availability factor.
      Parameters:
      factor - availability factor 0-1 (0.95 = 95%)
    • setDesignLifeYears

      public void setDesignLifeYears(double years)
      Sets design life.
      Parameters:
      years - design life in years
    • setInhibitionFeasible

      public void setInhibitionFeasible(boolean feasible)
      Sets whether continuous inhibition is feasible.
      Parameters:
      feasible - true if inhibition is feasible
    • setInSituPH

      public void setInSituPH(double pH)
      Sets in-situ pH.
      Parameters:
      pH - in-situ pH value
    • evaluate

      public void evaluate()
      Performs material selection.
    • evaluateCarbonSteelViability

      private void evaluateCarbonSteelViability()
      Checks if carbon steel with inhibition is viable.
    • selectCRAGrade

      private void selectCRAGrade()
      Selects the appropriate CRA grade.
    • getSelectedMaterial

      public String getSelectedMaterial()
      Gets selected material.
      Returns:
      selected material grade
    • getAlternatives

      public List<String> getAlternatives()
      Gets alternatives.
      Returns:
      list of alternative materials
    • getSelectionRationale

      public String getSelectionRationale()
      Gets selection rationale.
      Returns:
      rationale text
    • getCsCorrosionAllowanceMm

      public double getCsCorrosionAllowanceMm()
      Gets carbon steel corrosion allowance.
      Returns:
      corrosion allowance in mm
    • isCarbonSteelViable

      public boolean isCarbonSteelViable()
      Checks if carbon steel is viable.
      Returns:
      true if CS is viable
    • getRelativeCostFactor

      public double getRelativeCostFactor()
      Gets relative cost factor (CS = 1.0).
      Returns:
      cost multiplier
    • getNotes

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

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

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