Class SeparatorInternalsDatabase
java.lang.Object
neqsim.process.equipment.separator.entrainment.SeparatorInternalsDatabase
- All Implemented Interfaces:
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classData record for an inlet device specification.static classData record for a separator internals specification.static classData record for a vendor-certified grade efficiency curve from factory acceptance testing (FAT). -
Field Summary
FieldsModifier and TypeFieldDescriptionLoaded inlet device records.private static SeparatorInternalsDatabaseSingleton instance.Loaded internals records.private booleanWhether data has been loaded.private static final org.apache.logging.log4j.LoggerLogger.private static final longSerialization version UID.Loaded vendor grade-efficiency curve records. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivatePrivate constructor — use getInstance(). -
Method Summary
Modifier and TypeMethodDescriptionprivate voidCreates default inlet device records when CSV is not available.private voidCreates default internals records when CSV is not available.findByType(String type) Finds all internals records matching the specified type.findByTypeAndSubType(String type, String subType) Finds a specific internals record by type and subtype.findInletDeviceByType(String type) Finds all inlet device records matching the specified type.findVendorCurveById(String curveId) Finds a vendor curve record by its unique curve ID.findVendorCurvesByType(String internalsType) Finds vendor curve records matching the specified internals type.findVendorCurvesByTypeAndVendor(String internalsType, String vendorName) Finds vendor curve records matching internals type and vendor.findVendorCurvesByVendor(String vendorName) Finds vendor curve records from a specific vendor.Gets all inlet device records.Gets all internals records.Gets all vendor curve records.static SeparatorInternalsDatabaseGets the singleton instance, loading data from CSV on first access.private voidloadData()Loads data from CSV files in resources/designdata/.private voidLoads inlet device data from SeparatorInletDevices.csv.private voidLoads separator internals data from SeparatorInternals.csv.private voidLoads vendor-certified grade efficiency curve data from SeparatorVendorCurves.csv.private static doubleParses a double from string, returning 0 for empty or invalid.private static double[]Parses a semicolon-separated list of doubles (e.g., "1.0;2.5;5.0;10.0").Returns a JSON catalog of all available separator internals.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
logger
private static final org.apache.logging.log4j.Logger loggerLogger. -
instance
Singleton instance. -
internalsRecords
Loaded internals records. -
inletDeviceRecords
Loaded inlet device records. -
vendorCurveRecords
Loaded vendor grade-efficiency curve records. -
loaded
private boolean loadedWhether data has been loaded.
-
-
Constructor Details
-
SeparatorInternalsDatabase
private SeparatorInternalsDatabase()Private constructor — use getInstance().
-
-
Method Details
-
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
Finds a specific internals record by type and subtype.- Parameters:
type- internals typesubType- subtype description- Returns:
- matching record or null
-
findInletDeviceByType
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
Gets all inlet device records.- Returns:
- all records
-
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
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
Returns a JSON catalog of all available separator internals.- Returns:
- JSON string
-
parseDouble
Parses a double from string, returning 0 for empty or invalid.- Parameters:
s- string to parse- Returns:
- parsed value or 0
-
parseSemicolonDoubles
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
-