Skip to content

Latest commit

 

History

History
227 lines (167 loc) · 12.8 KB

membrane_distillation_0D.rst

File metadata and controls

227 lines (167 loc) · 12.8 KB

Membrane Distillation (0D)

This Membrane Distillation (MD) unit model
  • is developed for direct contact configuration (other configurations are under development)
  • is developed for couterflow mode (parallel flow is under development)
  • is 0-dimensional
  • supports steady-state only
  • Assumes heat loss in equipment is negligible
  • Assumes permeate exits the membrane pores with zero salinity
  • Assumes no concentration polarization for the cold channel
  • Assumes complete vapor condensation on the cold channel

pair: watertap.unit_models.MD;MD

watertap.unit_models.MD

Degrees of Freedom

In addition to the hot channel and cold channel inlet state variables (i.e, temperature, pressure, and component flowrates), the MD model has at least 4 degrees of freedom that should be fixed for the unit to be fully specified. Typically, the following variables are fixed for the MD model:

  • Membrane permeability coefficient
  • Membrane thickness
  • Membrane thermal conductivity
  • Recovery or membrane area

Configuring the MD unit to calculate temperature polarization, concentration polarization, mass transfer coefficient, and pressure drop would result in five additional degrees of freedom. In this case, in addition to the previously fixed variables, we typically fix the following variables to fully specify the unit:

  • Hot channel spacer porosity
  • Hot channel height
  • Cold channel spacer porosity
  • Cold channel height
  • Membrane length or membrane width

Model Structure

This MD model consists of a separate MDchannel0Dblock for the hot channel and the cold channel of the module.

  • Each MDchannel0Dblock includes 6 stateblocks: 2 stateBlocks for the bulk properites at the inlet and outlet (properties_in and properties_out), which are used for mass, energy, and momentum balances; 2 StateBlocks for the conditions at the membrane interface, and 2 stateblocks for the vapor phase at the membrane interface. Property packages must be declared for each MD channel block for the liquid (bulk and interface) and vapor Phases.

Sets

Description Symbol Indices
Time t [0]
Inlet/outlet x ['in', 'out']
Phases p ['Liq', 'Vap']
Components j ['H2O', solute]*

*Solute depends on the imported property model.

Variables

Description Symbol Variable Name Index Units
Membrane permeability coefficient B0 permeability_coef [t] kg/m/Pa/s
Membrane thickness σ membrane_thickness None m
Membrane thermal conductivity km membrane_tc None W/K/m
Mass density of solvent ρsolvent dens_solvent [p] kg/m3
Mass flux across membrane J flux_mass [t, x] kg/s/m2
Conduction heat flux across membrane qcond flux_conduction_heat [t, x] W/m2
Evaporation heat flux from hot channel qevap flux_enth_hot [t, x] W/m2
Condensation heat flux to cold channel qconden flux_enth_cold [t, x] W/m2
Membrane area Am area None m2
Recovery rate R recovery_mass [t] dimensionless

The following variables are only built when specific configuration key-value pairs are selected.

if has_pressure_change is set to True:

Description Symbol Variable Name Index Units
Pressure drop ΔP deltaP [t] Pa

if temperature_polarization_type is set to TemperaturePolarizationType.fixed:

Description Symbol Variable Name Index Units
Hot channel Convective heat transfer coefficient hconv, h hot_ch.h_conv [t] W/K/m2
Cold channel Convective heat transfer coefficient hconv, c hot_ch.h_conv [t] W/K/m2

if temperature_polarization_type is set to TemperaturePolarizationType.calculated:

Description Symbol Variable Name Index Units
Hot channel Prandtl number Prh hot_ch.N_Pr [t] dimensionless
Cold channel Prandtl number Prc cold_ch.N_Pr [t] dimensionless
Hot channel Nusselt number Nuh hot_ch.N_Nu [t] dimensionless
Cold channel Nusselt number Nuc cold_ch.N_Nu [t] dimensionless

if concentration_polarization_type is set to ConcentrationPolarizationType.fixed:

Description Symbol Variable Name Index Units
Concentration polarization modulus in hot channel CPmod, h hot_ch.cp_modulus [t, j] dimensionless

if concentration_polarization_type is set to ConcentrationPolarizationType.calculated:

Description Symbol Variable Name Index Units
Mass transfer coefficient in hot channel kh hot_ch.K [t, x, j] m/s

if temperature_polarization_type is set to TemperaturePolarizationType.calculated: or mass_transfer_coefficient is set to MassTransferCoefficient.calculated or pressure_change_type is set to PressureChangeType.calculated:

Description Symbol Variable Name Index Units
Hot channel height hch, h hot_ch.channel_height None m
Hot channel Hydraulic diameter dh, h cold_ch.dh None m
Hot channel Spacer porosity ϵsp, h hot_ch.spacer_porosity None dimensionless
Hot channel Reynolds number Reh hot_ch.N_Re [t, x] dimensionless
Cold channel height hch, c cold_ch.channel_height None m
Cold channel Hydraulic diameter dh, c cold_ch.dh None m
Cold channel Spacer porosity ϵsp, c cold_ch.spacer_porosity None dimensionless
Cold channel Reynolds number Rec cold_ch.N_Re [t, x] dimensionless

if mass_transfer_coefficient is set to MassTransferCoefficient.calculated:

Description Symbol Variable Name Index Units
Schmidt number Sch hot_ch.N_Sc [t, x] dimensionless
Sherwood number Shh hot_ch.N_Sh [t, x] dimensionless
Schmidt number Scc cold_ch.N_Sc [t, x] dimensionless
Sherwood number Shc cold_ch.N_Sh [t, x] dimensionless

