Skip to content

Latest commit

 

History

History
125 lines (95 loc) · 6.09 KB

File metadata and controls

125 lines (95 loc) · 6.09 KB

NaCl Property Package

This package implements property relationships for an NaCl solution as provided in Bartholomew and Mauter (2019).

This NaCl property package:
  • supports only H2O (solvent) and TDS (solute) components
  • supports only liquid phase
  • is formulated on a mass basis
  • is intended for isothermal applications at 25C
  • does not support dynamics

This package includes one temperature dependent property, specific enthalpy. The specific enthalpy is based on relationships developed for seawater instead of a NaCl solution, but the deviation is expected to be negligible for isothermal applications (the recommended use for this property package).

Sets

Description Symbol Indices
Components j ['H2O', 'TDS']
Phases p ['Liq']

State variables

Description Symbol Variable Index Units
Component mass flowrate M_j flow_mass_phase_comp [p, j] \text{kg/s}
Temperature T temperature None \text{K}
Pressure P pressure None \text{Pa}

Properties

Description Symbol Variable Index Units
Component mass fraction x_j mass_frac_phase_comp [p, j] \text{dimensionless}
Mass density \rho dens_mass_phase [p] \text{kg/}\text{m}^3
Phase volumetric flowrate Q_p flow_vol_phase [p] \text{m}^3\text{/s}
Volumetric flowrate Q flow_vol None \text{m}^3\text{/s}
Mass concentration C_j conc_mass_phase_comp [p, j] \text{kg/}\text{m}^3
Component mole flowrate N_j flow_mol_phase_comp [p, j] \text{mole/s}
Component mole fraction y_j mole_frac_phase_comp [p, j] \text{dimensionless}
Molality Cm_{TDS} molality_comp ['TDS'] \text{mole/kg}
Dynamic viscosity \mu visc_d_phase [p] \text{Pa}\cdotp\text{s}
Solute diffusivity D diffus None \text{m}^2\text{/s}
Osmotic coefficient \phi osm_coeff None \text{dimensionless}
Osmotic pressure \pi pressure_osm None \text{Pa}
Specific enthalpy \widehat{H} enth_mass_phase [p] \text{J/kg}
Enthalpy flow H enth_flow None \text{J/s}

Relationships

Description Equation
Component mass fraction X_j = \frac{M_j}{\sum_{j} M_j}
Mass density Equation 4 in Bartholomew & Mauter (2019)
Volumetric flowrate Q = \frac{\sum_{j} M_j}{\rho}
Mass concentration C_j = X_j \cdotp \rho
Component mole flowrate N_j = \frac{M_j}{MW_j}
Component mole fraction y_j = \frac{N_j}{\sum_{j} N_j}
Molality Cm_{TDS} = \frac{x_{TDS}}{(1-x_{TDS}) \cdotp MW_{TDS}}
Dynamic viscosity Equation 5 in Bartholomew & Mauter (2019)
Solute diffusivity Equation 6 in Bartholomew & Mauter (2019)
Osmotic coefficient Equation 3b in Bartholomew & Mauter (2019)
Osmotic pressure \pi = i \cdotp \phi \cdotp Cm_{TDS} \cdotp \rho_w \cdotp R \cdotp T [See note 1 below]
Specific enthalpy Equation 43 and 55 in Sharqawy (2010) [See note 2 below]
Enthalpy flow H = \sum_{j} M_j \cdotp \widehat{H}

Note 1: Osmotic pressure calculation uses the van 't Hoff factor (i\text{, assumed to be 2}), density of water (\rho_w\text{, assumed to be 1000 kg/}\text{m}^3), gas constant (R\text{, 8.314 J/mol}\cdotp\text{K}) in addition to previously defined variables.

Note 2: Specific enthalpy calculation is based on seawater relationships in Sharqawy (2010).

Scaling

This NaCl property package includes support for scaling, such as providing default or calculating scaling factors for almost all variables. The only variables that do not have scaling factors are the component mass flowrate and the user must set them or the user will receive a warning.

The user can specify the scaling factors for component mass flowrates with the following:

.. testsetup::

   from pyomo.environ import ConcreteModel
   from idaes.core import FlowsheetBlock

# relevant imports
import watertap.property_models.NaCl_prop_pack as props
from idaes.core.util.scaling import calculate_scaling_factors

# relevant assignments
m = ConcreteModel()
m.fs = FlowsheetBlock(dynamic=False)
m.fs.properties = props.NaClParameterBlock()

# set scaling for component mass flowrate
m.fs.properties.set_default_scaling('flow_mass_phase_comp', 1, index=('Liq', 'H2O'))
m.fs.properties.set_default_scaling('flow_mass_phase_comp', 1e2, index=('Liq', 'NaCl'))

# calculate scaling factors
calculate_scaling_factors(m.fs)

The default scaling factors are as follows:

  • 1e-2 for temperature
  • 1e-6 for pressure
  • 1e-3 for mass density
  • 1e3 for dynamic viscosity
  • 1e9 for solute diffusivity
  • 1 for the osmotic coefficient
  • 1e-5 for the specific enthalpy

The scaling factors for other variables can be calculated based on their relationships with the other variables with the user supplied or default scaling factors.

References

Timothy V. Bartholomew, Meagan S. Mauter (2019) Computational framework for modeling membrane processes without process and solution property simplifications, Journal of Membrane Science, 573, 682-693, DOI: 10.1016/j.memsci.2018.11.067
Mostafa H. Sharqawy, John H. Lienhard V & Syed M. Zubair (2010) Thermophysical properties of seawater: a review of existing correlations and data, Desalination and Water Treatment, 16:1-3, 354-380, DOI: 10.5004/dwt.2010.1079