Class Splitter

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, SplitterInterface, SimulationInterface, NamedInterface

public class Splitter extends ProcessEquipmentBaseClass implements SplitterInterface

Splitter class.

Version:
$Id: $Id
Author:
Even Solbraa
See Also:
  • Field Details

    • serialVersionUID

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

      static org.apache.logging.log4j.Logger logger
      Logger object for class.
    • thermoSystem

      SystemInterface thermoSystem
    • gasSystem

      SystemInterface gasSystem
    • waterSystem

      SystemInterface waterSystem
    • liquidSystem

      SystemInterface liquidSystem
    • thermoSystemCloned

      SystemInterface thermoSystemCloned
    • inletStream

      StreamInterface inletStream
    • splitStream

      StreamInterface[] splitStream
    • splitNumber

      protected int splitNumber
    • splitFactor

      double[] splitFactor
    • flowRates

      double[] flowRates
    • flowUnit

      String flowUnit
    • oldSplitFactor

      protected double[] oldSplitFactor
    • lastTemperature

      protected double lastTemperature
    • lastPressure

      protected double lastPressure
    • lastFlowRate

      protected double lastFlowRate
    • lastComposition

      protected double[] lastComposition
  • Constructor Details

    • Splitter

      public Splitter(String name)
      Constructor for Splitter.
      Parameters:
      name - name of splitter
    • Splitter

      public Splitter(String name, StreamInterface inStream)
      Constructor for Splitter.
      Parameters:
      name - name of splitter
      inStream - input stream
    • Splitter

      public Splitter(String name, StreamInterface inletStream, int number_of_splits)

      Constructor for Splitter.

      Parameters:
      name - a String object
      inletStream - a StreamInterface object
      number_of_splits - an int
  • Method Details

    • getInletStream

      public StreamInterface getInletStream()

      Getter for the field inletStream.

      Returns:
      a StreamInterface object
    • setSplitNumber

      public void setSplitNumber(int number_of_splits)

      setSplitNumber.

      Specified by:
      setSplitNumber in interface SplitterInterface
      Parameters:
      number_of_splits - a int
    • setSplitFactors

      public void setSplitFactors(double[] splitFact)

      setSplitFactors.

      Parameters:
      splitFact - an array of type double
    • setFlowRates

      public void setFlowRates(double[] flowRates, String flowUnit)

      setFlowRates.

      Parameters:
      flowRates - an array of type double
      flowUnit - a String object
    • calcSplitFactors

      public void calcSplitFactors()

      calcSplitFactors.

    • setInletStream

      public void setInletStream(StreamInterface inletStream)

      setInletStream.

      Specified by:
      setInletStream in interface SplitterInterface
      Parameters:
      inletStream - a StreamInterface object
    • getSplitStream

      public StreamInterface getSplitStream(int i)

      getSplitStream.

      Specified by:
      getSplitStream in interface SplitterInterface
      Parameters:
      i - a int
      Returns:
      a Stream object
    • needRecalculation

      public boolean needRecalculation()

      Check if process equipment needs recalculating.

      Specified by:
      needRecalculation in interface ProcessEquipmentInterface
      Returns:
      true or false
    • run

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Specified by:
      run in interface SimulationInterface
      Parameters:
      id - UUID
    • runTransient

      public void runTransient(double dt, UUID id)

      runTransient

      This method calculates thermodynamic and unit operations using difference equations if available and calculateSteadyState is true. Use setCalculateSteadyState to set the parameter. Sets calc identifier UUID.
      Specified by:
      runTransient in interface SimulationInterface
      Parameters:
      dt - Delta time [s]
      id - Calculation identifier
    • getSplitFactor

      public double getSplitFactor(int i)

      Getter for the field splitFactor.

      Parameters:
      i - a int
      Returns:
      a double
    • getSplitFactors

      public double[] getSplitFactors()

      getSplitFactors.

      Returns:
      an array of type double
    • getSplitNumber

      public int getSplitNumber()

      getSplitNumber.

      Returns:
      number of split outlets
    • getMassBalance

      public double getMassBalance(String unit)

      getMassBalance.

      Specified by:
      getMassBalance in interface ProcessEquipmentInterface
      Overrides:
      getMassBalance in class ProcessEquipmentBaseClass
      Parameters:
      unit - a String object
      Returns:
      a double
    • toJson

      public String toJson()

      Serializes the Process Equipment along with its state to a JSON string.

      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class ProcessEquipmentBaseClass
      Returns:
      json string.
    • toJson

      public String toJson(ReportConfig cfg)
      Serializes the Process Equipment with configurable level of detail.
      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class ProcessEquipmentBaseClass
      Parameters:
      cfg - report configuration
      Returns:
      json string
    • displayResult

      public void displayResult()

      displayResult.

      Specified by:
      displayResult in interface ProcessEquipmentInterface
      Overrides:
      displayResult in class ProcessEquipmentBaseClass
    • validateSetup

      public ValidationResult validateSetup()
      Validate the process equipment before execution.

      Checks for common setup errors:

      • Equipment has a valid name
      • Input streams connected
      • Operating parameters in valid ranges

      Validates the splitter setup before execution. Checks that:

      • Equipment has a valid name
      • Inlet stream is connected
      • Split factors are valid (sum to 1.0, all non-negative)
      • At least one split outlet is defined
      Specified by:
      validateSetup in interface ProcessEquipmentInterface
      Returns:
      validation result with errors and warnings