Floc Model

class aguaclara.research.floc_model.Material(name, diameter, density, molecWeight)[source]

A particulate material with a name, diameter, density, and molecular weight.

__init__(name, diameter, density, molecWeight)[source]

Initialize a Material object.

Parameters:
  • name (string) – Name of the material

  • diameter (float) – Diameter of the material in particulate form

  • density (float) – Density of the material (mass/volume)

  • molecWeight (float) – Molecular weight of the material (mass/mole)

class aguaclara.research.floc_model.Chemical(name, diameter, density, molecWeight, Precipitate, AluminumMPM=None)[source]

A chemical with a name, diameter, density, molecular weight, number of aluminum atoms per molecule, and a precipitate.

__init__(name, diameter, density, molecWeight, Precipitate, AluminumMPM=None)[source]

Initialize a Chemical object.

Parameters:
  • name (string) – Name of the material

  • diameter (length) – Diameter of the material in particulate form

  • density (mass/length**3) – Density of the material

  • molecWeight (mass/mole) – Molecular weight of the material

  • Precipitate (string) – Name of the precipitate

  • AluminumMPM (int) – aluminum atoms per molecule

define_Precip(diameter, density, molecweight, alumMPM)[source]

Define a precipitate for the chemical.

Parameters:
  • diameter (float) – Diameter of the precipitate in particulate form

  • density (float) – Density of the material (mass/volume)

  • molecWeight (float) – Molecular weight of the material (mass/mole)

  • alumMPM (int) – aluminum atoms per molecule

This file contains functions which can be used to model the behavior of flocs based on the chemical interactions of clay, coagulant, and humic acid.

aguaclara.research.floc_model.Clay = <aguaclara.research.floc_model.Material object>

A Material representing clay with a diameter of 7e-6 m and density of 2650 kg/m^3.

aguaclara.research.floc_model.PACl = <aguaclara.research.floc_model.Chemical object>

A Material representing polyaluminum chloride (PACl) with a diameter of 9e-8m, density of 1138 kg/m^2, and molecular weight of 1.039 kg/mol. It is its own precipitate.

aguaclara.research.floc_model.Alum = <aguaclara.research.floc_model.Chemical object>

A Material representing alum with a diameter of 7e-8 m, density of 2420 kg/m^3, and molecular weight of 0.59921 kg/mol. It’s precipitate is AlOH3, with the same diameter and density, and a molecular weight of 0.078 kg/mol.

aguaclara.research.floc_model.HumicAcid = <aguaclara.research.floc_model.Chemical object>

A Material representing humic acid with a diameter of 7.2e-8 m and density of 1780 kg/m^3. It is its own precipitate.

aguaclara.research.floc_model.DIM_FRACTAL = 2.3

Fractal dimension, based on data from published in Environmental Engineering Science, “Fractal Models for Floc Density, Sedimentation Velocity, and Floc Volume Fraction for High Peclet Number Reactors” by Monroe Weber-Shirk and Leonard Lion (2015).

aguaclara.research.floc_model.RATIO_HEIGHT_DIAM = 0.1

Ratio of clay platelet height to diameter.

aguaclara.research.floc_model.RATIO_KOLMOGOROV = 50

Ratio between inner viscous length scale and Kolmogorov length scale.

aguaclara.research.floc_model.PHI_FLOC = 1.875

Shape factor for drag on flocs used in terminal velocity equation.

aguaclara.research.floc_model.NUM_AVOGADRO = 6.0221414999999996e+23

The Avogadro constant.

aguaclara.research.floc_model.MOLEC_WEIGHT_ALUMINUM = <Quantity(0.027, 'kilogram / mole')>

Molecular weight of aluminum in kg/mole.

aguaclara.research.floc_model.dens_alum_nanocluster(coag)[source]

Return the density of the aluminum in the nanocluster.

This is useful for determining the volume of nanoclusters given a concentration of aluminum.

aguaclara.research.floc_model.dens_pacl_solution(ConcAluminum, temp)[source]

Return the density of the PACl solution.

From Stock Tank Mixing report Fall 2013: https://confluence.cornell.edu/download/attachments/137953883/20131213_Research_Report.pdf

aguaclara.research.floc_model.conc_precipitate(ConcAluminum, coag)[source]

Return coagulant precipitate concentration given aluminum dose.

This function assumes complete precipitation of coagulant into Al13.

Note that conc_precipitate returns a value that varies from the equivalent MathCAD function beginning at the third decimal place. The majority of functions below this point in the file ultimately call on conc_precipitate at some point, and will not return the same value as their equivalent function in MathCAD. This is known.

Parameters:
  • ConcAluminum (float) – Concentration of aluminum in solution

  • coag (floc_model.Material) – Type of coagulant in solution, e.g. floc_model.PACl

