1 Introduction

The purpose of the present paper is to present in an accessible manner a model describing osmosis at various length scales for porous media that are partially permeable to solute particles, as well as to investigate numerically using the lattice Boltzmann approach the applicability of this model. The model describes the effect of forces acting between the material of a porous medium and electrically neutral solute particles on the transport of the solvent and the solute.

Osmosis is the phenomenon of spontaneous passage of water or other solvents through a membrane that is permeable to the solvent but is impermeable to solute particles. If such a semipermeable membrane separates pure solvent from a solution, the pure solvent will move through the membrane, making the solution at the opposite side of the membrane more dilute. The osmotic pressure across the membrane can be measured by measuring the external counter-pressure that needs to be applied to stop the flow of solvent.

The phenomenon of osmosis was first observed by the French experimental physicist Jean-Antoine Nollet in 1748 for membranes in nature, but was studied in detail by the German plant physiologist Wilhelm Pfeffer only in 1877. The term osmose or osmosis was introduced by the British chemist Thomas Graham in 1854.

In 1886, the Dutch chemist van’t Hoff showed that for dilute solutions, the osmotic pressure depends on concentration and temperature in a similar way as the pressure of an ideal gas. The classical formula by van’t Hoff for the osmotic pressure acting on the solvent at the edge of a membrane which is impermeable to solute particles is (van’t Hoff 1887)

$$\begin{aligned} \varPi = c k_B T, \end{aligned}$$
(1)

where c is the number density of solute particles, T is temperature, and \(k_B\) is the Boltzmann constant. Van’t Hoff’s work, including in particular this formula, was rewarded with the first Nobel Prize in Chemistry in 1901.

Porous membranes are often not completely impermeable to solute particles, but depending on the size of pores, only partially obstruct the passage of particles. The effect of osmotic pressure is in this case not concentrated only at the outer surfaces of the membrane, but is distributed within its volume. Therefore, several phenomena combine to determine the transport of solute and solvent through the membrane in this case. The question about the nature of osmosis in such intermediate regimes is interesting for many applications in biology (Kedem and Katchalsky 1962; Elmoazzen et al. 2009) and in such modern technologies as desalination (Cath et al. 2006; Zhao et al. 2012) and sustainable power generation (Logan and Elimelech 2012).

The methods and principles of nonequilibrium thermodynamics have been used to extend the formula (1) to the case when a porous membrane is partially permeable to neutral solute particles, most notably resulting in the Kedem–Katchalsky formulae

$$\begin{aligned} J_{u}= & {} L_{p}\varDelta p-L_{pD}\varDelta \varPi \nonumber \\ J_{D}= & {} -L_{Dp}\varDelta p+L_{D}\varDelta \varPi \end{aligned}$$
(2)

that connect the fluxes \(J_{u}\) and \(J_{D}\) of solvent and solute particles, respectively, through the slab of a porous material with the value of the drop \(\varDelta p\) in hydrodynamic pressure in the solvent and the jump in osmotic pressure \(\varDelta \varPi \), as defined by (1) (Kedem and Katchalsky 1958, 1962). The phenomenological coefficients \(L_{p}\), \(L_{pD}\), \(L_{Dp}\), and \(L_{D}\) are called coefficients of filtration, osmotic transport, ultrafiltration, and diffusion, respectively. The ratio

$$\begin{aligned} \sigma = L_{pD}/L_{p} \end{aligned}$$
(3)

of the osmotic transport coefficient to the filtration coefficient is called the reflection coefficient of the membrane and shows the relation between the influences of hydrodynamic and osmotic pressure on the macroscopic transport of solvent. For a perfect semipermeable membrane, which is completely impermeable to the solute, we have \(\sigma = 1\).

The description of osmotic effects distributed in the membrane in the present paper is based on first principles and follows the paper (Heintz and Piatnitski 2016) by one of the authors. The description starts from the microscopic pore level by applying the system of the Stokes equations that describe the slow flow of viscous fluid solvent, coupled with the Nernst–Planck equation (Probstein 2003; Hunter 2004), which describes the advection–diffusion and the drift of solute particles by potential forces with the potential V distributed along the surface of the porous material. The equations, which together with appropriate boundary and initial conditions describe the fluid velocity u and pressure p, and the solute number density c under the influence of the potential, are

$$\begin{aligned} \partial _t u - \eta \varDelta u + \nabla p + c \nabla V= & {} 0 \end{aligned}$$
(4a)
$$\begin{aligned} \partial _t c + \text {div} \left( c u - D \nabla c + \mu c \nabla V \right)= & {} 0 \end{aligned}$$
(4b)

together with the incompressibility condition \(\text {div}\ u = 0\). Here, \(\eta \) is the fluid viscosity, D is the diffusion constant, and \(\mu \) the mobility of solvent molecules. Note in particular the force term \(-\,c \nabla V\) in the Stokes equation, which arises from the friction between the solute particles and the fluid.

