def vel_term_floc(ConcAl, ConcClay, coag, material, DIM_FRACTAL, DiamTarget, Temp): """Calculate floc terminal velocity.""" WaterDensity = pc.density_water(Temp).magnitude return (((pc.gravity.magnitude * material.Diameter**2) / (18 * PHI_FLOC * pc.viscosity_kinematic(Temp).magnitude)) * ((dens_floc_init(ConcAl, ConcClay, coag, material).magnitude - WaterDensity) / WaterDensity) * (DiamTarget / material.Diameter)**(DIM_FRACTAL - 1))
def diam_floc_vel_term(ConcAl, ConcClay, coag, material, DIM_FRACTAL, VelTerm, Temp): """Calculate floc diamter as a function of terminal velocity.""" WaterDensity = pc.density_water(Temp).magnitude return (material.Diameter * ( ((18 * VelTerm * PHI_FLOC * pc.viscosity_kinematic(Temp).magnitude) / (pc.gravity.magnitude * material.Diameter**2)) * (WaterDensity / (dens_floc_init(ConcAl, ConcClay, coag, material).magnitude - WaterDensity)))**(1 / (DIM_FRACTAL - 1)))
def pc_viscous(EnergyDis, Temp, Time, DiamTube, ConcClay, ConcAl, ConcNatOrgMat, NatOrgMat, coag, material, FittingParam, RatioHeightDiameter): """""" return ((3 / 2) * np.log10( (2 / 3) * np.pi * FittingParam * Time * np.sqrt(EnergyDis / (pc.viscosity_kinematic(Temp).magnitude)) * alpha(DiamTube, ConcClay, ConcAl, ConcNatOrgMat, NatOrgMat, coag, material, RatioHeightDiameter) * (np.pi / 6)**(2 / 3) * (material.Diameter / sep_dist_clay(ConcClay, material).magnitude)**2 + 1))
def viscosity_kinematic_pacl(conc_pacl, temp): """Return the dynamic viscosity of water at a given temperature. If given units, the function will automatically convert to Kelvin. If not given units, the function will assume Kelvin. This function assumes that the temperature dependence can be explained based on the effect on water and that there is no confounding effect from the coagulant. """ nu = (1 + (2.383 * 10**-5) * conc_pacl**1.893) * pc.viscosity_kinematic(temp).magnitude return nu
def viscosity_kinematic_chem(conc_chem, temp, en_chem): """Return the dynamic viscosity of water at a given temperature. If given units, the function will automatically convert to Kelvin. If not given units, the function will assume Kelvin. """ if en_chem == 0: nu = viscosity_kinematic_alum(conc_chem, temp).magnitude if en_chem == 1: nu = viscosity_kinematic_pacl(conc_chem, temp).magnitude if en_chem not in [0, 1]: nu = pc.viscosity_kinematic(temp).magnitude return nu
def time_col_laminar(EnergyDis, Temp, ConcAl, ConcClay, coag, material, DiamTarget, DiamTube, DIM_FRACTAL, RatioHeightDiameter): """Calculate single collision time for laminar flow mediated collisions. Calculated as a function of floc size. """ return (( (1 / 6) * ((6 / np.pi)**(1 / 3)) * frac_vol_floc_initial(ConcAl, ConcClay, coag, material)**(-2 / 3) * (pc.viscosity_kinematic(Temp).magnitude / EnergyDis)**(1 / 2) * (DiamTarget / material.Diameter)**(2 * DIM_FRACTAL / 3 - 2) ) # End of the numerator / (gamma_coag(ConcClay, ConcAl, coag, material, DiamTube, RatioHeightDiameter)) # End of the denominator )
def reynolds_rapid_mix(PlantFlow, IDTube, Temp): return (4 * PlantFlow / (np.pi * IDTube * pc.viscosity_kinematic(Temp).magnitude))
def eta_kolmogorov(EnergyDis, Temp): return ((pc.viscosity_kinematic(Temp).magnitude**3) / EnergyDis)**(1 / 4)