Class SeparatorInternalsDatabase

java.lang.Object
neqsim.process.equipment.separator.entrainment.SeparatorInternalsDatabase
All Implemented Interfaces:
Serializable

public class SeparatorInternalsDatabase extends Object implements Serializable
Database of separator internals and inlet device performance data.

Loads performance specifications from CSV files in the resources/designdata directory. This provides a catalog of standard mist eliminator types, inlet devices, and coalescer plates with their grade efficiency parameters, K-factor limits, pressure drops, and mechanical properties.

The data is sourced from open literature:

  • Brunazzi, E., Paglianti, A. (1998), "Mechanistic pressure drop model for wire mesh mist eliminators", Chem. Eng. Sci., 53(19), 3373-3380.
  • Phillips, H., Listak, R. (1996), "Vane-type mist eliminators", Chem. Eng. Prog., 92(4), 50-55.
  • Hoffmann, A.C., Stein, L.E. (2008), Gas Cyclones and Swirl Tubes, 2nd ed., Springer.
  • Polderman, H.G. et al. (1997), "Design rules for plate pack coalescers", conference paper.
  • Arnold, K., Stewart, M. (2008), Surface Production Operations, Vol. 1.
  • Bothamley, M. (2013), "Gas/Liquid Separators — Quantifying Separation Performance", Part 1-3, Oil and Gas Facilities.
  • Verlaan, C.C.J. (2001), PhD Thesis, Delft University of Technology.
  • Svrcek, W.Y., Monnery, W.D. (1993), "Design Two-Phase Separators within the Right Limits", Chem. Eng. Prog.
Version:
1.0
Author:
NeqSim team
See Also:
  • Field Details

  • Constructor Details

    • SeparatorInternalsDatabase

      private SeparatorInternalsDatabase()
      Private constructor — use getInstance().
  • Method Details

    • getInstance

      public static SeparatorInternalsDatabase getInstance()
      Gets the singleton instance, loading data from CSV on first access.
      Returns:
      database instance
    • loadData

      private void loadData()
      Loads data from CSV files in resources/designdata/.
    • loadInternalsData

      private void loadInternalsData()
      Loads separator internals data from SeparatorInternals.csv.
    • loadInletDeviceData

      private void loadInletDeviceData()
      Loads inlet device data from SeparatorInletDevices.csv.
    • loadVendorCurveData

      private void loadVendorCurveData()
      Loads vendor-certified grade efficiency curve data from SeparatorVendorCurves.csv.

      Each row contains measured efficiency points at specific droplet diameters from factory acceptance testing. The diameter and efficiency arrays are semicolon-separated within their respective CSV fields.

    • createDefaultInternalsRecords

      private void createDefaultInternalsRecords()
      Creates default internals records when CSV is not available.
    • createDefaultInletDeviceRecords

      private void createDefaultInletDeviceRecords()
      Creates default inlet device records when CSV is not available.
    • findByType

      Finds all internals records matching the specified type.
      Parameters:
      type - internals type (e.g., "WIRE_MESH", "VANE_PACK")
      Returns:
      list of matching records
    • findByTypeAndSubType

      public SeparatorInternalsDatabase.InternalsRecord findByTypeAndSubType(String type, String subType)
      Finds a specific internals record by type and subtype.
      Parameters:
      type - internals type
      subType - subtype description
      Returns:
      matching record or null
    • findInletDeviceByType

      public List<SeparatorInternalsDatabase.InletDeviceRecord> findInletDeviceByType(String type)
      Finds all inlet device records matching the specified type.
      Parameters:
      type - device type (e.g., "INLET_VANE", "INLET_CYCLONE")
      Returns:
      list of matching records
    • getAllInternals

      Gets all internals records.
      Returns:
      all records
    • getAllInletDevices

      public List<SeparatorInternalsDatabase.InletDeviceRecord> getAllInletDevices()
      Gets all inlet device records.
      Returns:
      all records
    • getAllVendorCurves

      public List<SeparatorInternalsDatabase.VendorCurveRecord> getAllVendorCurves()
      Gets all vendor curve records.
      Returns:
      all vendor curve records
    • findVendorCurvesByType

      public List<SeparatorInternalsDatabase.VendorCurveRecord> findVendorCurvesByType(String internalsType)
      Finds vendor curve records matching the specified internals type.
      Parameters:
      internalsType - type (e.g., "WIRE_MESH", "VANE_PACK", "AXIAL_CYCLONE")
      Returns:
      list of matching records
    • findVendorCurvesByVendor

      public List<SeparatorInternalsDatabase.VendorCurveRecord> findVendorCurvesByVendor(String vendorName)
      Finds vendor curve records from a specific vendor.
      Parameters:
      vendorName - vendor name (case-insensitive)
      Returns:
      list of matching records
    • findVendorCurveById

      public SeparatorInternalsDatabase.VendorCurveRecord findVendorCurveById(String curveId)
      Finds a vendor curve record by its unique curve ID.
      Parameters:
      curveId - curve identifier (e.g., "VC001")
      Returns:
      matching record or null
    • findVendorCurvesByTypeAndVendor

      public List<SeparatorInternalsDatabase.VendorCurveRecord> findVendorCurvesByTypeAndVendor(String internalsType, String vendorName)
      Finds vendor curve records matching internals type and vendor.
      Parameters:
      internalsType - type (e.g., "WIRE_MESH")
      vendorName - vendor name
      Returns:
      list of matching records
    • toCatalogJson

      public String toCatalogJson()
      Returns a JSON catalog of all available separator internals.
      Returns:
      JSON string
    • parseDouble

      private static double parseDouble(String s)
      Parses a double from string, returning 0 for empty or invalid.
      Parameters:
      s - string to parse
      Returns:
      parsed value or 0
    • parseSemicolonDoubles

      private static double[] parseSemicolonDoubles(String s)
      Parses a semicolon-separated list of doubles (e.g., "1.0;2.5;5.0;10.0").
      Parameters:
      s - semicolon-separated double values
      Returns:
      array of parsed doubles, or null if input is empty