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 of clay height to 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 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 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.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.