Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simple OD Nanofiltration model #1536

Open
wants to merge 17 commits into
base: main
Choose a base branch
from
Open
1 change: 1 addition & 0 deletions docs/technical_reference/unit_models/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Unit Models
membrane_distillation_1D
mvc
nanofiltration_ZO
nanofiltration_0D
nanofiltration_dspmde_0D
osmotically_assisted_reverse_osmosis_0D
osmotically_assisted_reverse_osmosis_1D
Expand Down
70 changes: 70 additions & 0 deletions docs/technical_reference/unit_models/nanofiltration_0D.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
Nanofiltration (0D)
====================
This nanofiltration (NF) unit model is suitable for non-predictive case studies where the user wishes to specify, constant rejection fractions
whilst preserving electroneutrality in the permeate stream (optional). A single recovery fraction is assumed for all solvents, whilst
individual rejection fractions can be set for all solutes, with the exception of one ion specified for maintaining
electroneutrality. Solutes are assigned default rejection value by grouping them into either two categories, passing and excluded, with
default rejection values for each category. Solutes are categorised using either a user-provided list of species which freely pass the
membrane, or by assuming all neutral and monovalent species pass the membrane.

Retentate pressure is assumed to be related to feed pressure with an optional pressure drop whilst permeate pressure is assumed to be
a degree of freedom, and temperature equality is assumed. Temperature and pressure constraints can be removed with configuration arguments.

This model assumes supports a single liquid phase only and assumes steady-state.

.. index::
pair: watertap.unit_models.nanofiltration_0D;nanofiltration_0D

.. currentmodule:: watertap.unit_models.nanofiltration_0D

Degrees of Freedom
------------------
The ``Nanofiltration0D`` model has the following degrees of freedom

* inlet state
* permeate pressure
* solvent recovery fraction (``solvent_recovery``)
* solute rejection fractions (``rekection_comp``) for all solutes EXCEPT the one identified as the electroneutrality species.

The following additional degrees of freedom may exist depending on configuration options

* retentate pressure drop (``deltaP``)

Model Structure
---------------
The Nanofiltration0D model consists of three state blocks (``properties_in``, ``properties_retentate`` and ``properties_permeate``).

.. _NF0D_variables:

Variables
---------

.. csv-table::
:header: "Description", "Symbol", "Variable Name", "Index", "Units"

"Solvent recovery", ":math:`Q_{solvent}`", "solvent_recovery", None, ":math:`\text{dimensionless}`"
"Solute rejection", ":math:`R_j`", "rejection_comp", [j], ":math:`\text{dimensionless}`"
"Retentate pressure drop", ":math:`\deltaP`", "deltaP", [t], ":math:`\text{pressure}`"

.. _NF0D_equations:

Equations
---------

Here :math:`F` represents component flowrate and :math:`Z_j` is the charge on species j.

.. csv-table::
:header: "Description", "Equation"

"Component material balances", ":math:`F_{in, j} = F_{retentate, j} + F_{permeate, j}`"
"Solvent recovery",":math:`Q_{solvent} \times F_{in, j} = F_{permeate_j}`"
"Solute rejection",":math:`R_j = 1 - \frac{C_{permeate, j}}{C_{feed_j}}`"
"Permeate electroneutrality",":math:`0 = F_{permeate, j} \times Z_{j}`"
"Retentate pressure balance",":math:`P_{in} = P_{retentate} - \deltaP`"
"Retentate temperature equality", ":math:`T_{in} = T_{retentate}`"
"Permeate temperature equality", ":math:`T_{in} = T_{permeate}`"

Class Documentation
-------------------

* :mod:`watertap.unit_models.nanofiltration_0D`
Loading
Loading