The Brown Book
Documentation for the PooPyLab project
PooPyLab.unit_procs.physchem.final_clarifier Class Reference

A "splitter" w/ different particulate concentrations at inlet/outlets. More...

Inheritance diagram for PooPyLab.unit_procs.physchem.final_clarifier:
PooPyLab.unit_procs.streams.splitter PooPyLab.unit_procs.base.poopy_lab_obj

Public Member Functions

def __init__ (self, active_vol=9500, SWD=3.5)
 Constructor for final_clarifier. More...
 
def set_as_SRT_controller (self, setting=False)
 Set the current splitter as an Solids Retention Time controller. More...
 
def discharge (self)
 Pass the total flow and blended components to the downstreams. More...
 
def set_capture_rate (self, capture_rate=0.95)
 Set the percent solids capture for the final clarifier. More...
 
- Public Member Functions inherited from PooPyLab.unit_procs.streams.splitter
def __init__ (self)
 Constructor for "splitter".
 
def set_flow_data_src (self, branch='Main', flow_ds=flow_data_src.TBD)
 Set the flow data source of the branch specified by the user. More...
 
def get_flow_data_src (self)
 Return the flow data source tags of all three branches.
 
def assign_initial_guess (self, init_guess_lst)
 Assign the intial guess to the unit before simulation. More...
 
def is_converged (self, limit=1E-6)
 Return the convergence status of the unit. More...
 
def get_type (self)
 Return the type string of the process unit. More...
 
def has_sidestream (self)
 Return whether the unit has a sidestream. More...
 
def add_upstream (self, discharger, upst_branch='Main')
 Add the discharger's branch to inlet. More...
 
def has_discharger (self)
 Return whether the unit's inlet has been connected. More...
 
def get_upstream (self)
 Return the _inlet {} of the unit. More...
 
def totalize_inflow (self)
 Combine the individual flows specified in the self._inlet into one. More...
 
def blend_inlet_comps (self)
 Calculate the flow weighted average model component concentrations. More...
 
def update_combined_input (self)
 Update both total inflow and blended concentrations (model components).
 
def remove_upstream (self, discharger)
 Remove an existing discharger from inlet. More...
 
def set_downstream_main (self, rcvr)
 Define the main outlet by specifying the receiving process unit.
 
def main_outlet_connected (self)
 Return whether the mainstream outlet is connected. More...
 
def get_downstream_main (self)
 Return the process unit connected at the mainstream outlet. More...
 
def set_mainstream_flow_by_upstream (self, f=True)
 Set whether the mainstream flow = (total inflow - side outflow).
 
def set_mainstream_flow (self, flow=0)
 Define the mainstream outlet flow. More...
 
def get_main_outflow (self)
 Return the mainstream outflow. More...
 
def get_main_outlet_concs (self)
 Return a copy of the mainstream outlet concentrations. More...
 
def set_downstream_side (self, rcvr)
 Define the downstream side outlet's connection. More...
 
def side_outlet_connected (self)
 Return True if the main outlet is connected, False if not. More...
 
def get_downstream_side (self)
 Return the process unit connected to the side outlet. More...
 
def set_sidestream_flow (self, flow=0)
 Define the flow rate for the sidestream. More...
 
def sidestream_flow_defined (self)
 Return whether the sidestream flow rate has been defined. More...
 
def get_side_outflow (self)
 Return the sidestream outlet flow rate. More...
 
def get_side_outlet_concs (self)
 Return a copy of the sidestream outlet concentrations. More...
 
def set_flow (self, dschgr, flow)
 Specify the flow from the discharger. More...
 
def get_TSS (self, br='Main')
 Return the Total Suspended Solids of the specified branch.
 
def get_VSS (self, br='Main')
 Return the Volatile Suspended Solids of the specified branch.
 
def get_COD (self, br='Main')
 Return the Chemical Oxygen Demand (total) of the specified branch.
 
def get_sCOD (self, br='Main')
 Return the soluble COD of the specified branch.
 
def get_pCOD (self, br='Main')
 Return the particultate COD of the specified branch.
 
def get_TN (self, br='Main')
 Return the total nitrogen of the specified branch. More...
 
def get_orgN (self, br='Main')
 Return the organic nitrogen of the specified branch.
 
def get_inorgN (self, br='Main')
 Return the inorganic nitrogen of the specified branch.
 
def get_pN (self, br='Main')
 Return the particulate nitrogen of the specified branch.
 
def get_sN (self, br='Main')
 Return the soluble nitrogen of the specified branch.
 
def is_SRT_controller (self)
 Return whether a splitter is an SRT controller.
 

Private Member Functions

def _valid_under_TSS (self, uf_TSS)
 Check whether the underflow TSS is realistic. More...
 
