Skip to content

Latest commit

 

History

History
214 lines (159 loc) · 13 KB

File metadata and controls

214 lines (159 loc) · 13 KB

Multi-Component Aqueous Solution (MCAS) Property Package

This property package implements property relationships for an aqueous solution that may contain multiple neutral and/or ionic solutes.

The MCAS property package
  • sets H2O as the solvent;
  • supports multiple solute components including ions and neutral molecules;
  • supports only liquid phase;
  • uses temperature, pressure, and either molar flowrate (mol/s) or mass flowrate (kg/s) as state variables;
  • does not support dynamics.

For usage examples, please refer to the associated :ref:`"how-to" documentation for MCAS<mcas_how_to>`.

Sets

Description Symbol Indices
Components j component_list=['H2O', solute_list 1]
Phases p ['Liq']
solute_set j [all components in component_list except H2O]
cation_set j [cationic components in component_list]
anion_set j [anionic components in component_list]
neutral_set j [neutral components in component_list]
ion_set j [cationic and anionic components in component_list]

Note

1 solute_list must be provided by the user via the necessary configuration option, solute_list.

../../_static/unit_models/mcas_set_hierarchy.png

Figure 1. Hierarchy of the Pyomo sets constructed in the MCAS property package. Here, types are declared for the species in component list, or sometimes auto-assigned considering other input such as charge; e.g., the chloride anion would be contained in anion_set, ion_set, solute_set, and component_list.

State variables

Description Symbol Variable Index Units
Temperature T temperature None \text{K}
Pressure P pressure None \text{Pa}

The material_flow_basis configuration option can be used to select the desired state variable for flow basis.

If material_flow_basis is set to MaterialFlowBasis.molar (the default setting), component molar flowrates will be used:

Description Symbol Variable Index Units
Component molar flowrate N flow_mol_phase_comp [p, j] \text{mol s}^{-1}

If material_flow_basis is set to MaterialFlowBasis.mass, component mass flowrates will be used:

Description Symbol Variable Index Units
Component mass flowrate M flow_mass_phase_comp [p, j] \text{kg s}^{-1}

Parameters

Description Symbol Parameter Index Units
Component molecular weight 1 m_N mw_comp [j] \text{kg mol}^{-1}
Stokes radius of solute r_h radius_stokes_comp [j] \text{m}
Molar volume of solute V molar_volume_phase_comp [p, j] \text{m}^3 \text{ mol}^{-1}
Dynamic viscosity \mu visc_d_phase [p] \text{Pa s}
Bulk diffusivity of solute D diffus_phase_comp [p, j] \text{m}^2 \text{ s}^{-1}
Ion charge z charge_comp [j] \text{dimensionless}
Dielectric constant of water \epsilon dielectric_constant None \text{dimensionless}
Debye Huckel constant b b debye_huckel_b None \text{kg mol}^{-1}
Hayduk Laudie correlation constant \chi_{1} hl_diffus_cont None \text{dimensionless}
Hayduk Laudie viscosity coefficient \chi_{2} hl_visc_coeff None \text{dimensionless}
Hayduk Laudie molar volume coefficient \chi_{3} hl_molar_volume_coeff None \text{dimensionless}

Note

1 Component molecular weight data is now set as a requirement when instantiating the MCAS property model. Hence, the user must provide these data in the mw_data configuration option. Additionally, a warning will be displayed if charge data are not provided via the charge configuration option, in case the user intended to include ions in the solute_list but forgot to provide charge. However, this warning can be ignored if neutral molecules were the only solutes intended for inclusion in solute_list.

Properties