At the macroscopic level, a homogenized system of partial differential equations for limits of the pressure and velocity of the solvent and for the concentration of solute was derived rigorously by Heintz and Piatnitski (2016) using the two-scale limit approach (Allaire 1992), in the case when the porous solid microstructure is periodic with period \(\varepsilon \ll 1.\) The homogenization procedure is convenient to carry out for the concentration scaled by the Maxwellian distribution associated with the potential forces between the porous media and the solute particles. An effective Darcy’s type system of equations for the flow under osmotic pressure distributed within the porous medium and the formula (18) for the distribution of osmotic pressure inside the porous media in the limit of small \(\varepsilon \) gives a quantitative answer about the nature of the osmotic transport of neutral solutes at the microscopic level. The coefficients in the derived homogenized equations relate the values of the phenomenological coefficients in (2) with particular properties of the flow at the pore level.

Microscopic models of this type for flows with distributed osmotic pressure were considered in the one-dimensional case for flows in long channels by Anderson and Malone (1974) and Anderson et al. (1982) and were developed also by Wyman and Kostin (1973), Guell (1991), and Guell and Brenner (1996). They were applied to simple geometries by Zhang et al. (2006), Jensen et al. (2009), and Yant et al. (1986). However, studies of microscopic models for osmotic pressure in general porous geometries with electrically neutral solute particles have to the best of our knowledge not been previously performed.

Related mathematical and numerical problems for the Nernst–Planck–Poisson and the Nernst–Planck–Poisson–Stokes systems for nonstationary electrokinetic models were considered by Looker and Carnie (2006), Schmuck (2009), Schmuck (2011), and Allaire et al. (2010).

In this paper, the pore scale mathematical model and the homogenization results obtained by Heintz and Piatnitski (2016) for electrically neutral solute particles are described. In particular, a procedure to compute the reflection coefficient \(\sigma \) for a periodic porous material by solving cell problems in a periodic unit cell is presented. Furthermore, the implementation of the model using the lattice Boltzmann method is described, and some computational results validating the method by comparing to the results of Anderson and Malone (1974) are shown, together with an application to a more general periodic porous medium.

2 Mathematical Model

We consider the stationary transport of an electrically neutral solute through a domain \(\varOmega \) filled by a three-dimensional porous structure. In the general case, the domain \(\varOmega \) is a channel surrounded by solid lateral walls \(\varGamma _{0}\) and by flat inflow and outflow boundaries \(S_{1}\) and \(S_{2}\) in two planes orthogonal to one of the coordinate axes. A simpler geometry for \(\varOmega \) interesting for applications is a slab with inflow and outflow boundaries \(S_{1}\) and \(S_{2}\) and without any lateral boundary. The geometry is shown in Fig. 1.

Fig. 1
figure 1

The geometrical setup, showing the domain \(\varOmega \) with the different parts of its boundary, and the periodic unit cell Y

Throughout this paper, we suppose that the boundary of the porous structure is a periodic surface. The unit periodic cell is denoted by Y. Without loss of generality, we suppose that \(Y=\left[ 0,1\right] ^{N}\). We denote by \(Y_{F} \) an empty part of Y not filled by the solid material and assume that its periodic extension is connected. In what follows, we refer to \(Y_{F} \) as the fluid part of the porous medium. \(Y_{S}=Y\backslash Y_{F}\) denotes the solid part of the structure in Y. We also let \(Y^{\varepsilon } = \varepsilon Y\) denote periodicity cell scaled by the small parameter \(\varepsilon \).

We also let \(\varOmega _{\varepsilon }\) denote the fluid part of the domain \(\varOmega \) containing the porous structure,

$$\begin{aligned} \varOmega _{\varepsilon }=\varOmega \cap \left( \underset{i\in \mathbb {Z}^{n}}{\cup } \varepsilon \left( Y_{F}+i\right) \right) , \end{aligned}$$

and its boundary is denoted by \(\partial \varOmega _{\varepsilon }\). \(\varGamma _{\varepsilon }\) denotes the solid part of the boundary of the fluid domain, \(\partial \varOmega _{\varepsilon }\), including the boundary of the porous structure as well as the solid boundary \(\varGamma _{0}\) of \(\varOmega \). The inflow and outflow parts of \(\partial \varOmega _{\varepsilon }\) are denoted by \(S_{1}^{\varepsilon }\) and \(S_{2}^{\varepsilon }\).

The solute number density c satisfies the Nernst–Planck type advection–diffusion Eq. (4b), see also (Probstein 2003), with drift defined in terms of the potential \(V_{\varepsilon }\) acting close to the solid boundaries of the porous structure. We here consider the stationary case, i.e., with \(\partial c/\partial t = 0\). Let V be a periodic potential on the unit cell Y. We define the scaled potential by \(V_{\varepsilon }(x)=V\left( \frac{x}{\varepsilon }\right) \). We also apply zero normal flux boundary conditions for c on the solid boundary \(\varGamma _{\varepsilon }\) and fixed values for c on the inflow and outflow boundaries \(S_{1}^{\varepsilon }\) and \(S_{2}^{\varepsilon }\), defined as \(S_{i}^{\varepsilon }=S_{i}\cap \overline{\varOmega }_{\varepsilon }\), \(i=1,2 \).