Returns:

Concentration of coagulant precipitates

Return type:

float

aguaclara.research.floc_model.conc_floc(ConcAluminum, concClay, coag)[source]

Return floc density given aluminum dose, turbidity, and coagulant

aguaclara.research.floc_model.moles_aluminum(ConcAluminum)[source]

Return the # of moles aluminum given aluminum concentration.

aguaclara.research.floc_model.sep_dist_aluminum(ConcAluminum)[source]

Return the separation distance between aluminum molecules.

aguaclara.research.floc_model.particle_number_concentration(ConcMat, material)[source]

Return the number of particles in suspension.

Parameters:
aguaclara.research.floc_model.sep_dist_clay(ConcClay, material)[source]

Return the separation distance between clay particles.

aguaclara.research.floc_model.num_nanoclusters(ConcAluminum, coag)[source]

Return the number of Aluminum nanoclusters.

aguaclara.research.floc_model.frac_vol_floc_initial(ConcAluminum, ConcClay, coag, material)[source]

Return the volume fraction of flocs initially present, accounting for both suspended particles and coagulant precipitates.

Parameters:
  • ConcAluminum (float) – Concentration of aluminum in solution

  • ConcClay (float) – Concentration of particle in suspension

  • coag (float) – Type of coagulant in solution

  • material (floc_model.Material) – Type of particles in suspension, e.g. floc_model.Clay

Returns:

Volume fraction of particles initially present

Return type:

float

aguaclara.research.floc_model.diam_fractal(DIM_FRACTAL, DiamInitial, NumCol)[source]

Return the diameter of a floc given NumCol doubling collisions.

aguaclara.research.floc_model.num_coll_reqd(DIM_FRACTAL, material, DiamTarget)[source]

Return the number of doubling collisions required.

Calculates the number of doubling collisions required to produce a floc of diameter DiamTarget.

aguaclara.research.floc_model.sep_dist_floc(ConcAluminum, ConcClay, coag, material, DIM_FRACTAL, DiamTarget)[source]

Return separation distance as a function of floc size.

aguaclara.research.floc_model.frac_vol_floc(ConcAluminum, ConcClay, coag, DIM_FRACTAL, material, DiamTarget)[source]

Return the floc volume fraction.

aguaclara.research.floc_model.dens_floc_init(ConcAluminum, ConcClay, coag, material)[source]

Return the density of the initial floc.

Initial floc is made primarily of the primary colloid and nanoglobs.

aguaclara.research.floc_model.ratio_clay_sphere(RatioHeightDiameter)[source]

Return the surface area to volume ratio for clay.

Normalized by surface area to volume ratio for a sphere.

aguaclara.research.floc_model.ratio_area_clay_total(ConcClay, material, DiamTube, RatioHeightDiameter)[source]

Return the surface area of clay normalized by total surface area.

Total surface area is a combination of clay and reactor wall surface areas. This function is used to estimate how much coagulant actually goes to the clay.

Parameters:
  • ConcClay (float) – Concentration of clay in suspension

  • material (floc_model.Material) – Type of clay in suspension, e.g. floc_model.Clay

  • DiamTube (float) – Diameter of flocculator tube (assumes tube flocculator for calculation of reactor surface area)

  • RatioHeightDiameter (float) – Dimensionless ratio describing ratio of clay height to clay diameter

Returns:

The ratio of clay surface area to total available surface area (accounting for reactor walls)

Return type:

float

aguaclara.research.floc_model.gamma_coag(ConcClay, ConcAluminum, coag, material, DiamTube, RatioHeightDiameter)[source]

Return the coverage of clay with nanoglobs.

This function accounts for loss to the tube flocculator walls and a poisson distribution on the clay given random hits by the nanoglobs. The poisson distribution results in the coverage only gradually approaching full coverage as coagulant dose increases.

Parameters:
  • ConcClay (float) – Concentration of clay in suspension

  • ConcAluminum (float) – Concentration of aluminum in solution

  • coag (floc_model.Material) – Type of coagulant in solution, e.g. floc_model.PACl

  • material (floc_model.Material) – Type of clay in suspension, e.g. floc_model.Clay

  • DiamTube (float) – Diameter of flocculator tube (assumes tube flocculator for calculation of reactor surface area)

  • RatioHeightDiameter (float) – Dimensionless ratio of clay height to clay diameter

Returns:

Fraction of the clay surface area that is coated with coagulant precipitates

Return type:

float

aguaclara.research.floc_model.gamma_humic_acid_to_coag(ConcAl, ConcNatOrgMat, NatOrgMat, coag)[source]

Return the fraction of the coagulant that is coated with humic acid.

