1 Introduction

Chemical scale inhibitors (SIs) are commonly applied in oil fields to prevent the formation and deposition of “scale” minerals such as barium sulfate (\(\mathrm{BaSO}_4\)) and calcium carbonate (\(\mathrm{CaCO}_3\)). These scale inhibitors are applied in “squeeze” treatments that involve stopping a producing oil well (which is usually producing oil and water) and then pumping a chemical SI solution back into the well. After a short “shut-in” period, the well is put back onto production again. The SI chemical then desorbs or dissolves into the produced water stream at a low concentration (typically from  1–50 ppm) over a long period, which is sufficient to prevent or slow down the formation of mineral scale. It is well established that scale inhibitors (SIs) are retained within porous media by the two main mechanisms of “adsorption” and “precipitation”. A large number of publications have appeared over the last three decades describing these mechanisms in some detail. For example, SI adsorption can be described by a generalized adsorption isotherm, \(\Gamma (C)\), and precipitation may be modeled by a solubility function, \(\Pi (C)\), and a dissolution rate constant (denoted as \(\kappa \) or \(r_4\)) (Sorbie et al. 1992; Yuan et al. 1994b; Malandrino et al. 1995). Some researchers have related the SI adsorption mechanism based on the specific mineralogy of the (sandstone) rock (Sorbie and Gdanski 2005). Other workers have described SI retention by both an adsorption mechanism at low [SI] and a precipitation/dissolution mechanism at higher concentrations based on the solubility of the various Ca_SI salts that are formed (Kan et al. 1992, 2004). All of these mechanisms are appropriate in certain circumstances, and the issue is not which approach is correct, but when each mechanism is correct and should be applied. Work on unifying the various approaches has led to a complete formulation of a generalized kinetic coupled adsorption/precipitation (\(\Gamma / \Pi \)) model (Sorbie 2010). This model is fully dynamic and consistent; that is, it can model the full non-equilibrium (kinetic) adsorption/precipitation process such that this correctly limits in a consistent manner to the equilibrium case. Experimental work has broadly validated these more complex coupled adsorption/precipitation (\(\Gamma / \Pi \)) models (Ibrahim et al. 2012a, b). Some time ago, Hong and Shuler (1988) published analytical solutions for equilibrium adsorption scale inhibitor flow through porous media described by a Freundlich adsorption isotherm. A considerable amount of more recent work studying precipitating SI systems has appeared in recent years for various type of scale inhibitor species. Shaw and Sorbie (2015) have presented results on the stoichiometry and modeling of mixed Ca/Mg /phosphonate scale inhibitor systems, in which the Ca/Mg salt of the SI is sparingly soluble, and details of this precipitation/dissolution behavior are discussed by Valiakhmetova et al. (2017). The precipitation behavior of polymeric types of SI inhibitor, such as PPCA (poly phosphino carboxylic acid), has also been studied (Farooqui and Sorbie 2016), where again the Ca salt of the polymer precipitates. The subtlety of polymer/Ca precipitates is that the molecular weight plays an important role (Farooqui and Sorbie 2016, and references therein).

The current work presents analytical solutions for precipitation squeeze treatments, describing the precipitation/dissolution process by a simple kinetic model. The quantity of precipitate locally is denoted \(\Pi \), which is taken to be in the same units as solution concentration (e.g., M). If there is an infinite source of precipitate, the model effectively reduces to a single transport equation and is very straightforward to solve. More complex behavior is observed when the amount of precipitate is finite, so that the dependent variables C and \(\Pi \) are coupled together, and it is this case we solve here. For the purposes of this paper, we will assume that a uniform finite precipitate level \(\Pi _0\) is initially present in the system and that a constant flow rate Q is used. An interesting composite solution of the model is obtained when the process is allowed to evolve long enough for the precipitate to be used up entirely. This solution constitutes a base case that may be extended to a more complex version of the model in which varying flow rates are used (Stamatiou and Sorbie 2018b). The base case is also instrumental in understanding numerical solutions of the general adsorption/precipitation model and indeed for finding an analytical solution of this model in the case with kinetic precipitation and equilibrium adsorption (Stamatiou and Sorbie 2018a).

2 Simple Bulk Kinetic Model for Scale Inhibitor (SI) Precipitation

In situ precipitation of scale inhibitor (SI) has been induced deliberately in order to improve its retention characteristics within the porous medium, i.e., the reservoir rock matrix (Malandrino et al. 1995), and this has been modeled previously (Yuan et al. 1994b; Malandrino et al. 1995) both in the laboratory and in the field. A complete consistent model for kinetic coupled adsorption/precipitation has been presented previously (Sorbie 2010). However, here we will take a much simpler approach in order to clarify what is happening in kinetic precipitation processes in 1D rock cores (at the laboratory scale) in order to obtain some useful working formulae to describe the process.

2.1 Bulk Precipitation

The simple bulk precipitation model assumed is that which has been used in the software codes for many years (Malandrino et al. 1995). The solid precipitate forms to some level, \(\Pi \), and there a corresponding solubility (\(C_\mathrm{s}\)) in the bulk liquid phase is reached; both \(C_\mathrm{s}\) and \(\Pi \) are expressed in molar (M) units. Note that if further precipitate is added (\(\Pi \) is increased), then \(C_\mathrm{s}\) would remain constant, so long as there is precipitate present. The kinetic aspect of the precipitation/dissolution process is really relevant only in the dissolution part of this model, and here we describe this process by the following simple rate law:

$$\begin{aligned} \frac{\mathrm{d}C}{\mathrm{d}t} = \kappa \left( C_\mathrm{s} - C \right) \end{aligned}$$
(1)

where \(C=C(t)\) is the mobile phase SI concentration, \(C_\mathrm{s}\) is the solubility of the precipitate as explained above, and \(\kappa \) is the dissolution rate constant. This simple kinetic model of precipitation in a bulk system given by Eq. (1) has the well-known analytical solution:

$$\begin{aligned} C(t) = C_\mathrm{s} - C_\mathrm{s} \exp ( - \kappa t) \end{aligned}$$
(2)

3 Kinetic Precipitation in a 1D Linear Core System

We now consider taking our simple bulk kinetic model and putting it into a transport model for flow through a 1D porous medium, as may occur in flow through a packed bed or in a core flood, as shown schematically in Fig. 1. For a volumetric flow rate Q (say in \(\mathrm{cm}^3/\mathrm{s}\)) through a linear core of length L (cm), cross-sectional area A (\(\mathrm{cm}^2\)) and porosity \(\phi \), the fluid residence time and the fluid velocity v (cm/s) are related as follows:

