Class SolidsSeparator

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface
Direct Known Subclasses:
PressureFilter, RotaryVacuumFilter, ScrewPress, SolidsCentrifuge

public class SolidsSeparator extends ProcessEquipmentBaseClass
Solids separator for bio-processing applications.

Separates a feed stream into a solids-rich (cake/retentate) stream and a liquid-clear (filtrate/permeate) stream. The separation is based on component-specific split fractions that define what fraction of each component goes to the solids outlet.

This is the base class for various solids-liquid separation equipment such as centrifuges, rotary vacuum filters, pressure filters, and screw presses. Subclasses can override the defaults for energy consumption and efficiency.

Usage example:

SolidsSeparator centrifuge = new SolidsSeparator("Centrifuge", feedStream);
centrifuge.setSolidsSplitFraction("cell_mass", 0.99); // 99% recovery
centrifuge.setSolidsSplitFraction("fiber", 0.95);
centrifuge.setMoistureContent(0.40); // 40% moisture in cake
centrifuge.run();

StreamInterface cake = centrifuge.getSolidsOutStream();
StreamInterface filtrate = centrifuge.getLiquidOutStream();
Version:
1.0
Author:
NeqSim team
See Also:
  • Field Details

    • serialVersionUID

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

      private static final org.apache.logging.log4j.Logger logger
      Logger object for class.
    • inletStream

      protected StreamInterface inletStream
      Inlet feed stream.
    • solidsOutStream

      protected StreamInterface solidsOutStream
      Solids-rich outlet stream (cake/retentate).
    • liquidOutStream

      protected StreamInterface liquidOutStream
      Liquid-clear outlet stream (filtrate/permeate).
    • solidsSplitFractions

      private Map<String,Double> solidsSplitFractions
      Component-specific split fraction to solids outlet. Keys are component names, values are fractions (0-1) going to solids outlet. Components not listed default to defaultSolidsSplit.
    • defaultSolidsSplit

      private double defaultSolidsSplit
      Default split fraction to solids outlet for components not explicitly specified.
    • moistureContent

      private double moistureContent
      Target moisture content (mass fraction) in the solids cake.
    • pressureDrop

      private double pressureDrop
      Pressure drop across the separator in bar.
    • specificEnergy

      private double specificEnergy
      Specific energy consumption in kWh per m3 of feed.
    • powerConsumption

      private double powerConsumption
      Calculated power consumption in kW.
    • equipmentType

      protected String equipmentType
      Equipment type string for reporting.
  • Constructor Details

    • SolidsSeparator

      public SolidsSeparator(String name)
      Constructor for SolidsSeparator.
      Parameters:
      name - name of the separator
    • SolidsSeparator

      public SolidsSeparator(String name, StreamInterface inletStream)
      Constructor for SolidsSeparator with inlet stream.
      Parameters:
      name - name of the separator
      inletStream - the feed stream to separate
  • Method Details

    • setInletStream

      public void setInletStream(StreamInterface inletStream)
      Set the inlet feed stream.
      Parameters:
      inletStream - the feed stream
    • getInletStream

      public StreamInterface getInletStream()
      Get the inlet stream.
      Returns:
      inlet stream
    • getSolidsOutStream

      public StreamInterface getSolidsOutStream()
      Get the solids-rich outlet stream.
      Returns:
      solids outlet stream
    • getLiquidOutStream

      public StreamInterface getLiquidOutStream()
      Get the liquid-clear outlet stream.
      Returns:
      liquid outlet stream
    • setSolidsSplitFraction

      public void setSolidsSplitFraction(String componentName, double fraction)
      Set the fraction of a specific component going to the solids outlet.
      Parameters:
      componentName - name of the component
      fraction - fraction going to solids (0.0 to 1.0)
    • getSolidsSplitFraction

      public double getSolidsSplitFraction(String componentName)
      Get the solids split fraction for a component.
      Parameters:
      componentName - component name
      Returns:
      split fraction (0.0 to 1.0)
    • setDefaultSolidsSplit

      public void setDefaultSolidsSplit(double fraction)
      Set the default split fraction for components not explicitly specified.
      Parameters:
      fraction - default fraction to solids (0.0 to 1.0)
    • getDefaultSolidsSplit

      public double getDefaultSolidsSplit()
      Get the default solids split fraction.
      Returns:
      default split fraction
    • setMoistureContent

      public void setMoistureContent(double moistureFraction)
      Set the target moisture content of the solids cake.
      Parameters:
      moistureFraction - mass fraction of liquid in cake (0.0 to 1.0)
    • getMoistureContent

      public double getMoistureContent()
      Get the moisture content of the cake.
      Returns:
      moisture mass fraction
    • setPressureDrop

      public void setPressureDrop(double dP)
      Set the pressure drop across the separator.
      Parameters:
      dP - pressure drop in bar
    • getPressureDrop

      public double getPressureDrop()
      Get the pressure drop.
      Returns:
      pressure drop in bar
    • setSpecificEnergy

      public void setSpecificEnergy(double energy)
      Set specific energy consumption.
      Parameters:
      energy - specific energy in kWh/m3
    • getSpecificEnergy

      public double getSpecificEnergy()
      Get the specific energy consumption.
      Returns:
      energy in kWh/m3
    • getPowerConsumption

      public double getPowerConsumption()
      Get the calculated power consumption in kW.
      Returns:
      power in kW
    • run

      public void run(UUID id)

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

      Parameters:
      id - UUID
    • 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.
    • toMap

      private Map<String,Object> toMap()
      Get a map representation of this separator.
      Returns:
      map of properties