Class FacilityBuilder

java.lang.Object
neqsim.process.fielddevelopment.facility.FacilityBuilder
All Implemented Interfaces:
Serializable

public final class FacilityBuilder extends Object implements Serializable
Fluent builder for assembling facility configurations from modular blocks.

This builder enables rapid, concept-level facility configuration using pre-validated process blocks. Blocks are assembled in sequence and can later be instantiated into actual process equipment via a facility instantiator.

Example usage:

FacilityConfig config =
    FacilityBuilder.forConcept(myConcept).addBlock(BlockConfig.inletSeparation(80, 25))
        .addBlock(BlockConfig.compression(2, 180)).addBlock(BlockConfig.tegDehydration(50))
        .addBlock(BlockConfig.co2Membrane(2.5)).withRedundancy("compression", 1).build();
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • concept

      private final FieldConcept concept
    • blocks

      private final List<BlockConfig> blocks
    • redundancyRequirements

      private final List<String> redundancyRequirements
    • name

      private String name
    • includeFlare

      private boolean includeFlare
    • includePowerGen

      private boolean includePowerGen
    • designMargin

      private double designMargin
  • Constructor Details

    • FacilityBuilder

      private FacilityBuilder(FieldConcept concept)
  • Method Details

    • forConcept

      public static FacilityBuilder forConcept(FieldConcept concept)
      Creates a new facility builder for the given concept.
      Parameters:
      concept - field concept
      Returns:
      new builder instance
    • autoGenerate

      public static FacilityBuilder autoGenerate(FieldConcept concept)
      Creates a builder and auto-generates blocks based on concept requirements.

      Automatically adds:

      • Inlet separation (always)
      • Compression if inlet pressure < export pressure
      • TEG dehydration if gas export
      • CO2 removal if CO2 > 2%
      • H2S removal if H2S > 50 ppm
      • Oil stabilization if oil export
      Parameters:
      concept - field concept
      Returns:
      builder with auto-generated blocks
    • name

      public FacilityBuilder name(String name)
      Sets a custom name for the facility.
      Parameters:
      name - facility name
      Returns:
      this builder
    • addBlock

      public FacilityBuilder addBlock(BlockConfig block)
      Adds a block to the facility.
      Parameters:
      block - block configuration
      Returns:
      this builder
    • addBlock

      public FacilityBuilder addBlock(BlockType type)
      Adds a block with default parameters.
      Parameters:
      type - block type
      Returns:
      this builder
    • addCompression

      public FacilityBuilder addCompression(int stages)
      Adds compression with specified number of stages.
      Parameters:
      stages - compression stages
      Returns:
      this builder
    • addCompression

      public FacilityBuilder addCompression(int stages, double outletPressure)
      Adds compression with specified stages and outlet pressure.
      Parameters:
      stages - compression stages
      outletPressure - target outlet pressure in bara
      Returns:
      this builder
    • addTegDehydration

      public FacilityBuilder addTegDehydration(double waterSpecPpm)
      Adds TEG dehydration with specified water spec.
      Parameters:
      waterSpecPpm - target water content in ppm
      Returns:
      this builder
    • addCo2Membrane

      public FacilityBuilder addCo2Membrane(double co2SpecPercent)
      Adds CO2 removal via membrane.
      Parameters:
      co2SpecPercent - target CO2 percent
      Returns:
      this builder
    • addCo2Amine

      public FacilityBuilder addCo2Amine(double co2SpecPercent)
      Adds CO2 removal via amine.
      Parameters:
      co2SpecPercent - target CO2 percent
      Returns:
      this builder
    • withRedundancy

      public FacilityBuilder withRedundancy(String blockName, int spareCount)
      Specifies that a block type should have redundancy (n+x).
      Parameters:
      blockName - name of block requiring redundancy
      spareCount - number of spare units (e.g., 1 for n+1)
      Returns:
      this builder
    • includeFlare

      public FacilityBuilder includeFlare(boolean include)
      Sets whether to include a flare system (default: true).
      Parameters:
      include - true to include flare
      Returns:
      this builder
    • includePowerGeneration

      public FacilityBuilder includePowerGeneration(boolean include)
      Sets whether to include power generation on-site.
      Parameters:
      include - true to include power generation
      Returns:
      this builder
    • designMargin

      public FacilityBuilder designMargin(double margin)
      Sets the design margin factor (default: 1.15 = 15% margin).
      Parameters:
      margin - design margin factor
      Returns:
      this builder
    • build

      public FacilityConfig build()
      Builds the facility configuration.
      Returns:
      immutable facility configuration