Class MultiphaseChokeFlowFactory

java.lang.Object
neqsim.process.mechanicaldesign.valve.choke.MultiphaseChokeFlowFactory

public final class MultiphaseChokeFlowFactory extends Object
Factory class for creating multiphase choke flow models.

This factory provides a convenient way to instantiate different choke flow correlations based on the application requirements.

Model Selection Guidelines:

  • Sachdeva: Best for general two-phase flow, subcritical and critical, mechanistic basis
  • Gilbert: Quick estimates, field applications, critical flow only
  • Achong: High GLR conditions (gas-dominated two-phase)
  • Baxendell: General purpose empirical correlation
  • Ros: Alternative empirical correlation
Version:
1.0
Author:
esol
  • Constructor Details

    • MultiphaseChokeFlowFactory

      private MultiphaseChokeFlowFactory()
      Private constructor to prevent instantiation.
  • Method Details

    • createModel

      public static MultiphaseChokeFlow createModel(MultiphaseChokeFlowFactory.ModelType modelType)
      Creates a choke flow model of the specified type.
      Parameters:
      modelType - the type of model to create
      Returns:
      a new MultiphaseChokeFlow instance
    • createModel

      public static MultiphaseChokeFlow createModel(MultiphaseChokeFlowFactory.ModelType modelType, double chokeDiameter)
      Creates a choke flow model of the specified type with choke diameter.
      Parameters:
      modelType - the type of model to create
      chokeDiameter - choke throat diameter in meters
      Returns:
      a new MultiphaseChokeFlow instance
    • createModel

      public static MultiphaseChokeFlow createModel(String modelName)
      Creates a choke flow model from a string name.

      Accepted names (case-insensitive):

      • "sachdeva", "sachdeva1986" - Sachdeva model
      • "gilbert", "gilbert1954" - Gilbert correlation
      • "baxendell", "baxendell1958" - Baxendell correlation
      • "ros", "ros1960" - Ros correlation
      • "achong", "achong1961" - Achong correlation
      Parameters:
      modelName - name of the model
      Returns:
      a new MultiphaseChokeFlow instance
    • createDefaultModel

      public static MultiphaseChokeFlow createDefaultModel()
      Creates the default choke flow model (Sachdeva).

      Sachdeva is recommended as the default because:

      • Handles both critical and subcritical flow
      • Well-validated across wide operating range
      • Mechanistic basis provides better extrapolation
      • Industry standard for production operations
      Returns:
      a new SachdevaChokeFlow instance
    • recommendModel

      public static MultiphaseChokeFlowFactory.ModelType recommendModel(double gasLiquidRatio, boolean isCriticalFlow)
      Selects the best model based on operating conditions.
      Parameters:
      gasLiquidRatio - gas-liquid ratio (Sm3/Sm3)
      isCriticalFlow - true if flow is expected to be critical
      Returns:
      recommended model type