The fluid velocity u and pressure p of the solvent are described by the stationary Stokes equations with the osmotic force \(-c\nabla V_{\varepsilon }\) arising from the friction between the solute particles and the fluid. The velocity u satisfies nonslip boundary conditions on the solid boundary \(\varGamma _{\varepsilon }\), and we impose boundary conditions for the pressure p on the inflow and outflow boundaries \(S_{1}^{\varepsilon }\) and \(S_{2}^{\varepsilon }\) as constant values \(\overline{P}_{1}\) and \(\overline{P}_{2}\), and for the tangential component of velocity as \(u_{\tau }=0\).

The complete boundary value problem for the system of these coupled stationary equations is thus

$$\begin{aligned} \eta \varDelta u-\nabla p-c\nabla V_{\varepsilon }= & {} 0,\quad x\in \varOmega _{\varepsilon }; \end{aligned}$$
(5a)
$$\begin{aligned} \mathrm {div}(u)= & {} 0,\quad x\in \varOmega _{\varepsilon }; \end{aligned}$$
(5b)
$$\begin{aligned} u= & {} 0,\quad x\in \varGamma _{\varepsilon }; \end{aligned}$$
(5c)
$$\begin{aligned} p=\overline{P}_{i},\quad u_{\tau }= & {} 0,\quad x\in S_{i}^{\varepsilon },\,i=1,2 \end{aligned}$$
(5d)

for the Stokes equations and

$$\begin{aligned} \varDelta c+\frac{\mu }{D }\mathrm {div}\left( c\nabla V_{\varepsilon }\right)= & {} \frac{1}{D }\mathrm {div}\left( c u \right) ,\quad x\in \varOmega _{\varepsilon }; \end{aligned}$$
(6a)
$$\begin{aligned} \left( \nabla c+\frac{\mu }{D }\left( c \nabla V_{\varepsilon }\right) -\frac{1}{D }c u \right) \cdot n= & {} 0,\,\quad x\in \varGamma _{\varepsilon }; \end{aligned}$$
(6b)
$$\begin{aligned} \,c=0,\;\quad x\in S_{1}^{\varepsilon },\quad c= & {} \theta _{2}\beta _{\varepsilon }(x),\;\quad x\in S_{2}^{\varepsilon },\, \end{aligned}$$
(6c)

for the Nernst–Planck type equation with diffusive flux \(-D \nabla c\), advection velocity u, and drift term flux \(\mu c \nabla V_{\varepsilon }\). Here, \(\theta _{2}\ge 0\) is a constant, and the function \(\beta _{\varepsilon }(x)\) is defined as

$$\begin{aligned} \beta _{\varepsilon }(x)=\exp \left( -\frac{\mu }{D}V_{\varepsilon }(x)\right) . \end{aligned}$$
(6d)

Typical potentials \(V_{\varepsilon }(x)\) in our problems are nonnegative and bounded inside \(\varOmega _{\varepsilon }\) and are increasing, possibly toward infinity, when approaching the solid part \(\varGamma _{\varepsilon }\) of the boundary of \(\varOmega _{\varepsilon }\). At the points on \(\varGamma _{\varepsilon }\) where the potential \(V_{\varepsilon }(x)\) tends to infinity, the flux boundary conditions are not imposed.

According to the Einstein–Smoluchowski relation (Einstein 1905; von Smoluchowski 1906) , we have

$$\begin{aligned} \frac{D }{\mu }=k_B T , \end{aligned}$$
(7)

where T is absolute temperature and \(k_B\) is the Boltzmann constant, and thus van’t Hoff’s formula (1) for osmotic pressure can in our notation be rewritten as

$$\begin{aligned} \varPi = c \frac{D }{\mu } . \end{aligned}$$
(8)

By using the formula:

$$\begin{aligned} \beta _{\varepsilon }\nabla \left( c\beta _{\varepsilon }^{-1}\right) =\nabla c+\frac{\mu }{D } c \nabla V_{\varepsilon } \end{aligned}$$
(9)

with \(\beta _{\varepsilon }^{-1}=1/\beta _{\varepsilon }\), and introducing the scaled concentration \(\theta = c \beta _{\varepsilon }^{-1}\), the advection diffusion equation with potential drift force can be reformulated as

$$\begin{aligned} \mathrm {div}\left[ \beta _{\varepsilon } \frac{1}{D } \theta u - \beta _{\varepsilon } \nabla \theta \right] =0 . \end{aligned}$$
(10)

This form has advantages both for numerical implementation and for theoretical analysis. In particular, it is convenient to study the convergence of \(\theta \) rather than the number density c.

In order to clarify the effects of osmosis in the Stokes equation, we observe that

$$\begin{aligned} -c \nabla V_{\varepsilon }=-\frac{D }{\mu } \beta _{\varepsilon }\nabla \left( c \beta _{\varepsilon }^{-1}\right) + \frac{D }{\mu } \nabla c \end{aligned}$$
(11)

and rewrite Eq. (5a) as

$$\begin{aligned} \eta \varDelta u - \nabla p + \frac{D }{\mu } \nabla c - \frac{D }{\mu } \beta _{\varepsilon } \nabla \theta =0,\;\,x\in \varOmega _{\varepsilon } \end{aligned}$$
(12)

where the expression \(\frac{D }{\mu } \nabla c = \nabla \varPi \) for the osmotic pressure (8) appears explicitly. The last term is proportional to the diffusive flux in (10).

Only the difference \(\delta \overline{P}=\overline{P}_{1}-\overline{P}_{2}\) between pressure values at the inflow and outflow boundaries \(S_{1}\) and \(S_{2}\) has physical meaning and is controlled.

3 Homogenized Model

In this section, the results by Heintz and Piatnitski (2016) about the homogenized macroscopic limit problem are repeated for completeness. They were derived rigorously by Heintz and Piatnitski (2016) by passing to the two-scale homogenized limit (Allaire 1992; Nguetseng 1989) in the weak integral form of the microscopic system of Eqs. (5)–(6). In practical terms, it means that when the period \(\varepsilon \) tends to zero, the functions \(\theta \), u, p describing the complete picture of the transport tend to functions of two variables x and \(y=\frac{x}{\varepsilon } \), of which the first describes smooth dependence on the macroscopic scale and the second describes periodic oscillations at the microscopic scale.

We use in this applied paper the term convergence not specifying its rigorous meaning that might differ in particular cases and refer to the paper (Heintz and Piatnitski 2016) for mathematically strict formulations and proofs of these results. Considering these limits, we extend the unknowns \(\theta \), u, p keeping the same notations, into the solid part of the porous media: Velocity and scaled concentration are extended by zero, and pressure by its average value over the fluid part of the periodicity cell.

We consider here the case of small Péclet numbers on the microscale, more precisely \(Pe \rightarrow 0\) when \(\varepsilon \rightarrow 0\), where \(Pe = u L /D\) for a characteristic length L, where \(L \propto \epsilon \) on the microscale. In this case, the equation for the limit \(\varTheta \) of the scaled concentration \(\theta = c\beta _{\varepsilon }^{-1}\) is decoupled from the limit equation for the flow. Still, \(\theta \) plays a role in the Stokes part of the system, and its limit \(\varTheta \) enters a homogenized Darcy’s type equation for the flow.

In the case when the Péclet number is large, which is not considered here, the limit macroscopic equations become nonlinear and nonlocal and rigorous limit results are more complicated than here. The study of this case is ongoing.

For the case of small Péclet numbers, the main result for the scaled concentration \(\theta \) is as follows (see Heintz and Piatnitski 2016 for proof and more details).

Theorem 1

The extension of the scaled concentration \(\theta \) satisfying the system (5)–(6) converges when the scale \(\varepsilon \) of pores tends to zero, to the solution \(\varTheta (x)\) of the macroscopic boundary value problem:

$$\begin{aligned} \mathrm {div}\left( A_{\mathrm {eff}}\nabla \varTheta \right) =0 \end{aligned}$$
(13)

with boundary conditions for \(\varTheta (x)\) the same as in the original problem:

$$\begin{aligned} \left. \varTheta \right| _{S_{1}}= & {} 0,\qquad \left. \varTheta \right| _{S_{2}}=\theta _{2}\nonumber \\ \left. A_{\mathrm {eff}}\nabla \varTheta \cdot n\right| _{\varGamma _{0}}= & {} 0. \end{aligned}$$
(14)

The positive definite matrix \(A_{\mathrm {eff}}\) is defined by the relation

$$\begin{aligned} A_{\mathrm {eff}}=\int _{Y_F}\left( I+\left[ \nabla \chi (y)\right] \right) \beta (y)\,(y)\mathrm{d}y, \end{aligned}$$
(15)

where \(\chi (y)\) is a vector of periodic solutions to the Nernst–Planck type equation on the unit representative cell Y:

$$\begin{aligned} \mathrm {div}\left( \beta (y)\left( \nabla \chi (y) +I\right) \right)= & {} 0\nonumber \\ \frac{\partial }{\partial y_{n}}\left( \chi \right)= & {} -n(y),\quad y\in \partial Y_{S}. \end{aligned}$$
(16)

For the fluid velocity u and pressure p, the following convergence result holds (again, see Heintz and Piatnitski 2016 for proof).

Lemma 1

There are functions \(u_{0}(x,y)\) and \(p_{0}(x,y)\), with x in \(\varOmega \) and periodic with respect to y in the unit cell Y, such that \(\eta \varepsilon ^{-2}u\) and p converge in the two-scale sense to these functions.

$$\begin{aligned}&\eta \varepsilon ^{-2}u\longrightarrow u_{0}\left( x,\frac{x}{\varepsilon }\right) \nonumber \\&\quad p\longrightarrow p_{0}\left( x,\frac{x}{\varepsilon }\right) , \end{aligned}$$
(17)

where the argument y is substituted by \(\left( \frac{x}{\varepsilon }\right) .\)

The limit \(p_{0}(x,\frac{x}{\varepsilon })\) of the pressure has a specific analytic structure including a term describing the osmotic pressure distributed within the porous medium and periodic at the microscopic pore scale:

$$\begin{aligned} p_{0}\left( x,\frac{x}{\varepsilon }\right) =P(x)-\frac{D }{\mu }\varTheta (x)\beta \left( \frac{x}{\varepsilon }\right) . \end{aligned}$$
(18)

The limit \(u_{0}\left( x,\frac{x}{\varepsilon }\right) \) has the following factorized structure:

$$\begin{aligned} u_{0}\left( x,\frac{x}{\varepsilon }\right) =\sum \limits _{i=1}^{3}w_{i}\left( \frac{x}{\varepsilon }\right) \left( -\frac{\partial }{\partial x_{i}}P(x)\right) +\sum \limits _{i=1}^{3}W_{i}\left( \frac{x}{\varepsilon }\right) \left( \frac{D }{\mu }\frac{\partial }{\partial x_{i}}\varTheta (x)\right) , \end{aligned}$$
(19)

where functions \(w_{i}(y)\) and \(W_{i}(y)\) are periodic solutions to boundary value problems (22), (23) for the Stokes equations on the unit periodicity cell Y that are specified below.

We note that a formula similar to (18) was derived by Anderson and Malone (1974) in the one-dimensional case for an infinitely long cylindric channel.

In the following theorem, a Darcy’s type law with distributed osmotic forces is formulated for two-scale limits of the unknown variables.

As was proved by Heintz and Piatnitski (2016), one can in our situation (with small Pe) separate the macrosopic x-variable from the microscopic y-variable in the two-scale homogenized system (see Heintz and Piatnitski (2016)) for the two-scale limits \(u_{0}(x,y)\) and \(p_{0}(x,y)\) and reduce it to a microscopic periodic cell problem with respect to the y-variable on the periodic cell Y and to a homogenized macroscopic problem with respect to the x-variable only in the domain \(\varOmega \).

Theorem 2

The extension \(\left( u_{\varepsilon },p_{\varepsilon }\right) \) of the velocity and pressure satisfying the system (5)–(6) converges to the unique solution \(\left( u,p\right) \) of the homogenized problem