$$\begin{aligned} \text {fluid residence time} = \frac{L \cdot A \cdot \phi }{Q} = \frac{L}{ Q / (A \cdot \phi )} = \frac{L}{v} \end{aligned}$$
(3)
Fig. 1
figure 1

1D flow through a packed bed or core flood illustrating the fluid residence time in the core

The sequence of steps in an experiment involving a simple precipitating system can be imagined as shown in Fig. 2. The key problem is to calculate what is observed in stage 5. At the initial condition (\(t =0\)) defined by stage 4 in this figure, it is clear that \(C = C_\mathrm{s}\) all along the core; i.e., there is precipitate distributed all along the system and the mobile phase concentration is at the solubility of this precipitate, \(C_\mathrm{s}\). Similarly, there is a uniformly distributed finite amount of scale inhibitor precipitate present in the system, denoted \(\Pi _0\). The task is to calculate the evolution of the concentration profile as the displacement progresses and we inject only brine containing no scale inhibitor (\(C=0\)).

Fig. 2
figure 2

Flooding sequence for a 1D kinetic precipitation core flood

Assuming no dispersion takes place, the mobile phase SI concentration \(C = C(x,t)\) and the amount of SI precipitate \(\Pi = \Pi (x,t)\) can be coupled together in the following system of partial differential equations, using the bulk kinetic model in Eq. (1):

$$\begin{aligned}&\frac{\partial C}{\partial t} + v\frac{\partial C}{\partial x} = - \frac{\partial \Pi }{\partial t} \end{aligned}$$
(4)
$$\begin{aligned}&\frac{\partial \Pi }{\partial t} = - \kappa \left( {{C_\mathrm{s}} - C} \right) \cdot H\left( \Pi \right) = \left\{ {\begin{array}{ll} - \kappa \left( {{C_\mathrm{s}} - C} \right) , &{}\quad \Pi > 0 \\ 0, &{}\quad \Pi \le 0 \end{array}} \right. \end{aligned}$$
(5)

Here, \(v = Q / (A \cdot \phi )\) is the fluid velocity [see Eq. (3)] and H denotes the Heaviside step function. Strictly speaking, \(H(\Pi ) = 0\) if \(\Pi < 0\) with H(0) left undefined, but in applications (and numerical solutions) it is often given a specific value. In this case, we have chosen \(H(0)=0\), since no dissolution takes place when there is no precipitate.

The initial conditions for this system are \(C\left( {x,0} \right) ={C_\mathrm{s}}\), \(\Pi \left( {x,0} \right) = {\Pi _0}\) on the interval \(0 \le x \le L\) representing the 1D porous medium. The boundary condition \(C\left( {0,t} \right) =0\) for \(t>0\) is needed as well, expressing the assumption that that the concentration at the reservoir inlet drops to zero immediately after the flow is started and remains so for all time. From Eq. (5) we deduce that, as longs as \(\Pi > 0\), the rate of dissolution of the precipitate at \(x=0\) is the constant \(-\kappa C_\mathrm{s}\). The precipitate level here decreases linearly as \(\Pi \left( {0,t} \right) = {\Pi _0} - \kappa {C_\mathrm{s}}t\). We see that \(\Pi \left( {0,t} \right) = 0\) at time \(t^*\) given by

$$\begin{aligned} t^* = \frac{{{\Pi _0}}}{{\kappa {C_\mathrm{s}}}} \end{aligned}$$
(6)

It will be shown that the solution satisfies \(\Pi \left( {x,t} \right) > 0\) on (0, L] for all \(0 \le t \le t^*\), from which it follows that the precipitate runs out for the first time at \(x=0\) (when \(t=t^*\)). The Heaviside term \(H\left( \Pi \right) \) in Eq. (5) then implies a sudden change in the dissolution rate from \(\kappa C_\mathrm{s}\) to 0. We will explore what effect this has on the solution in the region of \(\Omega \) where \(t>t^*\). The key idea will be the invariance of a certain relationship between C and \(\Pi \). This will lead to the emergence of a traveling wave solution in the \(t>t^*\) region, joining on to the existing solution profiles of C and \(\Pi \). It will be shown that the resulting composite solution of the system obeys the principle of mass conservation, thus confirming that our conjecture is physically correct. This is also verified by comparison with numerical solutions of the initial / boundary value problem using a first-order finite difference scheme.

Another approach to solving the Cauchy problem for Eqs. (4) and (5) would be to notice that it is a hyperbolic system of two partial differential equations. It is already in canonical form, and the distinct eigenvalues 0 and v lead to two families of characteristic curves on which the solutions can be developed (Rhee et al. 1989). However, this is complicated because of the non-homogeneity of the system and the difficulty in dealing with the function H. Even if we were to replace H with one of its smooth approximations (Bracewell 2000), the resulting pair of ordinary differential equations is hard (if not impossible) to solve explicitly. In contrast, the solution method presented in this paper is very straightforward and intuitive.

4 Solution for \(0 \le t < t^*\)

We first consider the period when there is some precipitate at every location in the reservoir. At \(t=0\), we have \(\Pi = \Pi _0\) for all \(0 \le x \le L\). Since \(\partial \Pi /\partial t\) is finite, there must be some positive time interval \(\left[ {0,t'} \right) \) such that \(\Pi \left( {x,t} \right) > 0\) for all \(0 \le x \le L\), \(t \in \left[ {0,t'} \right) \). This allows us to substitute \(\partial \Pi /\partial t = - \kappa \left( {{C_\mathrm{s}} - C} \right) \) in Eq. (4) to obtain the non-homogenous, quasi-linear PDE

$$\begin{aligned} \frac{{\partial C}}{{\partial t}} + v\frac{{\partial C}}{{\partial x}} = \kappa \left( {{C_\mathrm{s}} - C} \right) \end{aligned}$$
(7)

4.1 Method of Characteristics

The solution strategy used to solve Eq. (7) is the method of characteristics (Alinhac 2009), which we will outline here briefly. Consider a general quasi-linear PDE with initial conditions on a domain \(D \subset {\mathbb {R}}^2\):

$$\begin{aligned} a\left( {x,t,\eta } \right) \frac{{\partial \eta }}{{\partial x}} + b\left( {x,t,\eta } \right) \frac{{\partial \eta }}{{\partial t}} = c\left( {x,t,\eta } \right) ,\quad \eta \left( {x,0} \right) = {\eta _0}\left( x \right) \end{aligned}$$
(8)

We may visualize a solution \(\eta = \eta \left( {x,t} \right) \) of Eq. (8) as a surface in \({\mathbb {R}}^3 \):

$$\begin{aligned} S := \{(x,t,z) \subset {\mathbb {R}}^3, (x,t) \in D, z = \eta (x,t) \} \end{aligned}$$
(9)

Now consider the vector field \(V: D \times {\mathbb {R}} \rightarrow {\mathbb {R}}^3\) given by

$$\begin{aligned} V(x,t,z) = \left( {a(x,t,z),\;b(x,t,z),\;c(x,t,z)} \right) \end{aligned}$$
(10)

The key observation is to note that \(\eta = \eta \left( {x,t} \right) \) is a solution of Eq. (8) in \(D \subset {\mathbb {R}}^2\) if and only if V is tangent to the surface S. To see this, it suffices to note that at any point \(Q \in S\), the vector normal to the surface is given by \({N_Q} = ({\eta _x}, {\eta _t},- 1)\). From Eq. (8) it then follows that \({N_Q} \cdot {V_Q} = 0\), which implies that \(V_Q\) lies in the tangent plane \(T_Q S\).

Next, let us consider the integral curves of V. In terms of a parameter \(s \in {\mathbb {R}}\), these are the curves \(\gamma = \gamma (s)\) that satisfy the ordinary differential equation (ODE)

$$\begin{aligned} \frac{\mathrm{d} \gamma }{\mathrm{d}s} = V \left( {\gamma (s)} \right) \end{aligned}$$
(11)

A fundamental result in the theory of ODEs states that for a given point \(({x_0},{t_0},{z_0}) \in {\mathbb {R}}^3\), there exists \(\delta >0\) and a unique solution \(\gamma : (-\delta ,\delta ) \rightarrow {\mathbb {R}}^3\) of Eq. (11) such that \(\gamma (0)=({x_0},{t_0},{z_0})\) (see Hirsch et al. 2004 for example). Thus, for any point \(Q \in S\) there is an integral curve \(\gamma \) of V whose derivative at Q is \(\gamma '(0) = {V_Q}\), tangent to S. Consequently, the integral curve starting at Q remains on the surface S. (This can be shown by choosing suitable local coordinates.)

We now reverse these ideas. The initial data \(\eta \left( {x,0} \right) = {\eta _0}\left( x \right) \) in Eq. (8) can be thought of as a curve \(\Sigma _0 \subset {\mathbb {R}}^3\). From what was said above, for each point \({Q_0} \in {\Sigma _0}\) we can construct an integral curve of V starting there. By taking the union of this and all other integral curves starting in a neighborhood of \({Q_0} \in {\Sigma _0}\), we actually obtain a surface \(S \subset {\mathbb {R}}^3 \) made up of integral curves. (This process is referred to as “weaving” in Alinhac 2009.) Clearly, S constructed in this way contains \(\Sigma _0\) and is also such that V is tangent to it at any point. Finally, it can be shown that, at least locally, S is the graph of a smooth function.

In practice, the method for solving Eq. (8) works as follows: using a parameter \(r \in {\mathbb {R}}\), we can describe the initial data curve \(\Sigma _0\) and look for the surface \(S = \{ {\left( {x(r,s),t(r,s),z(r,s)} \right) , (r,s) \in \Omega } \}\) obtained by solving the system of differential equations

$$\begin{aligned} \frac{{\partial x}}{{\partial s}} = a\left( {x,t,z} \right) ,\;\;\;\;\frac{{\partial t}}{{\partial s}} = b\left( {x,t,z} \right) ,\;\;\;\;\frac{{\partial z}}{{\partial s}} = c\left( {x,t,z} \right) \end{aligned}$$
(12)

The constants of integration are functions of r only and are determined using \(\Sigma _0\).

4.2 Analytical Solution of the System When \(\Pi > 0\)

Comparing Eq. (7) with Eq. (8) we have \(a\left( {x,t,z} \right) = v\), \(b\left( {x,t,z} \right) = 1\), \(c\left( {x,t,z} \right) = \kappa \left( {{C_\mathrm{s}} - C} \right) \) and we therefore need to solve the system

$$\begin{aligned} \frac{{\partial x}}{{\partial s}} = v,\;\;\;\;\frac{{\partial t}}{{\partial s}} = 1,\;\;\;\;\frac{{\partial z}}{{\partial s}} = \kappa \left( {{C_\mathrm{s}} - C} \right) \end{aligned}$$
(13)

In terms of arbitrary functions f, g, h, these equations yield

$$\begin{aligned} z\left( {r,s} \right)&= {C_\mathrm{s}} + f\left( r \right) \exp ( - \kappa s) \end{aligned}$$
(14)
$$\begin{aligned} x\left( {r,s} \right)&= vs + g\left( r \right) \end{aligned}$$
(15)
$$\begin{aligned} t\left( {r,s} \right)&= s + h\left( r \right) \end{aligned}$$
(16)

Let us choose \(h \equiv 0\) and \(g(r)=r\), so that

$$\begin{aligned} s = t,\,\,\,r = x - vt \end{aligned}$$
(17)

Finally, the general solution to Eq. (7) is

$$\begin{aligned} C\left( {x,t} \right) = {C_\mathrm{s}} + f\left( {x - vt} \right) \exp ( - \kappa t) \end{aligned}$$
(18)

The problem now is to specify the function f for the situation we wish to model. From Eq. (18), \(C\left( {x,0} \right) = {C_\mathrm{s}} + f\left( x \right) \). In order to satisfy the initial condition \(C\left( {x,0} \right) = {C_\mathrm{s}}\) on [0, L], we therefore require \(f(x)=0\) for \(x \ge 0\). We also have the boundary condition \(C\left( {0,t} \right) = {C_\mathrm{s}} + f\left( { - vt} \right) \exp ( - \kappa t) = 0\) for all \(t > 0\). Replacing \(-vt\) with x yields \(f\left( x \right) = - {C_\mathrm{s}} \exp (\kappa x/v)\) for \(x<0\), and hence our required function is

$$\begin{aligned} f\left( x \right) = \left\{ \begin{array}{ll} 0, &{}\quad x \ge 0\\ - {C_\mathrm{s}} \exp (\kappa x / v), &{}\quad x < 0 \end{array}\right. \end{aligned}$$
(19)

The solution C is obtained by substituting Eq. (19) into (18). Thus,

$$\begin{aligned} C\left( {x,t} \right) = \left\{ \begin{array}{ll} {C_\mathrm{s}},&{}\quad x \ge vt\\ {C_\mathrm{s}} - {C_\mathrm{s}} \exp ( -\kappa x / v),&{}\quad x < vt \end{array}\right. \end{aligned}$$
(20)

This concentration profile is characterized by an upward shock front of height \({C_\mathrm{s}} \exp { - \kappa x/v}\) moving along [0, L] at the fluid velocity v. Behind the front the solution profile is equal to the steady-state solution of Eq. (7) obtained when setting \(\partial C/\partial t = 0\).

In order to find a corresponding precipitate profile, we substitute Eq. (20) in Eq. (5) and obtain \(\partial \Pi / \partial t = 0\) for all \(x \ge vt\), which means that \(\Pi = \Pi _0\) here. For \(x < vt\), we have \(\partial \Pi /\partial t = - \kappa {C_\mathrm{s}} \exp ( -\kappa x / v )\). Integration yields the solution in terms of an arbitrary function:

$$\begin{aligned} \Pi \left( {x,t} \right) = g\left( x \right) - \kappa {C_\mathrm{s}} t \exp ( -\kappa x / v) \end{aligned}$$
(21)

We will choose g in such a way that the profile \(\Pi = \Pi (x,t)\) is continuous everywhere, which implies that Eq. (21) should take the value \(\Pi _0\) at \(x=vt\). Substituting \(t=x/v\), this condition may be expressed as

$$\begin{aligned} {\Pi _0} = \Pi \left( {x,\frac{x}{v}} \right) = g\left( x \right) - \frac{{\kappa {C_\mathrm{s}}x}}{v} \exp ( -\kappa x / v) \end{aligned}$$
(22)

This choice of the function g results in the following precipitate profile:

$$\begin{aligned} \Pi \left( {x,t} \right) = \left\{ \begin{array}{ll} {\Pi _0},&{}\quad x \ge vt \\ {\Pi _0} + \displaystyle {\frac{{\kappa {C_\mathrm{s}}}}{v}} \left( {x - vt} \right) \exp ( -\kappa x / v) ,&{}\quad x < vt \end{array}\right. \end{aligned}$$
(23)

Differentiating Eq. (23) with respect to x, we obtain

$$\begin{aligned} \frac{{\partial \Pi }}{{\partial x}} = \frac{{{\kappa ^2}{C_\mathrm{s}}}}{{{v^2}}}\left( {\frac{v}{\kappa } + vt - x} \right) \exp (-\kappa x / v) > 0,\quad x < vt \end{aligned}$$
(24)

This shows that the first time the precipitate runs out must be at \(x=0\), \(t = t^* = {\Pi _0} / {\kappa C_\mathrm{s}}\). Until this time, the concentration and precipitate profiles on \(0 \le x \le L\) are entirely defined by Eqs. (20) and (23). Figure 3 shows these profiles at some time \(t < t^*\). The horizontal line represents a fixed precipitate value \(P \in \left[ {{\Pi _0} - \kappa {C_\mathrm{s}}t\,,\,\,\,{\Pi _0}} \right] \). Let \(x_\mathrm{P}\) denote the point of intersection of \(\Pi (x,t)\) with the line \(\Pi = P\), so

$$\begin{aligned} 0 = {\Pi _0} - P + \frac{{\kappa {C_\mathrm{s}}}}{v}\left( {{x_\mathrm{P}} - vt} \right) \exp \left( {\frac{{ - \kappa {x_\mathrm{P}}}}{v}} \right) \end{aligned}$$
(25)
Fig. 3
figure 3

Equations (20) and (23) describe solution profiles for \(t < t^*\)

Using the Lambert W-function (Corless et al. 1993), Eq. (25) can be solved explicitly for \(x_\mathrm{P}\) as a function of t. However, for reasons that will become clear shortly, we are mainly interested in the rate of change of \(x_\mathrm{P}\). By defining \(G\left( {{x_{\mathrm{P}}},t} \right) = \Pi \left( {{x_{\mathrm{P}}},t} \right) - P\) and applying the implicit function theorem (Krantz and Parks 2012) to the equation \(G\left( {{x_{\mathrm{P}}},t} \right) = 0\), we find

$$\begin{aligned} \frac{{\mathrm{d}{x_{\mathrm{P}}}}}{{\mathrm{d}t}} = - \frac{{\partial G}}{{\partial t}}{\left( {\frac{{\partial G}}{{\partial {x_{\mathrm{P}}}}}} \right) ^{ - 1}} \end{aligned}$$
(26)

Since P is a constant, \(\partial G/\partial t = \partial \Pi /\partial t\) and \(\partial G/\partial {x_\mathrm{P}} = \partial \Pi /\partial {x_\mathrm{P}}\). Introducing the notation \({C_\mathrm{P}} = C\left( {{x_\mathrm{P}},t} \right) \) and using Eqs. (24) and (25), we obtain

$$\begin{aligned}&\displaystyle \frac{{\partial \Pi }}{{\partial t}} = - \kappa \left( {{C_\mathrm{s}} - {C_\mathrm{P}}} \right) \end{aligned}$$
(27)
$$\begin{aligned}&\displaystyle \frac{{\partial \Pi }}{{\partial {x_\mathrm{P}}}}= \frac{{{\kappa ^2}{C_\mathrm{s}}}}{{{v^2}}}\left( {\frac{v}{\kappa } + vt - {x_\mathrm{P}}} \right) \exp \left( {\frac{{ - \kappa {x_\mathrm{P}}}}{v}} \right) = \frac{\kappa }{v}\left( {{\Pi _0} - P + {C_\mathrm{s}} - {C_\mathrm{P}}} \right) \end{aligned}$$
(28)

Substituting these into Eq. (26) yields the rate of change of \(x_\mathrm{P}\) in terms of the precipitate level P and the corresponding concentration value \(C_\mathrm{P}\):

$$\begin{aligned} \frac{{\mathrm{d}{x_\mathrm{P}}}}{{\mathrm{d}t}} = \frac{{v\left( {{C_\mathrm{s}} - {C_\mathrm{P}}} \right) }}{{{\Pi _0} - P + {C_\mathrm{s}} - {C_\mathrm{P}}}} \end{aligned}$$
(29)

For instance, at some fixed time \(\tau <t^*\) the precipitate level at \(x=0\) is \(P = {\Pi _0} - \kappa {C_\mathrm{s}}\tau \) with corresponding concentration level \({C_\mathrm{P}} = 0\). Equation (29) now implies that the “horizontal” rate of change in the precipitate profile at the inlet is \(v/ ({1 + \kappa \tau })\).

5 Solution for \(t \ge t^*\)

The precipitate profile at time \(t^*\) satisfies \(\Pi (0,t^*)=0\) and \(\Pi (x,t^*)>0\) for \(x>0\). The dissolution rate at the reservoir inlet suddenly dropped from \(\kappa C_\mathrm{s}\) for \(t<t^*\) to 0 at \(t=t^*\), and the system of Eqs. (4) and (5) changed to its alternate form \(\partial C/\partial t = - v\partial C/\partial x\), \(\partial \Pi /\partial t = 0\) here. This simpler system is no longer satisfied by Eqs. (20) and (23). In order to describe what is going on, we introduce the point \(\left( {{\alpha _\Pi },0} \right) \) on the precipitate profile such that \(\Pi \equiv 0\) if \(x \le {\alpha _\Pi }\) and \(\Pi > 0\) if \(x > {\alpha _\Pi }\). Similarly, we let \(\left( {{\alpha _C},0} \right) \) be the point on the concentration profile such that \(C \equiv 0\) if \(x \le {\alpha _C}\) and \(C>0\) if \(x > \alpha _C\). These definitions for the “roots” are physically motivated: precipitate and concentration cannot be negative quantities and, once depleted in a particular location by the flow, they cannot reappear there without external influence. We also observe that we must have \(\alpha _C \le \alpha _\Pi \). Indeed, if \(\alpha _C > \alpha _\Pi \), then \(C \equiv 0\) and \(\Pi >0\) on the interval \({\alpha _\Pi } < x \le \,\,{\alpha _C}\). But since \(C \equiv 0\) is not a solution of Eq. (4) when \(\Pi >0\), this is a contradiction.

Fig. 4
figure 4

Solution profiles at \(t=t^*\)

Figure 4 shows the situation at \(t=t^*\), when \(\alpha _\Pi =\alpha _C=0\). On \(0<x \le L\), Eqs. (20) and (23) still define the solution profiles and therefore Eq. (29) still describes the speed \({x_\mathrm{P}}^\prime \left( t \right) \) of any precipitate value \(0 < P \le {\Pi _0}\) in terms of the corresponding concentration value \({C_\mathrm{P}} = C\left( {{x_\mathrm{P}},t} \right) \). Let us now make the assumption that this intrinsic relationship also applies to the motion of the point \(\left( {{\alpha _\Pi },0} \right) \), despite the fact that the system of equations takes the form \(\partial C/\partial t = - v\partial C/\partial x\), \(\partial \Pi /\partial t = 0\) at \(x = \alpha _\Pi \). Then, substituting \(P = 0\) and \({C_0} = C\left( {{\alpha _\Pi },t} \right) \), we obtain the relation

$$\begin{aligned} \frac{{\mathrm{d}{\alpha _\Pi }}}{{\mathrm{d}t}} = \frac{{v({C_\mathrm{s}} - {C_0})}}{{{\Pi _0} + {C_\mathrm{s}} - {C_0}}} \end{aligned}$$
(30)

Because \(0 \le {C_0} \le {C_\mathrm{s}}\) and \({\Pi _0} > 0\), Eq. (30) implies that \({\alpha _\Pi }^\prime \left( t \right) < v\).

In order to find the rate of change of \(\alpha _C\), we observe that any solution of the transport equation \(\partial C/\partial t = - v\partial C/\partial x\) must be of the form \(C = C\left( {x - vt} \right) \). Since such a solution is propagated forward at velocity v, we deduce that \({\alpha _C}^\prime \left( t \right) = v\). Given that \({\alpha _\Pi }\left( {t^*} \right) = {\alpha _C}\left( {t^*} \right) = 0\), it would therefore seem that \(\alpha _C\) is about to overtake \(\alpha _\Pi \). However, as noted above, there is the constraint \({\alpha _C} \le {\alpha _\Pi }\). This condition instantaneously “slows down” \(\alpha _C\), forcing it to have the same speed as \(\alpha _\Pi \), from which it follows that \(\alpha _C = \alpha _\Pi \) during some time interval \(\left[ {t^*,t^* + \delta t} \right] \). Repeating this argument at \(t = t^* + \delta t\) and subsequent stages, we deduce that \(\alpha _C = \alpha _\Pi \) for all \(t \ge t^*\).

In line with the notation used previously, we let \(x_0: = \alpha _\Pi \), the root of the precipitate profile. Since \(x_0 = \alpha _C\) by the above argument, we find that \({C_0} = C\left( {{x_0},t} \right) = 0\) in Eq. (30), and hence

$$\begin{aligned} {\frac{{\mathrm{d}{x_0}}}{{\mathrm{d}t}} = U := \frac{{v{C_\mathrm{s}}}}{{{\Pi _0} + {C_\mathrm{s}}}}} \end{aligned}$$
(31)

Using the initial condition \({x_0}\left( {t^*} \right) = 0\), we find \({x_0}\left( t \right) = U\left( {t - t^*} \right) \). We now look for a solution \(C^*\) of the system of Eqs. (4) and (5) satisfying the condition \(C^*\left( {{x_0},t} \right) = 0\) for all \(t \ge t^*\). Since \(\Pi > 0\) for \(x>x_0\), \(C^*\) is of the form of Eq. (18). Substituting \(x=x_0(t)\), the “moving boundary condition” is

$$\begin{aligned} 0 = {C_\mathrm{s}} + f\left( {Ut - Ut^* - vt} \right) \exp ( - \kappa t) \end{aligned}$$
(32)

Introducing the variable \(z = Ut - Ut^* - vt\) and rearranging terms, we find

$$\begin{aligned} f\left( z \right) \,\, = - {C_\mathrm{s}}\exp \left( {\frac{{\kappa \,z + Ut^*z\,}}{{U - v}}} \right) \end{aligned}$$
(33)

Note that \(\kappa {\left( {U - v} \right) ^{ - 1}} = - \left( {{C_\mathrm{s}} + {\Pi _0}} \right) {v^{ - 1}} \kappa {\Pi _0}^{ - 1} = - {\left( {Ut^*} \right) ^{ - 1}}\). Substituting Eq. (33) back into Eq. (18) then yields

$$\begin{aligned} C^*\left( {x,t} \right) \, = {C_\mathrm{s}} - {C_\mathrm{s}}\exp \left( {\frac{{Ut - Ut^*\, - x}}{{Ut^*}}} \right) \end{aligned}$$
(34)

Putting \(C^*\) into Eq. (5), we obtain

$$\begin{aligned} \frac{{\partial \Pi ^*}}{{\partial t}} = - \kappa {C_\mathrm{s}}\exp \left( {\frac{{Ut - Ut^* - x\,}}{{Ut^*}}} \right) \end{aligned}$$
(35)

As before, integrating with respect to t determines the precipitate up to an arbitrary function \(h=h(x)\):

$$\begin{aligned} \Pi ^*\left( {x,t} \right) = h\left( x \right) - {\Pi _0}\exp \left( {\frac{{Ut - Ut^* - x\,}}{{Ut^*}}} \right) \end{aligned}$$
(36)

We can use the condition \(\Pi ^*(x_0,t)=0\) to find \(h(x) = \Pi _0\). Comparing this with Eq. (34), we see that \(\Pi ^*\) is just a scalar multiple of \(C^*\):

$$\begin{aligned} \Pi ^*\left( {x,t} \right) = \frac{{{\Pi _0}}}{{{C_\mathrm{s}}}}C^*\left( {x,t} \right) \end{aligned}$$
(37)

Direct substitution shows that \(C^*\) and \(\Pi ^*\) coincide with Eqs. (20) and (23) at \(x=v(t-t^*)\). It is therefore reasonable to suggest that the solution be defined by Eqs. (34) and (37) in the “new region” \(U\left( {t - t^*} \right)< x < v\left( {t - t^*} \right) \) and by Eqs. (20) and (23) for all \(x \ge v(t-t^*)\). This idea is illustrated in Fig. 5. It is consistent with the requirement that any discontinuities in the solution or its derivatives must propagate along characteristics (see Rhee et al. 1989). In Sect. 6, we will explain why this requirement does not apply to \(x=x_0(t)\).

Fig. 5
figure 5

New solution region at some time \(t>t^*\)

We note that \(C^*\), \(\Pi ^*\) satisfy \(\partial C/\partial t = - U\partial C/\partial x\), \(\partial \Pi /\partial t = - U\partial \Pi /\partial x\), respectively, and that they are consistent with Eq. (29): substituting \(P = \Pi ^* \left( {{x_\mathrm{P}},t} \right) \) and \({C_\mathrm{P}} = C^*\left( x_\mathrm{P},t \right) = C_\mathrm{s}P / \Pi _0\) yields \(\mathrm{d}{x_\mathrm{P}}/\mathrm{d}t = U\). We also observe that the velocity of a precipitate value P changes in a continuous way as it enters the new region. To see this, note that the front end of this region reaches P at time \( \tau = t^* + x_\mathrm{P}/v \). Using Eq. (23), we then have \(P = {\Pi _0} - \kappa {C_\mathrm{s}}t^*\exp \left( {\kappa t^* - \kappa \tau } \right) \) and \({C_\mathrm{P}} = {C_\mathrm{s}} - {C_\mathrm{s}}\exp \left( {\kappa t^* - \kappa \tau } \right) \). Substituting these values in Eq. (29) yields \(\mathrm{d}{x_\mathrm{P}}/\mathrm{d}t = U\), which shows that P already has velocity U when it falls into the new solution region. On the other hand, the velocity of the corresponding concentration value \(C_\mathrm{P}\) “jumps” from 0 to U at \(t=\tau \).

Dropping the notation involving \(C^*\) and \(\Pi ^*\), the solutions for \(t \ge 0\), \(0 \le x \le L\) are concisely written as follows:

$$\begin{aligned} C\left( {x,t} \right) = \left\{ \begin{array}{ll} {C_\mathrm{s}},&{}\quad vt \le x \le L\,\\ {C_\mathrm{s}} - {C_\mathrm{s}} \exp ( - \kappa x / v),&{}\quad v\left( {t - t^*} \right) \le x< vt\\ {C_\mathrm{s}} - {C_\mathrm{s}}\exp \left( \displaystyle {\frac{{Ut - Ut^* - x}}{{Ut^*}}} \right) ,&{}\quad U\left( {t - t^*} \right) \le x < v\left( {t - t^*} \right) \\ 0,&{}\quad 0 \le x \le U\left( {t - t^*} \right) \end{array} \right. \end{aligned}$$
(38)

and

$$\begin{aligned} \Pi \left( {x,t} \right) = \left\{ \begin{array}{ll} {\Pi _0},&{}\quad vt \le x \le L\,\\ {\Pi _0} + \displaystyle {\frac{{\kappa {C_\mathrm{s}}}}{v}} \left( {x - vt} \right) \exp (- \kappa x / v),&{}\quad v\left( {t - t^*} \right) \le x< vt\\ \displaystyle {\frac{{{\Pi _0}}}{{{C_\mathrm{s}}}}} C\left( {x,t} \right) ,&{}\quad U\left( {t - t^*} \right) \le x < v\left( {t - t^*} \right) \\ 0,&{}\quad 0 \le x \le U\left( {t - t^*} \right) \end{array} \right. \end{aligned}$$
(39)

It remains to check that these composite solutions conserve the total amount of scale inhibitor initially present in the system, which is \(L\,\left( {{C_\mathrm{s}} + {\Pi _0}} \right) \). The amount of chemical that is added to the mobile phase after some time \(t>0\) is found by evaluation of the definite integral of C(xt) between \(x=0\) and \(x=vt\). For the solution to be physically corrected, this must be equal to the total amount of precipitate used up. In other words, we need

$$\begin{aligned} \int \limits _0^{vt} {\left[ {{\Pi _0} - \Pi \left( {x,t} \right) } \right] \mathrm{d}x = } \int \limits _0^{vt} {C\left( {x,t} \right) \mathrm{d}x} \end{aligned}$$
(40)

It is straightforward to show that Eqs. (38) and (39) indeed satisfy Eq. (40). An alternative way to prove the conservation of mass is to consider the effluent concentration flux \(v {C_\mathrm{eff}}\left( t \right) : = v C\left( {L,t} \right) \), which is the amount of chemical passing the reservoir outlet \(x=L\) per unit time. Using Eq. (38) we have

$$\begin{aligned} v{C_\mathrm{eff}}\left( t \right) = \left\{ {\begin{array}{ll} v{C_\mathrm{s}},&{}\quad 0 \le t \le L/v \\ v{C_\mathrm{s}} - v{C_\mathrm{s}}e^ {- \kappa L / v},&{}\quad L/v \le t< t^* + L/v\\ v{C_\mathrm{s}} - v{C_\mathrm{s}}\exp \left( \displaystyle {\frac{{Ut - Ut^* - L}}{{Ut*}}} \right) , &{}\quad t^* + L/v \le t < \,t^* + L/U \end{array}} \right. \end{aligned}$$
(41)

Evaluation of the definite integral of \(v{C_\mathrm{eff}}(t)\) between 0 and \(t^* + L/U\) yields

$$\begin{aligned} \int \limits _0^{t^* + L/U} {v{C_\mathrm{eff}}\left( t \right) \mathrm{d}t}&= \left[ {v{C_\mathrm{s}}t} \right] _{0}^{ L/v } + \left[ {v{C_\mathrm{s}}t - v{C_\mathrm{s}}t\exp \left( {\frac{{ - \kappa L}}{v}} \right) } \right] _{L/v}^{L/v + t^*} \nonumber \\&\qquad + \left[ {v{C_\mathrm{s}}t - v{C_\mathrm{s}}t^*\exp \left( {\frac{{Ut - Ut^* - L}}{{Ut^*}}} \right) } \right] _{L/v+ t^*}^{L/U + t^*} \nonumber \\&= v{C_\mathrm{s}}\left( {\frac{L}{U} + t^*} \right) - v{C_\mathrm{s}}t^*\exp \left( {\frac{{ - \kappa L}}{v}} \right) - v{C_\mathrm{s}}t^* \nonumber \\&\qquad + v{C_\mathrm{s}}t^*\exp \left( {\frac{{UL - vL}}{{vUt^*}}} \right) \nonumber \\&= L\,\left( {{C_\mathrm{s}} + {\Pi _0}} \right) \end{aligned}$$
(42)

The question that arises is whether the argument can be reversed and if we can arrive at Eq. (38) by imposing the mass balance requirement in the first place. If we knew a priori that U is constant, this task is simple. We would start out by assuming the existence of traveling wave solutions \(C\left( {x - Ut} \right) \) and \(\Pi \left( {x - Ut} \right) \) on the interval \(U\left( {t - t^*} \right)< x < v\left( {t - t^*} \right) \) and then use Eqs. (20), (23) and (40) to derive the correct value of U. The trouble is that, in general, U is not constant, and traveling wave solutions do not exist (see Stamatiou and Sorbie 2018a, b). We would therefore require a more general derivation which proves that the “invariance” of Eq. (29) is a direct consequence of mass balance.

6 Interpretation of the Solution in Terms of Characteristics

We will now describe Eq. (38) in terms of characteristics. Consider \({x_0}\left( t \right) = U\left( {t - t^*} \right) \) for \(t \ge t^*\), where \(U: = {v{\Pi _0}} / \left( {{\Pi _0} + {C_\mathrm{s}}} \right) < v\) is the known constant speed found in Sect. 5. Since \(\Pi \left( {x,t} \right) \le 0\) if \(x \le {x_0}\) and \(\Pi \left( {x,t} \right) > 0\) if \(x > {x_0}\), we can rewrite Eq. (4) on the domain \(\Omega = \{ x \ge 0, t\ge 0 \}\) as follows:

$$\begin{aligned} \displaystyle {\frac{{\partial C}}{{\partial t}} + v\frac{{\partial C}}{{\partial x}}} = \kappa \left( {{C_\mathrm{s}} - C} \right) H\left( {x - {x_0}\left( t \right) } \right) \end{aligned}$$
(43)

The Cauchy data on \(\partial \Omega \) are \(C\left( {x,0} \right) = {C_\mathrm{s}}\) and \(C\left( {0,t} \right) = 0\). If \(t < t^*\), Eq. (43) reduces to a single, non-homogenous equation on \(\Omega \) with general solution given by Eq. (18). The Cauchy problem for this is solved and yields Eq. (20). For \(t \ge t^*\), the line \(x = {x_0}\left( t \right) = U\left( {t - t^*} \right) \) divides \(\Omega \) into two regions, as shown in Fig. 6. On the closed domain \({\Omega _1}: = \left\{ {0 \le x \le {x_0(t)},t \ge t^*} \right\} \) with boundary \(\partial {\Omega _1}: = \left\{ {x = 0, t \ge t^*} \right\} \cup \left\{ {x = {x_0(t)}} \right\} \), Eq. (43) is the homogenous transport equation and the solution is a traveling wave of speed v. On the semi-open domain \({\Omega _2}: = \left\{ {x > {x_0(t)},t \ge t^*} \right\} \) with boundary \(\partial {\Omega _2}: = \left\{ {t = t^*} \right\} \cup \left\{ {x = {x_0(t)}} \right\} \), Eq. (43) is non-homogenous with general solution given by Eq. (18). Note that \(C = C\left( {x,t^*} \right) \) is determined by Eq. (20), thus defining initial conditions on \(\partial {\Omega _1}\) and \(\partial {\Omega _2}\). We also have the boundary condition \(C\left( {0,t} \right) = 0\) for \(t>0\), which allows the solution on \({\Omega _1}\) to be determined completely. In order to find the solution on \({\Omega _2}\), we need to have knowledge of C on the boundary curve \({x_0} = {x_0}\left( t \right) \). This is illustrated in Fig. 6. The characteristics of Eq. (43) are the lines \(x - vt = \beta \). Since the equation is homogenous in \({\Omega _1}\), the solution here is constant along characteristics. With \(C\left( {0,t} \right) = 0\), this implies that \(C \equiv 0\) in \({\Omega _1}\), which also determines the required boundary condition on \(\partial {\Omega _2}\) as \(C\left( {{x_0},t} \right) = 0\). Equation (18) can now be specified to obtain Eq. (38), as was done in Sect. 5. The solution profile at some \(\tau \ge t^*\) consists of four regions.

Fig. 6
figure 6

Equation (43) in terms of characteristics

The boundary data on \(\partial {\Omega _1}\) are “sent” along characteristics to the boundary curve \({x_0} = U\left( {t - t^*} \right) \), thus providing the information needed to solve Eq. (43) on \({\Omega _2}\). This is only possible because \(U<v\) here. Since this will not be the case in general (see Stamatiou and Sorbie 2018a, b), it is worthwhile examining what would happen if \(U > v\). For simplicity, we will assume that U is a constant, although we could equally well carry out the analysis in this section for a more general velocity, \(U = U\left( {x,t,C} \right) \) say.

Suppose that the solution is known at some time \(\tau \) (see Fig. 7). Let \(D = \left( {{x_0},\,\tau } \right) \in {\Omega _1}\) be a point on the boundary, where the solution takes the value \(\xi \left( D \right) \). Since \(D \in {\Omega _1}\), the value \(\xi \left( D \right) \) will be transported along characteristic \({L_{1}}\) and, some time \(\delta \tau \) later, arrive at \(F = \left( {{x_0} + v\delta \tau , \tau + \delta \tau } \right) \in {\Omega _1}\). Now consider the point \(E = \left( {{x_0} + (U - v)\,\delta \tau , \tau } \right) \) in \({\Omega _2}\), with solution value \(\xi \left( E \right) \). In time \(\delta \tau \), this will travel along characteristic \({L_{2}}\) through \(G = \left( {{x_0} + U\delta \tau , \tau + \delta \tau } \right) \) on the boundary and in doing so changes its value to \(\xi \left( G \right) \). Since \(G \in {\Omega _1}\), the value \(\xi = \xi \left( G \right) \) will remain constant on \({L_{\,2}}\) from \(\tau + \delta \tau \) on. In this way, the moving boundary “builds” a traveling wave solution in \({\Omega _1}\) from the solution in \({\Omega _2}\). As a consequence, C no longer vanishes at \({x_0}\) (i.e., \({\alpha _C} \ne {\alpha _\Pi }\) ). Indeed, the process described in Fig. 7 results in a (nonzero) traveling wave falling behind the boundary, so that we have \({\alpha _C} < {\alpha _\Pi }\).

Fig. 7
figure 7

Moving boundary in the case \(U > v\)

7 Numerical Example

Just one numerical example is presented here, since this one contains all the regions that are predicted to occur by the analytical solution. We consider the case with full solubility level \({C_\mathrm{s}} = 1\) and initial precipitate level \({\Pi _0} = 0.5\) on a reservoir of unit length (\(L = 1\)). Let the dissolution rate parameter and fluid velocity be \(\kappa = 1\) and \(v = 0.5\), respectively, so that the Damkohler number is \({\kappa L} / v = 2\). With these parameters, we find \(t^* = 0.5\) and \(U = 1/3\). Figure 8 shows the concentration and precipitate in situ profiles for this case at time \(t = 1.5\). The exact solutions given by Eqs. (38) and (39) are plotted together with two numerical solutions obtained using a first-order finite difference scheme. While the coarse calculation (\(\Delta x = 0.01\)) clearly shows the effects of numerical dispersion, the finer calculation (\(\Delta x = 0.001\)) achieves very good agreement with the exact solution. Figure 9 shows the effluent concentration flux curve for this example. The point \(x_0\) reaches the outlet at \(t = t^* + L/U = 3.5\) and \(C \equiv 0\) afterwards. We note that increasing or decreasing the Damkohler number \({\kappa L} / v\) in these plots would lead to a higher or lower concentration profile, respectively. Analogous to this “vertical” effect of the Damkohler number, the ratio \(\Pi _0 / C_\mathrm{s}\) affects the profiles “horizontally.” Very low values of \(\Pi _0 / C_\mathrm{s}\) result in \(U \approx v\), so that the new region is very narrow and could be confused with a shock discontinuity. On the other hand, very high values of \(\Pi _0 / C_\mathrm{s}\) stretch this region considerably (since then \(U \ll v\)).

Fig. 8
figure 8

Analytical and numerical C and \(\Pi \) profiles at \(t = 1.5\)

Fig. 9
figure 9

Effluent concentration flux

8 Conclusion

In this paper, we have explored the properties of a simple model for the kinetic precipitation of scale inhibitor. It was assumed that a finite amount of scale inhibitor (\(\Pi = \Pi _0\)) was uniformly distributed along a rock core of length L, containing a mixture of water and scale inhibitor at equilibrium solubility (\(C=C_\mathrm{s}\)). Fresh water (\(C=0\)) was then injected into the core at a constant flow rate Q. This process can be described by the non-homogenous, coupled system of Eqs. (4) and (5) involving the source term \(\kappa \left( {{C_\mathrm{s}} - C} \right) \cdot H\left( \Pi \right) \). The Cauchy problem with \(C\left( {x,0} \right) ={C_\mathrm{s}}\), \(C\left( {0,t} \right) = 0 \) and \(\Pi \left( {x,0} \right) = {\Pi _0}\) was solved by construction of a weak solution consisting of four components. The key feature of this solution is a moving boundary \(x = x_0(t)\) dividing the domain \(\Omega \) into regions \(\Omega _1\) (where \(\Pi \le 0\)) and \(\Omega _2\) (where \(\Pi > 0\)).

The boundary velocity U was determined using the assumption that the relationship expressed in Eq. (29) is invariant when going from \(\Pi > 0\) to \(\Pi \le 0\). In the particular case studied in this paper, we found that U is constant and less than the fluid velocity v. But this is not true in general. In Stamatiou and Sorbie (2018a, b), we will encounter a more complex example with non-constant boundary velocity \(U = U(x,t,C)\) such that \(U < v\) in some regions and \(U > v\) in others. This will lead to the kind of interaction between the solutions in \(\Omega _1\) and \(\Omega _2\) we described in Sect. 6 for the case of constant velocities.

It was shown that the weak solution C(xt), \(\Pi (x,t)\) is physically correct in the sense that the total amount of scale inhibitor is conserved. This was done by explicit integration of the concentration flux through \(x=L\). Although this approach is certainly sufficient, it begs the question as to whether the correct velocity U can in fact be derived by requiring the solution to satisfy mass conservation. This remains an unsolved question.

An example with specific parameter values was calculated in which near perfect agreement between the numerical and analytical solutions was achieved.

The present case is very interesting in its own right. It examines the non-trivial effect of a discontinuity in one of the equations defining the system. However, the solutions derived in this paper can be considered as the base case solutions to a more complex problem in which the assumption of a single flow rate is relaxed. In laboratory experiments, the flow rate is often changed after a shut-in period during which there is no flow at all. In order to describe this with the present linear model, we must introduce a time-dependent expression for the fluid velocity v. This changes the setup of the problem and, as we shall explore later (Stamatiou and Sorbie 2018a), leads to a rather more complex analytical solution. Furthermore, we will also show that the finite precipitate (\(\Pi _0\)), variable rate model can also be solved in the presence of an equilibrium nonlinear (Langmuir) adsorption (Stamatiou and Sorbie 2018b).