Class BarrierEnvelope

java.lang.Object
neqsim.process.mechanicaldesign.subsea.BarrierEnvelope
All Implemented Interfaces:
Serializable

public class BarrierEnvelope extends Object implements Serializable
Represents a well barrier envelope per NORSOK D-010 Section 5.

A barrier envelope is an ordered collection of barrier elements that together form a pressure-containing boundary between the reservoir and the environment. Per NORSOK D-010, every well must maintain at least two independent barrier envelopes (primary and secondary) at all times.

For production wells (NORSOK D-010 Table 20):

  • Primary: tubing, DHSV, tubing hanger, Xmas tree
  • Secondary: production casing, casing cement, wellhead, casing hanger

For injection wells (NORSOK D-010 Tables 36-37):

  • Primary: tubing, packer, ISV, tubing hanger, Xmas tree
  • Secondary: production casing, casing cement, wellhead, casing hanger
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • name

      private final String name
      Envelope name (e.g., "Primary", "Secondary").
    • elements

      private final List<BarrierElement> elements
      Ordered list of barrier elements forming this envelope.
  • Constructor Details

    • BarrierEnvelope

      public BarrierEnvelope(String name)
      Create a barrier envelope.
      Parameters:
      name - envelope name (e.g., "Primary", "Secondary")
  • Method Details

    • addElement

      public void addElement(BarrierElement element)
      Add a barrier element to this envelope.
      Parameters:
      element - the barrier element
    • getName

      public String getName()
      Get the envelope name.
      Returns:
      envelope name
    • getElements

      public List<BarrierElement> getElements()
      Get all elements in this envelope (unmodifiable).
      Returns:
      list of barrier elements
    • getElementCount

      public int getElementCount()
      Get the number of elements in this envelope.
      Returns:
      element count
    • getFunctionalElementCount

      public int getFunctionalElementCount()
      Get the number of functional (intact or degraded) elements.
      Returns:
      count of functional elements
    • getVerifiedElementCount

      public int getVerifiedElementCount()
      Get the number of verified elements.
      Returns:
      count of verified elements
    • isIntact

      public boolean isIntact()
      Check if this envelope is intact (all elements functional).
      Returns:
      true if all elements are functional
    • meetsMinimum

      public boolean meetsMinimum(int minElements)
      Check if this envelope has the minimum required elements.

      Per NORSOK D-010, each envelope must have at least 2 independent elements.

      Parameters:
      minElements - minimum number of functional elements required
      Returns:
      true if enough functional elements exist
    • hasElementType

      public boolean hasElementType(BarrierElement.ElementType type)
      Check if a specific element type exists in this envelope.
      Parameters:
      type - element type to check for
      Returns:
      true if at least one element of this type exists
    • getElementsByType

      public List<BarrierElement> getElementsByType(BarrierElement.ElementType type)
      Get all elements of a specific type.
      Parameters:
      type - element type to search for
      Returns:
      list of matching elements
    • getFailedElements

      public List<BarrierElement> getFailedElements()
      Get failed elements in this envelope.
      Returns:
      list of failed elements
    • toString

      public String toString()
      Overrides:
      toString in class Object