def _settle_solids (self, particulate_index=[7, 8, 9, 10, 11, 12])
 Split the incoming solids into the main- and sidestream outlets. More...
 

Private Attributes

 __name__
 
 _type
 
 _active_vol
 clarifier active volume, bottom cone volume excluded, m3
 
 _swd
 side water depth of the active volume, m
 
 _area
 plan section area, m2
 
 _upstream_set_mo_flow
 
 _capture_rate
 user defined solids capture rate, fraction less than 1.0;
 
 _under_TSS
 underflow solids, mg/L
 
 _prev_mo_comps
 
 _prev_so_comps
 
 _mo_comps
 
 _so_comps
 

Static Private Attributes

int __id
 

Detailed Description

A "splitter" w/ different particulate concentrations at inlet/outlets.

In order to keep the PooPyLab package simple and focused on the biological processes, the final clarifier is assumed to be an ideal one. No detail solids settling model is implemented, as least for now.

However, surface overflow rate, solids loading rate, and HRT will be checked and warnings will be given to user if they are out of normal ranges. Simulation will not proceed until all parameters are within proper ranges. TODO: Add actual solids sedimentation model.

By default, the mainstream and sidestream outlets are overflow and underflow, respectively, of the final clarifier.

Constructor & Destructor Documentation

◆ __init__()

def PooPyLab.unit_procs.physchem.final_clarifier.__init__ (   self,
  active_vol = 9500,
  SWD = 3.5 
)

Constructor for final_clarifier.

   The "final_clarifier" is modeled as an ideal solids-liquid separation
   process that capture the solids from the inlet into the underflow as
   per the user given capture rate.

   Essentially, the "final_clarifier" is a "splitter" with different
   particulate concentrations among its three branches, while those
   concentrations will be identical for all the branches of an ideal
   "splitter".
Parameters
active_volactive clarifier volume excluding storage cone, m3;
SWDside water depth, m.
Return
None

Member Function Documentation

◆ set_as_SRT_controller()

def PooPyLab.unit_procs.physchem.final_clarifier.set_as_SRT_controller (   self,
  setting = False 
)

Set the current splitter as an Solids Retention Time controller.

   This function is bypassed for "final_clarifier".

Reimplemented from PooPyLab.unit_procs.streams.splitter.

◆ discharge()

def PooPyLab.unit_procs.physchem.final_clarifier.discharge (   self)

Pass the total flow and blended components to the downstreams.

   This function is re-implemented for "final_clarifier" because of the
   need to settle the solids (particulate) and concentrate them at the
   sidestream (underflow). The function first calls _branch_flow_helper()
   to set the flows for inlet, mainstream outlet, and sidestream outlet,
   then calls _settle_solids() to fractions the particulate components
   according to the branch flows and user set percent solids capture.
See
_settle_solids();
set_capture_rate();
_branch_flow_helper().

Reimplemented from PooPyLab.unit_procs.streams.splitter.

◆ set_capture_rate()

def PooPyLab.unit_procs.physchem.final_clarifier.set_capture_rate (   self,
  capture_rate = 0.95 
)

Set the percent solids capture for the final clarifier.

   This function is valid only when the "final_clarifier" is treated as a
   perfect solids-liquid separation without actual modeling of the
   settling process (for simplicity purpose at this stage).

   Future update of PooPyLab will include settling model to determine how
   much solids can be captured based on the configuration of the
   clarifier.
Parameters
capture_ratefraction of total inlet solids captured (< 1.0).
Return
None
See
_settle_solids().

◆ _valid_under_TSS()

def PooPyLab.unit_procs.physchem.final_clarifier._valid_under_TSS (   self,
  uf_TSS 
)
private

Check whether the underflow TSS is realistic.

Parameters
uf_TSScurrent underflow TSS, mg/L.
Return
bool

See

update_combined_input();

get_TSS().

◆ _settle_solids()

def PooPyLab.unit_procs.physchem.final_clarifier._settle_solids (   self,
  particulate_index = [7,8,9,10,11,12] 
)
private

Split the incoming solids into the main- and sidestream outlets.

Assumptions
1) All particulate model components settle in the identical fashion in the clarifier.

This function first calculate the updated inlet TSS concentration.

Then based on the capture rate, split the inlet TSS to the mainstream and sidestream outlets, as if the "final_clarifier" behaved exactly like a "splitter".

The fractions of each particulate model components in inlet TSS is then calculated. These fractions is then applied to the main- and sidestream outlet TSS to back calculate the corresponding particulate model components for that branch.

The soluble model components are identical for all three branches.

Parameters
particulate_indexlist of index for particulate model components.
Return
None
See
get_TSS();
_branch_flow_helper();
totalize_inflow();
update_combined_input();

The documentation for this class was generated from the following file: