# Equations and algorithm for Reverse Osmosis membranes comparison

Comparison method for Reverse Osmosis membrane datasheets or pilot plants.

Reverse Osmosis and Nanofiltration membrane datasheets specifications are good for evaluating the quality of the delivered products but almost useless to compare products performance. The main reason for that is that every membrane was tested under different conditions (pressure, salinity, solution composition, recovery, pH and temperature).

## Water mass transport coefficient (A-Value) and Salt mass transport coefficient (B-value)

RO and NF membranes can be defined by two parameters known in the industry as A and B-values.

**A-Value**represents the water permeability or the resulting flux from a specific driving pressure. high A-Value represent a lower operating pressure for the membrane. A-Values are measured in units of flux per unit pressure, for example, GFD/psi or LMH/bar, in the International System: m²/(m².s.Pa).

**B-Value**is the salt diffusion rate through the membrane. Every salt has it's own B-value according to it's chemical and physical properties as well as membrane charges and composition. A high B-Value represent a low salt rejection for the membrane. B-Values are measured in flux units: GFD or LMH, in the International System: m³/(m².s).

## Comparing membranes

To be able to compare different membranes we use the results form the test conditions (as stated in the datasheets) to determinate the A and B-values of that element and compare them. Those values are specific for the salt used (NaCl, MgSO4, etc...) and not necessarily correlate with other compounds rejection like Silica or Boron but that's the only way to compare datasheets properly.

## The algorithm

The algorithm below uses the equations provided by the membrane manufactures, it was calibrated for single element comparisons, for multiple elements or systems please check Equations and algorithm for Reverse Osmosis systems normalization.

The precision of the results get worst when leaving from the typical test conditions like recoveries up to 15% or salt concentrations up to 32000mg/L.

This algorithm was implemented in Plutocalc Water so if you just need to compare datasheets you can try this software that works on any computer and also in mobile phones.

## Source code and equations

This source code was written in JavaScript but it can easily be ported to Java, C or any other language. If you need to see it in action please check the Plutocalc Water application.

"; if(Rec>20) ErrorLog += "Invalid recovery for a single element, max 20%.

"; if(Rej>100) ErrorLog += "Invalid rejection, max 100%.

"; if(Tf>80) ErrorLog += "Invalid temperature, max 80C.

"; if(Area>283) ErrorLog += "Area is too high for a single spiral element test.

"; Qp = Qp_m3day/24/3600; //Unit conversion Qf = Qp/(Rec/100); //Feed flow Qr = Qf-Qp; //Concentrate flow Qfc = (Qr+Qf)/2; //Average feed/concentrate flow if(Tf>25) TCF = Math.exp(2640*(1/298-1/(273+Tf))); //Temperature correction factor from FILMTEC Manual if(Tf<=25) TCF = Math.exp(3020*(1/298-1/(273+Tf))); //Temperature correction factor from FILMTEC Manual Beta = Math.exp(0.7*Rec/100); //DOW FILMTEC Equation, valid only for very low recovery rates CFR = 0.5*(1+((1-Rec/100*(1-Rej/100))/(1-Rec/100))); //DOW FILMTEC Equation Cp = Cf*(1-Rej/100); //Permeate concentration (mg/L) for(var i=0;i