Granular Activated Carbon (ZO)

Model Type

This unit model is formulated as a single-input, double-output model form. See documentation for single-input, double-output Helper Methods.

Electricity Consumption

The constraint used to calculate energy consumption is described in the Additional Constraints section below. More details can be found in the unit model class.

Costing Method

Costing is calculated using the cost_gac() method. For full details on costing, see documentation for the zero-order costing package.

Additional Variables

Description

Variable Name

Units

Empty bed contact time of unit

empty_bed_contact_time

\(h\)

Electricity consumption of unit

electricity

\(kW\)

Parameter for calculating electricity based on empty bed contact time

electricity_intensity_parameter

\(kW/m^3\)

Electricity intensity with respect to inlet flowrate of unit

energy_electric_flow_vol_inlet

\(kWh/m^3\)

Replacement rate of activated carbon

activated_carbon_replacement

\(kg/m^3\)

Demand for activated carbon

activated_carbon_demand

\(kg/h\)

Bulk density, total mass of GAC per total bed volume

activated_carbon_bulk_density

\(kg/m^3\)

Additional Constraints

Description

Constraint Name

Electricity intensity based on empty bed contact time.

electricity_intensity_constraint

Constraint for electricity consumption based on feed flowrate.

electricity_consumption

Constraint for activated carbon consumption.

activated_carbon_equation

Class Documentation

This module contains a zero-order representation of a granular activated carbon unit operation.

class watertap.unit_models.zero_order.gac_zo.GACZO(*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

    All zero-order models are steady-state only

    has_holdup

    Zero order models do not include holdup

    property_package

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

    property_package_args

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

    database

    An instance of a WaterTAP Database to use for parameters.

    process_subtype

    Process subtype to use when looking up parameters from database.

    isothermal

    Isothermal assumption, or ignore temperature variables in unit. Default=True

    isobaric

    Isobaric assumption, or ignore pressure variables in unit. Default=True

  • 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:

(GACZO) New instance

class watertap.unit_models.zero_order.gac_zo.GACZOData(component)[source]

Zero-Order model for a granular activated carbon unit operation.

build()[source]

General build method for UnitModelBlockData. This method calls a number of sub-methods which automate the construction of expected attributes of unit models.

Inheriting models should call super().build.

Parameters:

None

Returns:

None

static cost_gac(blk, number_of_parallel_units=5)[source]

Adapted from core GAC costing model initially released in v0.6.0

3 equation capital cost estimation for GAC systems with: (i), contactor/pressure vessel cost by polynomial as a function of individual contactor volume; (ii), initial charge of GAC adsorbent cost by exponential as a function of required mass of GAC adsorbent; and (iii), other process costs (vessels, pipes, instrumentation, and controls) calculated by power law as a function of total contactor(s) volume. Operating costs calculated as the required makeup and regeneration of GAC adsorbent. Energy for backwash and booster pumps considered negligible compared to regeneration costs :param number_of_parallel_units: number_of_parallel_units parallel units in operation (default: 5) :type number_of_parallel_units: int, optional