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 "how-to" documentation for MCAS<mcas_how_to>
.
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
.
Description | Symbol | Variable | Index | Units |
---|---|---|---|---|
Temperature | T | temperature | None | K |
Pressure | P | pressure | None | 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] | 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] | kg s − 1 |
Description | Symbol | Parameter | Index | Units |
---|---|---|---|---|
Component molecular weight 1 | mN | mw_comp | [j] | kg mol − 1 |
Stokes radius of solute | rh | radius_stokes_comp | [j] | m |
Molar volume of solute | V | molar_volume_phase_comp | [p, j] | m3 mol − 1 |
Dynamic viscosity | μ | visc_d_phase | [p] | Pa s |
Bulk diffusivity of solute | D | diffus_phase_comp | [p, j] | m2 s − 1 |
Ion charge | z | charge_comp | [j] | dimensionless |
Dielectric constant of water | ϵ | dielectric_constant | None | dimensionless |
Debye Huckel constant b | b | debye_huckel_b | None | kg mol − 1 |
Hayduk Laudie correlation constant | χ1 | hl_diffus_cont | None | dimensionless |
Hayduk Laudie viscosity coefficient | χ2 | hl_visc_coeff | None | dimensionless |
Hayduk Laudie molar volume coefficient | χ3 | hl_molar_volume_coeff | None | 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
.
Description | Symbol | Variable | Index | Units |
---|---|---|---|---|
Component charge-equivalent molar flowrate | Ñ | flow_equiv_phase_comp | [p, j] | mol s − 1 |
Component charge-equivalent molar concentration | ñ | conc_equiv_phase_comp | [p, j] | mol m − 3 |
Component mass fraction | x | mass_frac_phase_comp | [p, j] | dimensionless |
Mass density of aqueous phase | ρ | dens_mass_phase | [p] | kg m − 3 |
Mass density of solvent water | ρw | dens_mass_solvent | [p] | kg m − 3 |
Phase volumetric flowrate | Q | flow_vol_phase | [p] | m3 s − 1 |
Total volumetric flowrate | Qtot | flow_vol | None | m3 s − 1 |
Component molar concentration | n | conc_mol_phase_comp | [p, j] | mol m − 3 |
Component mass concentration | m | conc_mass_phase_comp | [p, j] | kg m − 3 |
Component molar fraction | y | mole_frac_phase_comp | [p, j] | dimensionless |
Component molality | b | molality_phase_comp | [p, j] | mol kg − 1 |
Kinematic viscosity | ν | visc_k_phase | [p] | m2 s − 1 |
Phase osmotic pressure | Π | pressure_osm_phase | [p] | Pa |
Ion component electrical mobility | μe | elec_mobility_phase_comp | [p,j] | m2 V − 1 s − 1 |
Ion component transport number | t | trans_num_phase_comp | [p, j] | dimensionless |
Phase equivalent conductivity | Λ | equiv_conductivity_phase | [p] | m2 Ω − 1 mol − 1 |
Phase electrical conductivity | λ | elec_cond_phase | [p] | Ω − 1 m − 1 |
Component activity coefficient | γ | act_coeff_phase_comp | [j] | dimensionless |
Debye-Huckel constant A | A | deby_huckel_constant | none | dimensionless |
Ionic Strength | I | ionic_strength_molal | none | mol kg − 1 |
Mass diffusivity of solute | D | diffus_phase_comp | [p, j] | m2 s − 1 |
Description | Equation |
---|---|
Component charge-equivalent molar flowrate | Ñ = N|z| |
Component charge-equivalent molar concentration | ñ = n|z| |
Component mass fraction | |
Mass density of aqueous phase | ρ = 1000 kg m − 3 or ρ = ρw + f(∑j ∈ solutexj,T) 1 |
Mass density of solvent water | ρw = f(T) 1 |
Phase volumetric flowrate | |
Total volumetric flowrate | Qtot = ∑pQp |
Component molar fraction | |
Component molality | |
Kinematic viscosity | ν = μρ − 1 |
Phase osmotic pressure | Π = RT∑j ∈ solutenj |
Ion component electrical mobility 2 | |
Ion component transport number 3 | |
Phase equivalent conductivity 4 | |
Phase electrical conductivity | λ = Λ∑j ∈ cation|zj|nj |
Debye-Huckel constant | |
Ionic strength | I = 0.5∑j ∈ ionzj2bj |
Component mass diffusivity 5 |
D specified in data argument or |
Note
1 f( ⋅ ) 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
.
Description | Symbol | Value | Unit |
---|---|---|---|
Idea gas constant | R | 8.3145 | J mol − 1K − 1 |
Faraday constant | F | 96485.33 | C mol − 1 |
Avogadro constant | NA | 6.022e23 | dimensionless |
Boltzmann constant | k | 1.381e-23 | J K − 1 |
Vacuum permittivity | ϵ0 | 8.854e-12 | F m − 1 |
Elementary charge | e | 1.602e-19 | C |
A comprehensive scaling factor calculation method is coded in this property package. Among the state variables (N, T, 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.
watertap.property_models.multicomp_aq_sol_prop_pack
MCASParameterBlock
MCASParameterData
_MCASStateBlock
MCASStateBlockData
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