if temperature_polarization_type is set to TemperaturePolarizationType.calculated: or mass_transfer_coefficient is set to MassTransferCoefficient.calculated or pressure_change_type is NOT set to PressureChangeType.fixed_per_stage:

Description Symbol Variable Name Index Units
Membrane length L length None m
Membrane width W width None m

if pressure_change_type is set to PressureChangeType.fixed_per_unit_length:

Description Symbol Variable Name Index Units
Average pressure drop per unit length of hot channel $(\frac{ΔP}{Δx})_{avg,h}$ hot_ch.dP_dx [t] Pa/m
Average pressure drop per unit length of cold channel $(\frac{ΔP}{Δx})_{avg,c}$ cold_ch.dP_dx [t] Pa/m

if pressure_change_type is set to PressureChangeType.calculated:

Description Symbol Variable Name Index Units
Hot channel velocity vh hot_ch.velocity [t, x] m/s
Hot channel Friction factor fh hot_ch.friction_factor_darcy [t, x] dimensionless
Pressure drop per unit length of hot channel at inlet/outlet (ΔP/Δx)h hot_ch.dP_dx [t, x] Pa/m
Cold channel velocity vc cold_ch.velocity [t, x] m/s
Pressure drop per unit length of cold channel at inlet/outlet (ΔP/Δx)c cold_ch.dP_dx [t, x] Pa/m

Equations

Description Equation
Vapor flux across membrane $J(t, x) = \frac{B_0(t)}{\sigma} \times \left( P_{\text{sat, hot}}(t, x) - P_{\text{sat, cold}}(t, x) \right)$
Average flux across membrane $J_{avg, j} = \frac{1}{2}\sum_{x} J_{x, j}$
hot channel membrane-interface solute concentration $C_{\text{interface, j, h}}(t, x) = C_{\text{bulk, j, h}}(t, x) \times \exp\left( \frac{J(t, x)}{\rho_{\text{solvent}} \times k_h(t, x, j)} \right)$
Evaporation heat flux from hot channel qevap(t, x) = J(t, x) × h(t, x, Vap)
Condensation heat flux to cold channel qconden(t, x) = J(t, x) × c(t, x, Vap)
Average evaporation flux from hot channel $\overline{q}_{\text{evap}}(t) = \frac{1}{2} \sum_{x} q_{\text{evap}}(t, x)$
Average condensation flux to cold channel $\overline{q}_{\text{conden}}(t) = \frac{1}{2} \sum_{x} q_{\text{conden}}(t, x)$
Hot channel convective heat transfer hconv, h(t, x)(Tbulk, h(t,x)−Tinterface, h(t,x)) = qcond(t, x) + qevap(t, x) − J(t, x) ⋅ bulk, h(t, x, Liq)
Cold channel convective heat transfer hconv, c(t, x)(Tinterface, c(t,x)−Tbulk, c(t,x)) = qcond(t, x) + qconden(t, x) − J(t, x) ⋅ bulk, c(t, x, Liq)
Conduction heat flux across membrane $q_{\text{cond}}(t, x) = \frac{k_{\text{m}}}{\sigma} \left( T_{\text{interface}, h}(t, x) - T_{\text{interface}, c}(t, x) \right)$
Average conduction heat across membrane $q_{\text{cond, avg}}(t) = \frac{1}{N} \sum_{x} q_{\text{cond}}(t, x)$
Total permeate production Mp = A ⋅ Javg
Total conduction heat transfer qcond,total =  − A ⋅ qcond,avg
Hot channel total evapration heat $q_{\text{evap,total}} = - A \cdot \overline{\widehat{H}_h}$
Cold channel total condensation heat $q_{\text{conden,total}} = A \cdot \overline{\widehat{H}_c}$
Convective heat transfer coefficient $h_{\text{conv},(t, x)} = \frac{\kappa_{(t, x)} \cdot \text{Nu}_{(t, x)}}{d_h}$
Nusselt number Nu[t, x] =  = 0.162 * (Re[t, x] *  * 0.656) * (Pr[t, x] *  * 0.333)
Prandtl number $Pr(t, x) = \frac{\mu(t, x) \cdot C_p(t, x)}{\kappa}$
Effectiveness $\epsilon(t) = \frac{T_{\text{cold, first}}(t) - T_{\text{c, last}}(t)}{T_{\text{h, first}}(t) - T_{\text{c, last}}(t)}$
Thermal efficiency $\eta(t) = \frac{q_{\text{evap,total}}(t)}{q_{\text{evap,total}}(t) + q_{\text{cond,total}}(t)}$
Concentration polarization modulus CPmod = Cinterface/Cbulk
Mass transfer coefficient $k_h = \frac{D Sh}{d_h}$
Sherwood number Sh[t, x] =  = 0.2 * (Re[t, x] *  * 0.57) * (Pr[t, x] *  * 0.4)
Schmidt number $Sc = \frac{\mu}{\rho D}$
Reynolds number $Re = \frac{\rho v_f d_h}{\mu}$
Hydraulic diameter $d_h = \frac{4\epsilon_{sp}}{2/h_{ch} + (1-\epsilon_{sp})8/h_{ch}}$
Cross-sectional area Ac = hchWϵsp
Membrane area Am = LW
Pressure drop $ΔP = (\frac{ΔP}{Δx})_{avg}L$
Hot channel velocity vh = Qh/Ac
Friction factor $f = 0.42+\frac{189.3}{Re}$
Pressure drop per unit length $\frac{ΔP}{Δx} = \frac{1}{2d_h}f\rho v_h^{2}$
Recovery rate $R = \frac{M_{p}}{M_{h,in}}$

Class Documentation

  • watertap.unit_models.MD.membrane_distillation_0D
  • watertap.unit_models.MD.membrane_distillation_base
  • watertap.unit_models.MD.MD_channel_0D
  • watertap.unit_models.MD.MD_channel_base