Generic Solid-Liquid Separator#

The SLSeparator unit model is a general purpose model for representing the separation of mixed streams containing solids and liquids, such as filtration and thickening. The model assumes that the mixed stream is separated into a concentrated solid-liquid stream and a stream of clarified liquid.

Degrees of Freedom#

The SLSeparator model has 1 degree of freedom, which is generally the liquid recovery fraction. Note that due to the assumption that all solids report to the concentrated outlet, the solid inlet and outlet Ports link to the same variables (and thus cannot be fixed independently).

Model Structure#

The model consists of two parts. The solid phase is represented by a single StateBlock as all solids in the inlet are assumed to report to the concentrated outlet. The liquid phase is represented by a standard Separator block which splits the incoming liquid between the concentrated and clarified outlets.

The SLSeparator unit model has a total of 5 ports:

  • solid_inlet representing the solids in the incoming stream,

  • liquid_inlet representing the liquid in the incoming stream,

  • solid_outlet representing the solids in the concentrated stream,

  • retained_liquid_outlet representing the liquid in the concentrated stream, and,

  • recovered_liquid_outlet representing the liquid in the clarified stream.

Additional Constraints#

The SLSeparator model adds no additional constraints beyond those written by the Separator and StateBlocks.

Variables#

The SLSeparator adds one Reference to a variable in the Separator.

Variable

Name

Notes

\(R_t\)

liquid_recovery

Fraction of liquid which reports to the clarified stream, reference to split.split_fraction

SLSeparator Class#

class idaes.models.unit_models.solid_liquid.sl_separator.SLSeparator(*args, **kwds)#
Parameters:
  • rule (function) – A rule function or None. Default rule calls build().

  • concrete (bool) – If True, make this a toplevel model. Default - False.

  • ctype (class) –

    Pyomo ctype of the block. Default - pyomo.environ.Block

    Config args

    dynamic

    Indicates whether this model will be dynamic or not, default = False. Flash units do not support dynamic behavior.

    has_holdup

    Indicates whether holdup terms should be constructed or not. default - False. Flash units do not have defined volume, thus this must be False.

    material_balance_type

    Indicates what type of mass balance should be constructed, default - MaterialBalanceType.useDefault. Valid values: { MaterialBalanceType.useDefault - refer to property package for default balance type **MaterialBalanceType.none - exclude material balances, MaterialBalanceType.componentPhase - use phase component balances, MaterialBalanceType.componentTotal - use total component balances, MaterialBalanceType.elementTotal - use total element balances, MaterialBalanceType.total - use total material balance.}

    momentum_balance_type

    Indicates what type of momentum balance should be constructed, default - MomentumBalanceType.pressureTotal. Valid values: { MomentumBalanceType.none - exclude momentum balances, MomentumBalanceType.pressureTotal - single pressure balance for material, MomentumBalanceType.pressurePhase - pressure balances for each phase, MomentumBalanceType.momentumTotal - single momentum balance for material, MomentumBalanceType.momentumPhase - momentum balances for each phase.}

    energy_split_basis

    Argument indicating basis to use for splitting energy this is not used for when ideal_separation == True. default - EnergySplittingType.equal_temperature. Valid values: { EnergySplittingType.equal_temperature - outlet temperatures equal inlet EnergySplittingType.equal_molar_enthalpy - outlet molar enthalpies equal inlet, EnergySplittingType.enthalpy_split - apply split fractions to enthalpy flows.}

    solid_property_package

    Property parameter object used to define solid phase property calculations, default - useDefault. Valid values: { useDefault - use default package from parent model or flowsheet, PropertyParameterObject - a PropertyParameterBlock object.}

    solid_property_package_args

    A ConfigBlock with arguments to be passed to a solid phase property block(s) and used when constructing these, default - None. Valid values: { see property package for documentation.}

    liquid_property_package

    Property parameter object used to define liquid phase property calculations, default - useDefault. Valid values: { useDefault - use default package from parent model or flowsheet, PropertyParameterObject - a PropertyParameterBlock object.}

    liquid_property_package_args

    A ConfigBlock with arguments to be passed to a liquid phase property block(s) and used when constructing these, default - None. Valid values: { see property package for documentation.}

  • initialize (dict) – ProcessBlockData config for individual elements. Keys are BlockData indexes and values are dictionaries with config arguments as keys.

  • idx_map (function) – Function to take the index of a BlockData element and return the index in the initialize dict from which to read arguments. This can be provided to override the default behavior of matching the BlockData index exactly to the index in initialize.

Returns:

(SLSeparator) New instance

SLSeparatorData Class#

class idaes.models.unit_models.solid_liquid.sl_separator.SLSeparatorData(component)[source]#

Standard Solid-Liquid Separator Unit Model Class

build()[source]#

Begin building model (pre-DAE transformation).

Parameters:

None

Returns:

None

default_initializer#

alias of BlockTriangularizationInitializer

initialize(**kwargs)[source]#

Initialization routine for Unit Model objects and associated components.

This method is intended for initializing IDAES unit models and any modeling components attached to them, such as costing blocks. This method iterates through all objects in blk._initialization_order and deactivates them, followed by calling blk.initialize_build. Finally, it iterates through all objects in blk._initialization_order in reverse and re-activates these whilst calling the associated initialize method.

Currently, parsing of arguments to the initialize method of attached blocks is hard coded - this will be addressed in a future PR. Currently, the method supports the following attached components:

  • UnitModelCostingBlocks

Parameters:

block (costing_args - dict arguments to be passed to costing) – initialize method

For other arguments, see the initialize_unit method.