Description Symbol Variable Index Units
Component charge-equivalent molar flowrate \tilde{N} flow_equiv_phase_comp [p, j] \text{mol s}^{-1}
Component charge-equivalent molar concentration \tilde{n} conc_equiv_phase_comp [p, j] \text{mol m}^{-3}
Component mass fraction x mass_frac_phase_comp [p, j] \text{dimensionless}
Mass density of aqueous phase \rho dens_mass_phase [p] \text{kg m}^{-3}
Mass density of solvent water \rho_w dens_mass_solvent [p] \text{kg m}^{-3}
Phase volumetric flowrate Q flow_vol_phase [p] \text{m}^3\text{ } \text{s}^{-1}
Total volumetric flowrate Q_{tot} flow_vol None \text{m}^3\text{ } \text{s}^{-1}
Component molar concentration n conc_mol_phase_comp [p, j] \text{mol m}^{-3}
Component mass concentration m conc_mass_phase_comp [p, j] \text{kg m}^{-3}
Component molar fraction y mole_frac_phase_comp [p, j] \text{dimensionless}
Component molality b molality_phase_comp [p, j] \text{mol kg}^{-1}
Kinematic viscosity \nu visc_k_phase [p] \text{m}^2 \text{ s}^{-1}
Phase osmotic pressure \Pi pressure_osm_phase [p] \text{Pa}
Ion component electrical mobility \mu_e elec_mobility_phase_comp [p,j] \text{m}^2\text{ }\text{V}^{-1}\text{ }\text{s}^{-1}
Ion component transport number t trans_num_phase_comp [p, j] \text{dimensionless}
Phase equivalent conductivity \Lambda equiv_conductivity_phase [p] \text{m}^2 \text{ } \Omega^{-1} \text{ mol}^{-1}
Phase electrical conductivity \lambda elec_cond_phase [p] \Omega^{-1} \text{ m}^{-1}
Component activity coefficient \gamma act_coeff_phase_comp [j] \text{dimensionless}
Debye-Huckel constant A A deby_huckel_constant none \text{dimensionless}
Ionic Strength I ionic_strength_molal none \text{mol kg}^{-1}
Mass diffusivity of solute D diffus_phase_comp [p, j] \text{m}^2 \text{ s}^{-1}

Relationships

Description Equation
Component charge-equivalent molar flowrate \tilde{N}=N\left|z\right|
Component charge-equivalent molar concentration \tilde{n}=n\left|z\right|
Component mass fraction x_j=\frac{M_j}{\sum_j{M_j}}
Mass density of aqueous phase \rho=1000 \text{ kg m}^{-3} or \rho=\rho_w + \textbf{f} \left(\sum_{j\in solute}{x_j}, T\right) 1
Mass density of solvent water \rho_w=\textbf{f}\left(T\right) 1
Phase volumetric flowrate Q=\frac{\sum_j{N_j m_{Nj}}}{\rho}
Total volumetric flowrate Q_{tot}=\sum_p{Q_p}
Component molar fraction y_j=\frac{N_j}{\sum_j{N_j}}
Component molality b=\frac{N}{N_{H_2O} m_{N\text{H_2O}}}
Kinematic viscosity \nu=\mu\rho^{-1}
Phase osmotic pressure \Pi=RT\sum_{j\in solute}{n_j}
Ion component electrical mobility 2 \mu_e=\frac{D\left|z\right|F}{RT}
Ion component transport number 3 t_j=\frac{\left|z_j\right|\mu_{ej} n_j}{\sum_{j\in ion}{\left|z_j\right|\mu_{ej} n_j}}
Phase equivalent conductivity 4 \Lambda=\frac{\sum_{j\in ion}{F\left|z_j\right|\mu_{ej} n_j}}{\sum_{j\in cation}{\left|z_j\right|n_j}}
Phase electrical conductivity \lambda=\Lambda\sum_{j\in cation}{\left|z_j\right|n_j}
Debye-Huckel constant A=\frac{\left(2 \pi N_A\right)^{0.5}}{log(10)} \left(\frac{\textbf{e}^2}{4 \pi \epsilon \epsilon_0 kT}\right)^{\frac{3}{2}}
Ionic strength I=0.5\sum_{j\in ion}{z_j^2b_j}
Component mass diffusivity 5 D\text{ specified in data argument} or D \text{ }[\text{m}^2 \text{ s}^{-1}]=\frac{\chi_{1}}{(\mu \text{ }[\text{cP}])^{\chi_{2}}(V \text{ }[\text{cm}^3 \text{ mol}^{-1}])^{\chi_{3}}}

Note

1 \textbf{f}(\cdot) refers to empirical correlations of phase or solvent mass density to seawater salinity and temperature following the study of Sharqawy et al. (2010).

2 Electrical mobility can either be (1) specified when the user provides data via the elec_mobility_data configuration option or (2) calculated by setting the elec_mobility_calculation configuration option to ElectricalMobilityCalculation.EinsteinRelation.

3 Transport number can either be (1) specified when the user provides data via the trans_num_data configuration option or (2) calculated by setting the trans_num_calculation configuration option to TransportNumberCalculation.ElectricalMobility.

4 Phase equivalent conductivity can either be (1) specified when the user provides data via the equiv_conductivity_phase_data configuration option or (2) calculated by setting the equiv_conductivity_calculation configuration option to EquivalentConductivityCalculation.ElectricalMobility.

5 Diffusivity can either be (1) specified when the user provides data via the diffusivity_data configuration option or (2) calculated by the correlation defined in Hayduk, W., & Laudie, H. (1974). For the latter, the diffus_calculation configuration option must be set to DiffusivityCalculation.HaydukLaudie.

Physical/chemical constants

Description Symbol Value Unit
Idea gas constant R 8.3145 \text{J mol}^{-1} \text{K}^{-1}
Faraday constant F 96485.33 \text{C mol}^{-1}
Avogadro constant N_A 6.022e23 \text{dimensionless}
Boltzmann constant k 1.381e-23 \text{J K}^{-1}
Vacuum permittivity \epsilon_0 8.854e-12 \text{F m}^{-1}
Elementary charge \textbf{e} 1.602e-19 \text{C}

Scaling

A comprehensive scaling factor calculation method is coded in this property package. Among the state variables (N, T, \text{and } p), default scaling factors for T and p were set and do not need users' input, while, for N, usually require a user input via an interface. The coding interface to set defalut scaling factor for N and call the scaling calculation for other variables is the following.

m.fs.properties.set_default_scaling('flow_mol_phase_comp', 1e2, index=('Liq','{component name}'))
# m is the model name, and fs is the instanced flowsheet block of m.
calculate_scaling_factors(m)

Users also have the authority to set a scaling factor for non-state variables via the following codes:

import idaes.core.util.scaling as iscale #import the needed utility package
...
iscale.set_scaling_factor(m.fs.properties.{property_name}, 100)

Proper scaling of variables is, in many cases, crucial to solver's performance in finding an optimal solution of a problem. While designing scaling can have a mathematical sophistication, a general rule is to scale all variables as close to 1 as possible, e.g., in the range of 1e-2 to 1e2.

Classes

.. currentmodule:: watertap.property_models.multicomp_aq_sol_prop_pack

.. autoclass:: MCASParameterBlock
    :members:
    :noindex:

.. autoclass:: MCASParameterData
    :members:
    :noindex:

.. autoclass:: _MCASStateBlock
    :members:
    :noindex:

.. autoclass:: MCASStateBlockData
    :members:
    :noindex:

Reference

M.H. Sharqawy, J.H.L. V, S.M. Zubair, Thermophysical properties of seawater: a review of existing correlations and data, Desalination and Water Treatment. 16 (2010) 354–380. https://doi.org/10.5004/dwt.2010.1079. (2017 corrections provided at http://web.mit.edu/seawater )

Bard, A. J., Faulkner, L. R., & White, H. S. (2022). Electrochemical methods: fundamentals and applications. John Wiley & Sons.

Hayduk, W., & Laudie, H. (1974). Prediction of diffusion coefficients for nonelectrolytes in dilute aqueous solutions. AIChE Journal, 20(3), 611–615. https://doi.org/10.1002/aic.690200329