Parameters:
  • ConcAl (float) – Concentration of alumninum in solution

  • ConcNatOrgMat (float) – Concentration of natural organic matter in solution

  • NatOrgMat (floc_model.Material) – type of natural organic matter, e.g. floc_model.HumicAcid

  • coag (floc_model.Material) – Type of coagulant in solution, e.g. floc_model.PACl

Returns:

fraction of the coagulant that is coated with humic acid

Return type:

float

aguaclara.research.floc_model.pacl_term(DiamTube, ConcClay, ConcAl, ConcNatOrgMat, NatOrgMat, coag, material, RatioHeightDiameter)[source]

Return the fraction of the surface area that is covered with coagulant that is not covered with humic acid.

Parameters:
  • DiamTube – Diameter of the dosing tube

  • ConcClay (float) – Concentration of clay in solution

  • ConcAl (float) – Concentration of alumninum in solution

  • ConcNatOrgMat (float) – Concentration of natural organic matter in solution

  • NatOrgMat (floc_model.Material) – type of natural organic matter, e.g. floc_model.HumicAcid

  • coag (floc_model.Material) – Type of coagulant in solution, e.g. floc_model.PACl

  • material (floc_model.Material) – Type of clay in suspension, e.g. floc_model.Clay

  • RatioHeightDiameter (float) – Dimensionless ratio of clay height to clay diameter

Returns:

fraction of the surface area that is covered with coagulant that is not covered with humic acid

Return type:

float

aguaclara.research.floc_model.dens_floc(ConcAl, ConcClay, DIM_FRACTAL, DiamTarget, coag, material, Temp)[source]

Calculate floc density as a function of size.

aguaclara.research.floc_model.vel_term_floc(ConcAl, ConcClay, coag, material, DIM_FRACTAL, DiamTarget, Temp)[source]

Calculate floc terminal velocity.

aguaclara.research.floc_model.diam_floc_vel_term(ConcAl, ConcClay, coag, material, DIM_FRACTAL, VelTerm, Temp)[source]

Calculate floc diamter as a function of terminal velocity.

aguaclara.research.floc_model.time_col_laminar(EnergyDis, Temp, ConcAl, ConcClay, coag, material, DiamTarget, DiamTube, DIM_FRACTAL, RatioHeightDiameter)[source]

Calculate single collision time for laminar flow mediated collisions.

Calculated as a function of floc size.

aguaclara.research.floc_model.time_col_turbulent(EnergyDis, ConcAl, ConcClay, coag, material, DiamTarget, DIM_FRACTAL)[source]

Calculate single collision time for turbulent flow mediated collisions.

Calculated as a function of floc size.

aguaclara.research.floc_model.diam_kolmogorov(EnergyDis, Temp, ConcAl, ConcClay, coag, material, DIM_FRACTAL)[source]

Return the size of the floc with separation distances equal to the Kolmogorov length and the inner viscous length scale.

aguaclara.research.floc_model.diam_floc_max(epsMax)[source]

Deprecated since version 0.1.13: diam_floc_max is deprecated and will be removed after Dec 1 2019. The underlying equation is under suspicion.

Return floc size as a function of energy dissipation rate.

Based on Ian Tse’s work with floc size as a function of energy dissipation rate. This is for the average energy dissipation rate in a tube flocculator. It isn’t clear how to convert this to the turbulent flow case. Maybe the flocs are mostly experiencing viscous shear. But that isn’t clear. Some authors have made the case that floc breakup is due to viscous effects. If that is the case, then the results from the tube flocculator should be applicable to the turbulent case. We will have to account for the temporal and spatial variability in the turbulent energy dissipation rate. The factor of 95 μm is based on the assumption that the ratio of the max to average energy dissipation rate for laminar flow is approximately 2.

aguaclara.research.floc_model.ener_dis_diam_floc(Diam)[source]

Deprecated since version 0.1.13: ener_dis_diam_floc is deprecated and will be removed after Dec 1 2019. The underlying equation is under suspicion.

Return max energy dissipation rate as a function of max floc diameter.

aguaclara.research.floc_model.dean_number(PlantFlow, IDTube, RadiusCoil, Temp)[source]

Return the Dean Number.

The Dean Number is a dimensionless parameter that is the unfortunate combination of Reynolds and tube curvature. It would have been better to keep the Reynolds number and define a simple dimensionless geometric parameter.

aguaclara.research.floc_model.g_coil(FlowPlant, IDTube, RadiusCoil, Temp)[source]

We need a reference for this.

Karen’s thesis likely has this equation and the reference.

aguaclara.research.floc_model.time_res_tube(IDTube, LengthTube, FlowPlant)[source]

Calculate residence time in the flocculator.

aguaclara.research.floc_model.g_time_res(FlowPlant, IDTube, RadiusCoil, LengthTube, Temp)[source]

G Residence Time calculated for a coiled tube flocculator.