$$\begin{aligned} \left\{ \begin{array}{l} U(x)=-B_{\mathrm {P}} \nabla P + B_{\varPi } \frac{D }{\mu }\nabla \varTheta \text{ in } \varOmega \\ \mathrm {div}\ U =0 \text{ in } \varOmega \\ U\cdot n=0 \text{ on } \varGamma _{0}; \\ P=\,\overline{P}_{i}\, \text{ on } S_{i},\quad \overline{P}_{1}-\overline{P}_{2}=\delta \overline{P} \end{array}\right. \end{aligned}$$
(20)

where \(U(x)=\int _{Y_{F}}u_{0}(x,y)\mathrm{d}y\), the values \(\overline{P}_{1}\) and \(\overline{P}_{2}\) are uniquely defined by the normalization \(\int _{\varOmega } P dx=0\) and the pressure drop \(\delta \overline{P}\). \(B_{\mathrm {P}}\) and \(B_{\varPi }\) are constant symmetric matrices with entries defined by

$$\begin{aligned} B_{\mathrm {P}}e_{i}= & {} \int _{Y}w_{i}(y)\mathrm{d}y \nonumber \\ B_{\varPi }e_{i}= & {} \int _{Y}W_{i}(y)\mathrm{d}y, \end{aligned}$$
(21)

where for \(1\le i\le N\), \(w_{i}(y)\) and \(W_{i}(y)\) are unique periodic solutions to the cell Stokes problems

$$\begin{aligned} \nabla q_{i}-\varDelta w_{i}= & {} e_{i}, \quad \mathrm {div} (w_{i})=0\text{ in } Y_{F} \nonumber \\ w_{i}= & {} 0 \text{ in } Y_{S} \end{aligned}$$
(22)

and

$$\begin{aligned} \nabla Q_{i}-\varDelta W_{i}= & {} \left[ I-\nabla \chi (y)\right] \beta (y)e_{i}\text{, } \quad \mathrm {div}(W_{i})=0 \text{ in } Y_{F} \nonumber \\ W_{i}= & {} 0 \text{ in } Y_{S}, \end{aligned}$$
(23)

respectively, where \(e_{i}\) is the unit vector along the i-th coordinate axis.

Here, we now combine the above results, and the closed macroscopic system of equations for P(x) and \(\varTheta (x)\) becomes

$$\begin{aligned} \mathrm {div}\left( A_{\mathrm {eff}}\nabla \varTheta \right)= & {} 0 \end{aligned}$$
(24a)
$$\begin{aligned} \mathrm {div}\left( B_{P} \nabla P \right) - \mathrm {div}\left( B_{\varPi } \frac{D }{\mu }\nabla \varTheta \right)= & {} 0 \end{aligned}$$
(24b)

with boundary conditions

$$\begin{aligned} \left. \varTheta \right| _{S_{1}}= & {} 0,\qquad \left. \varTheta \right| _{S_{2}}=\theta _{2} \end{aligned}$$
(25a)
$$\begin{aligned} \left. A_{\mathrm {eff}}\nabla \varTheta \cdot n\right| _{\varGamma _{0}}= & {} 0. \end{aligned}$$
(25b)
$$\begin{aligned} P= & {} \,\overline{P}_{i}\, \text{ on } S_{i} \text{, } \quad \overline{P}_{1}- \overline{P}_{2}=\delta \overline{P} \end{aligned}$$
(25c)
$$\begin{aligned} \left( B_{P} \nabla P - B_{\varPi } \frac{D }{\mu }\nabla \varTheta \right) \cdot n= & {} 0 \text{ on } \varGamma _{0} \text{; } \quad \int _{\varOmega }Pdx=0, \end{aligned}$$
(25d)

where the values \(P_{1}\) and \(P_{2}\) are uniquely defined by the normalization \(\int _{\varOmega }P dx=0\) and the pressure drop \(\delta \overline{P}\). The average velocity U(x) is expressed explicitly in terms of P and \(\varTheta \) as in (20), the coefficient matrix \(A_{\mathrm {eff}}\) is computed from Eqs. (15)–(16), and \(B_P\) and \(B_{\varPi }\) are computed from Eqs. (21)–(23).

We note that the limit macroscopic system (24) consists of a decoupled effective diffusion equation and a Darcy type equation with an additional flux term \(B_{\varPi } \frac{D }{\mu }\nabla \varTheta (x) \) representing the effect of the distributed osmotic pressure.

The problem (5)–(6) describes the transport of solvent and solute particles inside the porous structure with boundary conditions for the scaled concentration on the inflow and outflow parts of the boundary, representing concentration under the influence of the potential forces from the material inside the structure. It implies that the relation \(\frac{\left[ B_{\varPi }\right] _{11}}{\left[ B_{P}\right] _{11}}\) measures the effect of diffusive transport under potential forces acting against the bulk osmotic pressure drop. The following approximate expression for the reflection coefficient for a periodic porous medium follows from this observation:

$$\begin{aligned} \sigma =1- \frac{\left[ B_{\varPi }\right] _{11}}{\left[ B_{P}\right] _{11}} . \end{aligned}$$
(26)

A more precise expression for the reflection coefficient, including spatially varying coefficients \(B_P\) and \(B_{\varPi }\) for heterogeneous porous media, should also take into account boundary layers around the interface between the free solute and the porous medium and needs additional mathematical analysis that is a subject of ongoing research.

4 Numerical Simulations

4.1 Lattice Boltzmann Method

The lattice Boltzmann method (Guo and Shu 2013) was used to solve both the full model (5)–(6) and the cell problems (22)–(23) and (16) in the homogenized model. All simulations were performed in three space dimensions.

The lattice Boltzmann equation for the distribution function f is

$$\begin{aligned} f_i(x+c_i \varDelta t, t+\varDelta t) - f_i(x,t) = \left[ A(f(x,t)-f^{\text {(eq)}}(x,t))\right] _i, \qquad i=0,\ldots ,q, \end{aligned}$$
(27)

where q is the number of discrete velocities in the model, \(c_i\) are the discrete velocity vectors, A is a collision operator, and \(f^{\text {(eq)}}\) is the equilibrium distribution. To solve the Stokes equations, the standard Navier–Stokes equilibrium

$$\begin{aligned} f_i^{\text {(eq)}}(\rho ,u) = w_i \rho \left( 1 + c_s^{-2} c_i \cdot u + \frac{1}{2 c_s^4} (c_i \cdot u)^2 - \frac{1}{c_s^2} |u|^2 \right) \end{aligned}$$
(28)

was used (although at the low velocities used, the nonlinear terms had negligible effect), together with the D3Q19 velocity model with \(q=19\), \(c_s^2 = 1/3\) and the discrete velocities

$$\begin{aligned} c_i = {\left\{ \begin{array}{ll} (0,0,0), &{} i=0 \\ (\pm \,1,0,0), (0,\pm \,1,0), (0,0,\pm \,1), &{} i=1,\ldots ,6 \\ (\pm \,1,\pm \,1,0), (\pm \,1,0, \pm \,1), (0,\pm \,1,\pm \,1), &{} i=7,\ldots ,18 \\ \end{array}\right. } \end{aligned}$$
(29)

The equilibrium weight \(w_i\) are given by

$$\begin{aligned} w_i = {\left\{ \begin{array}{ll} 1/3 &{} i=0 \\ 1/18 &{} i=1,\ldots ,6 \\ 1/36 &{} i=7,\ldots ,18 \\ \end{array}\right. } \end{aligned}$$
(30)

The macroscopic fluid density and velocity are given by moments of the distribution function f as

$$\begin{aligned} \rho (x,t) = \sum _{i=0}^{q-1} f_i(x,t), \qquad u(x,t) = \frac{1}{\rho (x,t)} \sum _{i=0}^{q-1} c_i f_i(x,t). \end{aligned}$$
(31)

The forcing terms were implemented using the scheme developed by Guo et al (Guo et al. 2002). Note that in (5a), the force term is \(F = -\,c \nabla V = k_B T \theta \nabla \beta \) and can thus be described in terms of \(\beta \) instead of V.

The two-relaxation-time collision operator (Ginzburg et al. 2008) was used, with the parameter \(\varLambda =3/16\), which eliminates the viscosity dependence of the computed permeability. The relaxation parameter \(\lambda _e\) was given different values but in most cases set to \(-0.5\).

In order to solve the advection–diffusion Eq. (6), the equilibrium is instead

$$\begin{aligned} {\left\{ \begin{array}{ll} f_i^{\text {(eq)}}(\theta ,U) = w_i \theta (1 + c_s^{-2} c_i \cdot U), &{} i=1,\ldots ,q \\ f_0^{\text {(eq)}}(\theta ,U) = c - (1 - w_0) \theta = (\beta - 1 - w_0) \theta , &{} \end{array}\right. } \end{aligned}$$
(32)

where \(\theta = c/\beta \) and \(U = \beta u\) is the given advection velocity. This choice of equilibrium distribution ensures that the conserved zeroth moment

$$\begin{aligned} \sum _{i=0}^{q-1} f_i(x,t) = c \end{aligned}$$
(33)

while the flux computed from the first moment of f is related to \(\nabla \theta \), see also (Ginzburg 2005). The time-dependent equation solved using the lattice Boltzmann method is therefore

$$\begin{aligned} \frac{\partial c}{\partial t} - \text {div} \left( \beta \theta u - \beta D \nabla \theta \right) = 0, \end{aligned}$$
(34)

which is the correct time-dependent version of (10). Note that when only the steady state solution is sought, another option would be to use the standard equilibrium \(f_0^{\text {(eq)}}(\theta ) = w_0 \theta \), which instead results in the time derivative \(\frac{\partial \theta }{\partial t}\) in (34). This does not affect the steady state, although it may have effect on the convergence.

When solving the cell problem (16), an external flux \(\beta (x) e_i\) in the i:th direction was added by setting \(U=\beta e_i\) in (32).

The Neumann boundary conditions were implemented using the ghost cell approach described in Gebäck and Heintz (2014), with \(\beta (x)\) extended continuously to the outside of the domain.

The two-relaxation-time collision operator was used also for the advection–diffusion equation, but here the parameter value \(\varLambda = 1/4\) was used, corresponding to the “optimal diffusion” setting in Ginzburg (2005). A space-dependent diffusion constant \(\beta (x) D\) was obtained by assigning different values of the parameter \(\lambda _o\) locally, with \(\beta (x) D = -c_s^2 (1/\lambda _o + 1/2)\).

In all the simulations, a potential of the form

$$\begin{aligned} V(x) = \frac{A}{2} \left( 1 - \tanh \left( \frac{d(x) - a}{\delta } \right) \right) , \end{aligned}$$
(35)

was used, where d(x) is the distance function, describing for each pore location the nearest distance to the solid surface. The shape of the potential for varying \(\delta \) is shown in Fig. 2. This form of the potential was chosen since it is fast decaying (if \(\delta \) is small), while remaining finite. V(x) obtains values between 0 and A. The function \(\beta (x) = \exp (-V(x))\) was then computed (where kT is included in the constant A) and used in the simulations. For the pore scale equations, \(\nabla \beta \) was computed using central finite differences and used in the force term.

Fig. 2
figure 2

The potential V(x) in (35) used in the simulations, here with \(A=1\), \(a=3\) and different values for \(\delta \)

4.2 Results

Reflection coefficients for a straight cylinder In order to validate our model and the simulations, reflection coefficients were computed according to (26) for a straight circular cylinder for comparison with the theoretical results by Anderson and Malone (1974). To achieve a hard size-exclusion potential, a value of \(\delta = 0.001\) was used in (35), and the shift a was varied. The strength A was set to 4, a rather low value chosen since numerical instabilities may occur when \(\beta \) is too close to zero. For comparison, results with a soft, slowly decaying potential with \(\delta =3\) are also shown. The flow and diffusion were computed in the x-direction in a domain of \(100\times 50\times 50\) voxels containing a cylinder of radius \(R=22\).

The results are shown in Fig. 3 and show a very good agreement for the hard potential with the results from Anderson and Malone (1974). Some small differences can be seen for large a, when the cylinder is almost impermeable to the solute. This is due to the finite potential used, with \(A=4\), which results in a nonzero permeation even when the potential extends over the entire cylinder.

For the soft potential, \(\sigma \) does not approach zero for small a since the potential then has a tail that extends into the domain over a distance of approximately \(\delta \) and causes some hindrance to the flow.

Fig. 3
figure 3

The reflection coefficient \(\sigma \) plotted as a function of the exclusion distance a relative to the cylinder radius R. The results of solving the homogenized equations in a straight cylinder using the lattice Boltzman method with a hard size-exclusion potential (\(*\)) are compared to the theoretical results for a long straight cylinder from Anderson and Malone (1974) (solid line). For comparison, results computed with a soft potential (\(\delta = 3\)) are also shown (\(\triangledown \))

Full osmotic problem through a cylinder In order to investigate the possibility to solve the full osmotic problem (5)–(6), and to investigate the resulting velocity profiles, a simulation was set up as shown in Fig. 4a. A straight cylinder connects two domains, where constant solute number densities were set as boundary values on the left and right boundaries, with a higher value on the left. For the Stokes equations, outflow boundary conditions were set on the right boundary, i.e., \(u_y = u_z = 0\) and \(\partial u_x / \partial x = 0\), while a fixed pressure \(p=0\) and zero tangential velocity \(u_y = u_z = 0\) were set on the left boundary. On the other boundaries of the simulation box, periodic boundary conditions were used. In Fig. 4b, the function \(\beta (x)\) is shown.

The resulting velocity in the x-direction is shown in Fig. 4c, d. The difference in osmotic pressure has created a flow of solvent against the concentration gradient, as expected. A radial velocity component is present within the channel because of the osmotic effects, and the velocity profile in Fig. 4d shows a plug-flow profile instead of a parabolic profile, as predicted by Anderson and Malone (1974).

Fig. 4
figure 4

Results for the full osmotic problem (5)–(6). The geometry a is shown together with the values of \(\beta (x)\) (b) and streamlines for the steady state velocity field u (c). In d, the velocity profile across the channel is shown, showing a plug-flow profile

Reflection coefficients for a periodic porous medium To show the potential of the present homogenized model and the lattice Boltzmann implementation, simulations were also performed solving the cell problems for a more general porous medium. A geometry was created using diffusion-limited cluster aggregation (DLCA) of spherical particles (Lach-hab et al. 1996), which were allowed to aggregate and form a solid structure. This may, for example, model a material made of aggregated silica particles, with pores on the nanometer scale and up. The particular geometry used here was on a lattice of \(200^3\) voxels and had a porosity of 70% and an average pore diameter of 7.2 voxels.

The reflection coefficient for this material was computed using potentials of the form (35), with varying a, and with \(\delta =1\) and 3, and \(A=2\) and 3. The results are shown in Fig. 5, together with a streamline plot showing the velocity field for the solution of the cell problem (23). Just as for the cylinder, the values for \(\sigma \) do not quite reach 1, since the potential is finite with rather low values. Also, \(\sigma \) does not become 0 when \(a=0\) because of the tail of the potential. Although the general shape of the curve is similar to the case of the cylinder, the details are quite different, reflecting the more complex structure. It is interesting to see that although the largest pores in the geometry have a radius close to 10, the maximum value of \(\sigma \) is reached at much smaller values for a, since the potential blocks most paths through the structure even at smaller a. The sharper potential with \(\delta =1\) yields a much sharper rise in \(\sigma \).

Fig. 5
figure 5

Results for the reflection coefficient in a porous medium with varying parameters for the potential V(x) (top). In the bottom image, streamlines for the velocity field from the solution to the cell problem (23) are shown, together with the values of the forcing term on the right-hand side in green

A study was also performed to investigate how the values of \(\sigma \) varied with the grid size. To this end, the entire geometry was scaled between 1 and 1.5 times, together with the values for a and \(\delta \) for the potential. The tests were performed with \(A=3\) and \(\delta =3\) (at grid size 200). The results are shown in Fig. 6 for various values of a and show a convergence for \(\sigma \) as the resolution increases. However, as there is a significant change in \(\sigma \) with increasing resolution for low values of a, the results indicate that for improved accuracy, it is important to resolve the boundary layer where the potential is large.

Fig. 6
figure 6

Results for the reflection coefficient when varying the grid size, for different values of a. Note that a is scaled with the grid size to ensure comparable simulations, but results are shown using the corresponding value for grid size 200

5 Conclusions

We have presented the results of homogenization in a porous medium for a model describing the effects of osmotic pressure differences on the pore scale. The homogenized equations may be used to compute macroscopic solvent velocities induced by difference in concentration of solutes, but in particular also to compute the reflection coefficient \(\sigma \) for a periodic porous material.

The models have been implemented using the lattice Boltzmann method, and the simulation results show good agreement with theoretical results available for straight circular cylinders. The method is also flexible enough to be applicable to general porous materials, as has been illustrated for a particular porous geometry here. The method could also be applied to 3D structures of real porous materials when available, as has, for example, been done for pure diffusion in our previous work (Gebäck et al. 2015). An interesting future study would be to perform such simulations, and to validate with measurement data for various materials. Further work is also needed to derive correct expressions for the reflection coefficient for heterogeneous materials, including effects of boundary layers.

Future work also includes deriving homogenized equations for the case of large Péclet numbers, when there will be no decoupling of the equations for flow and advection–diffusion. This introduces nonlinearities and makes both the homogenization and the solving of both the cell problems and the macroscopic problem more challenging.