Class AmmoniaCompatibility

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

public class AmmoniaCompatibility extends Object implements Serializable
Ammonia compatibility assessment for materials in ammonia service.

Evaluates material suitability for anhydrous ammonia, aqueous ammonia, and ammonia as a hydrogen carrier. Covers SCC of carbon steel in anhydrous NH3, copper alloy incompatibility, and temperature/stress limits.

Key Failure Mechanisms

  • SCC of carbon steel in anhydrous NH3 (requires O2 inhibitor at 0.1-0.2% by weight)
  • Copper and copper alloy dissolution and SCC in ammonia environments
  • Nitridation at elevated temperatures (>300°C)
  • Caustic embrittlement in concentrated aqueous NH3

Standards

Standards for ammonia service assessment
Standard Scope
CGA G-2 Anhydrous ammonia hose connections
CGA G-2.1 Safety requirements for ammonia storage
ASME B31.3 Process piping — ammonia service
IGC Code Gas carriers — ammonia compatibility
49 CFR 173.315 DOT requirements — anhydrous ammonia
API 660 Shell-and-tube HX — ammonia considerations
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

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

      private double temperatureC
      Temperature in Celsius.
    • pressureBara

      private double pressureBara
      Pressure in bara.
    • nh3ConcentrationWtPct

      private double nh3ConcentrationWtPct
      Ammonia concentration in wt%.
    • anhydrous

      private boolean anhydrous
      Whether this is anhydrous ammonia service.
    • waterContentWtPct

      private double waterContentWtPct
      Water content in wt%.
    • o2InhibitorWtPct

      private double o2InhibitorWtPct
      O2 content in wt% (inhibitor).
    • materialType

      private String materialType
      Material type.
    • stressRatio

      private double stressRatio
      Applied stress as fraction of yield.
    • pwhtApplied

      private boolean pwhtApplied
      Whether PWHT has been applied.
    • hardnessHRC

      private double hardnessHRC
      Hardness in HRC.
    • compatible

      private boolean compatible
      Whether material is compatible.
    • riskLevel

      private String riskLevel
      Risk level.
    • primaryMechanism

      private String primaryMechanism
      Primary failure mechanism.
    • o2InhibitorAdequate

      private boolean o2InhibitorAdequate
      Whether O2 inhibitor is adequate.
    • requiredO2InhibitorWtPct

      private double requiredO2InhibitorWtPct
      Required O2 inhibitor level.
    • maxAllowableTempC

      private double maxAllowableTempC
      Maximum allowable temperature for material.
    • maxAllowableHRC

      private double maxAllowableHRC
      Maximum allowable hardness.
    • recommendedMaterial

      private String recommendedMaterial
      Recommended material.
    • notes

      private List<String> notes
      Notes.
    • evaluated

      private boolean evaluated
      Evaluated flag.
  • Constructor Details

    • AmmoniaCompatibility

      public AmmoniaCompatibility()
      Default constructor.
  • Method Details

    • setTemperatureC

      public void setTemperatureC(double tempC)
      Sets temperature.
      Parameters:
      tempC - temperature in Celsius
    • setPressureBara

      public void setPressureBara(double bara)
      Sets pressure.
      Parameters:
      bara - pressure in bara
    • setNh3ConcentrationWtPct

      public void setNh3ConcentrationWtPct(double wtPct)
      Sets NH3 concentration.
      Parameters:
      wtPct - NH3 weight percent
    • setAnhydrous

      public void setAnhydrous(boolean anhydrous)
      Sets anhydrous flag.
      Parameters:
      anhydrous - true for anhydrous ammonia
    • setWaterContentWtPct

      public void setWaterContentWtPct(double wtPct)
      Sets water content.
      Parameters:
      wtPct - water in wt%
    • setO2InhibitorWtPct

      public void setO2InhibitorWtPct(double wtPct)
      Sets O2 inhibitor content.
      Parameters:
      wtPct - O2 in wt%
    • setMaterialType

      public void setMaterialType(String type)
      Sets material type.
      Parameters:
      type - material type string
    • setStressRatio

      public void setStressRatio(double ratio)
      Sets stress ratio.
      Parameters:
      ratio - stress as fraction of yield (0-1)
    • setPwhtApplied

      public void setPwhtApplied(boolean applied)
      Sets PWHT flag.
      Parameters:
      applied - true if PWHT applied
    • setHardnessHRC

      public void setHardnessHRC(double hrc)
      Sets hardness.
      Parameters:
      hrc - hardness in HRC
    • evaluate

      public void evaluate()
      Performs ammonia compatibility assessment.
    • evaluateCarbonSteel

      private void evaluateCarbonSteel()
      Evaluates carbon steel in ammonia service.
    • evaluateCarbonSteelAnhydrous

      private void evaluateCarbonSteelAnhydrous()
      Evaluates CS in anhydrous NH3 — SCC is the primary concern.
    • evaluateCarbonSteelAqueous

      private void evaluateCarbonSteelAqueous()
      Evaluates CS in aqueous NH3.
    • evaluateCopperAlloy

      private void evaluateCopperAlloy()
      Evaluates copper alloy — NEVER compatible with ammonia.
    • evaluateAusteniticSS

      private void evaluateAusteniticSS()
      Evaluates austenitic SS — generally excellent in NH3.
    • evaluateDuplexSS

      private void evaluateDuplexSS()
      Evaluates duplex SS.
    • evaluateNickelAlloy

      private void evaluateNickelAlloy()
      Evaluates nickel alloy — best choice for high-temp NH3.
    • isCompatible

      public boolean isCompatible()
      Checks if material is compatible.
      Returns:
      true if compatible
    • getRiskLevel

      public String getRiskLevel()
      Gets risk level.
      Returns:
      risk level string
    • getPrimaryMechanism

      public String getPrimaryMechanism()
      Gets primary failure mechanism.
      Returns:
      mechanism description
    • isO2InhibitorAdequate

      public boolean isO2InhibitorAdequate()
      Checks if O2 inhibitor is adequate.
      Returns:
      true if adequate or not needed
    • getRequiredO2InhibitorWtPct

      public double getRequiredO2InhibitorWtPct()
      Gets required O2 inhibitor level.
      Returns:
      required level in wt%
    • getMaxAllowableTempC

      public double getMaxAllowableTempC()
      Gets max allowable temperature.
      Returns:
      max temp in Celsius
    • getMaxAllowableHRC

      public double getMaxAllowableHRC()
      Gets max allowable hardness.
      Returns:
      max HRC
    • getRecommendedMaterial

      public String getRecommendedMaterial()
      Gets recommended material.
      Returns:
      recommended material string
    • 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