One of the challenging problems in mathematical geosciences is the determination of analytical solutions of nonlinear partial differential equations describing transport processes in porous media. We are interested in diffusive transport coupled with precipitation-dissolution reactions. Several numerical computer codes that simulate such systems have been developed. Analytical solutions, if they exist, represent an important tool for verification of numerical solutions. We present a methodology for deriving such analytical solutions that are exact and explicit in space and time variables. They describe transport of several aqueous species coupled to precipitation and dissolution of a single mineral in one, two, and three dimensions. As an application, we consider explicit analytical solutions for systems containing one or two solute species that describe the evolution of solutes and solid concentrations as well as porosity. We use one of the proposed analytical solutions to test numerical solutions obtained from two conceptually different reactive transport codes. Both numerical implementations could be verified with the help of the analytical solutions and show good agreement in terms of spatial and temporal evolution of concentrations and porosities.
If you can't find a tool you're looking for, please click the link at the top of the page to "Go to old article view". Alternatively, view our Knowledge Base articles for additional help. Your feedback is important to us, so please let us know if you have comments or ideas for improvement.
 Numerical simulations are an important tool widely used to assess the mechanisms of reactive transport processes in geochemical environment. Particularly challenging from the computational point of view are the simulations of systems in which precipitation and/or dissolution reactions led to significant changes of porosity in the media. Strong porosity changes typically observed at interfaces of engineered technical barriers and natural rock formations with different geochemical characteristics, e.g., clay and cement interfaces [Marty et al., 2009; Kosakowski et al., 2009; De Windt et al., 2004]. Mineral precipitation in aquifers and reservoirs change their transport properties significantly and may lead eventually to complete clogging of the pore space [Saripalli et al., 2001]. The porosity reduction for example at claystone/concrete interfaces has been experimentally reported by Read et al.  as well as from small scale diffusive experiment using cement paste [Sarott et al., 1992]. Similar processes have been observed at the Maqarin site in Jordan, a natural analog for cement/clay interactions at which hyperalkaline groundwater interact with marl formations [Smellie, 1998].
 Several numerical computer codes dealing with precipitation-dissolution reactions and porosity changes in multidimensional reactive transport problems have been developed over last decades, for example HYTEC [van der Lee and De Windt, 2001; van der Lee et al., 2003; van der Lee, 2005], TOUGHREACT [Xu et al., 2004, 2006, 2011], PHREEQC [Parkhurst and Appelo, 1999], MIN3P [Mayer et al., 2002], PHAST [Parkhurst et al., 2002], CRUNCH [Steefel, 2001]. These codes and others have been continuously cross benchmarked [De Windt et al., 2003; Carrayrou, 2010; Carrayrou et al., 2010a, 2010b]. Although the agreement between codes is satisfactory, it is shown that the numerical methods used in solving the transport equations, i.e., finite differences, finite elements, mixed-hybrid finite elements, and the sequential coupling schemes, i.e., the sequential noniterative approach, the sequential iterative approach and the global implicit approach, may lead to systematic discrepancies. Moreover, because of their inability to describe subgrid pore space changes correctly, the numerical approaches predict discretization-dependent values of porosity changes and clogging times [Marty et al., 2009]. In this context, analytical solutions become an essential tool to verify numerical solutions.
 Mass transport influenced by precipitation-dissolution reactions via changing porosity can be represented mathematically by a nonlinear system of partial differential equations. In contrast to conservative mass transport which is described by a linear system of partial differential equations, such systems are not trivial to solve. Analytical solutions for transport of reactive solutes involving precipitation-dissolution reactions are available in the case of constant porosity. Lichtner et al.  proposed analytical and numerical solutions to the moving boundary problem resulting from reversible heterogeneous reactions and aqueous diffusion in a porous medium. De Simoni et al. [2005, 2007] presented a methodology to compute homogeneous and heterogeneous analytical reaction rates directly under instantaneous equilibrium. Donado et al.  extended this approach to the multirate mass transfer equation. Analytical expressions for solute concentrations and reaction rates associated with a multispecies reactive transport problem in the presence of both kinetic and equilibrium chemical reactions are developed and presented by Sánchez-Vila et al. .
 However, analytical solutions for problems coupled with porosity changes are very few. The only available works on this topic are the two recent works of Lagneau and van der Lee  and Hayek et al. . Lagneau and van der Lee  proposed an analytical solution for a one-dimensional system containing one species and one mineral. This analytical solution was obtained on the basis of Fourier series and was used to verify numerical solution obtained from the numerical computer code HYTEC. They obtained good agreement between the analytical and the numerical solutions for small porosity changes far away from pore space clogging. However, this analytical solution cannot be applied to systems with strong porosity changes, in which a complete clogging of the pore space takes place. Recently, Hayek et al.  presented new analytical solutions for one-dimensional diffusion problems coupled with one precipitation-dissolution reaction and strong feedback of porosity change for a system contained two aqueous species where the concentration of one species is fixed in time. Their solutions describe a system that contains two aqueous species where only one species is mobile. These solutions were obtained by using the original method of simplest equation [Kudryashov, 2005a, 2005b]. The proposed solutions are exact and do not contain any approximation. They can be used to describe systems with strong porosity changes and especially systems which reach clogging.
 In this paper, a general methodology is developed to derive analytical solutions for one-, two-, and three-dimensional diffusive transport coupled with precipitation-dissolution reactions and porosity changes. These solutions can be used to simulate systems containing multiple aqueous species and a single solid phase. To our knowledge, the analytical solutions proposed here are the first dealing with transport of reactive species coupled with precipitation-dissolution reactions and porosity changes in several dimensions. The method of the simplest equation [Kudryashov, 2005a, 2005b] used by Hayek et al.  to derive the analytical solutions for one-dimensional problems was applied here to solve the nonlinear transport equations in two and three dimensions. The obtained analytical solutions describe spatial and temporal evolutions of solute concentrations, porosity, and mineral distribution for a set of initial and boundary conditions. The main purpose of the derived solutions is in verification numerical reactive transport codes for systems with strong porosity changes.
2. Governing Mathematical Equations
 We consider a porous medium with porosity defined in a bounded domain where d = 1, 2 or 3, and if d = 1, if d = 2 and if d = 3. The porous medium consists of a solid reacting with an aqueous solution. Solid-fluid interaction is described by reversible reaction (1)
where Bi is the ith solute species, equal to the number of moles of the ith species in one mole of solid, and N is the total number of solute species.
 The mass conservation equation for transport of the ith species is obtained by applying the general diffusion-reaction equation [Bear, 1972; Lichtner, 1996], which yields
where is the concentration of the ith species (mol m−3), (mol m−3 s−1) is the rate of the reaction (1). (mol m−2 s−1) represents the diffusive flux of the ith species which is given by Fick's law
 The conservation law for solid phase requires that the porosity satisfies the equation [Lichtner, 1996]
where Vm is the molar volume of solid (m3 mol−1). Since the system contains one solid phase, the change in volume can be described by the equation (see Appendix D)
where denotes the concentration of the solid phase (mol m−3 of fluid), and and are the initial distributions of the porosity and the concentration of solid, respectively.
 Using equation (4), the reaction rate can be eliminated from equation (2), which leads to the following system of equations:
The system of equations (6) represents N partial differential equations with N + 1 unknowns and , respectively. To close this system, a supplementary equation for the reaction rate has to be provided. We describe the rate law for precipitation and dissolution of the solid phase O(s) using [Lichtner, 1996]
where k is the kinetic rate constant (mol m−2 s−1), is the solid phase reactive surface area per unit volume of rock (m2 m−3) and K is the solubility constant of the mineral. Reaction rate laws of the form (7) have been used in many numerical codes for modeling reactive transport problems [Trotignon et al., 2007; Palandri and Kharaka, 2004; Soler, 2003; van der Lee, 2005]. We denote that when the product is smaller, larger, or equal to K, the aqueous solution is undersaturated, supersaturated, or in equilibrium, respectively, with respect to the solid at location x and time t.
 Information relative on the evolution of the pore structure is composed of the surface area . For simplicity, we assume , where S0 is the specific surface area of the solid phase. More complicated relationships can be found in [Saripalli et al., 2001; Noiriel et al., 2004, 2007].
 Using equation (4) to eliminate from equation (7), we obtain the supplementary equation, which relates the N + 1 unknowns of the system
The reactive transport system is governed by equations (6) and (8). The boundary conditions corresponding to these equations can be of both Dirichlet and/or Neumann types. The initial conditions for the species concentrations are defined as
where are functions of the space variable. The porosity is assumed to be initially known:
Equations (6) and (8) with the specified boundary and initial conditions provide a closed system of N + 1 partial differential equations with N + 1 unknowns, which are the concentrations of N solutes and the porosity . Once these equations have been solved, the solid concentration can be determined from equation (5).
3. The Transformed Problem
 We introduce the following new dimensionless variable (which we call the wave variable) in order to rewrite the system of equations (6) and (8) in a simple form:
where and are nonzero constants to be determined later and which may depend on the parameters of the problem. Using the transformation (11), it is assumed that a solution exists, which is expressed as
In equations (12) and (13), we use and rather than and to avoid any nomenclature confusion. Substituting (12) and (13) into (6) and (8) along with (11), we obtain a set of ordinary differential equations
 The system of equations (16) represents a system of N ordinary differential equations in the N unknown functions . When an exact solution (i = 1, … , N) of system of equations (16) is found, the porosity can be easily determined from equation (15). Indeed, equation (15) is a first-order ordinary differential equation in , which can be solved straightforwardly, and we obtain
where and are two arbitrary constants. Details of the derivation of the porosity functions are given in Appendixes B and C.
 The analytical solution of the mineral concentration can be obtained from equation (5) once the porosity function is determined. For simplicity we neglect the mass fraction of the inert solid. In this case we have . Therefore, from equation (5) we get the analytical expression of the mineral concentration as follows:
 The transformation (11) is a pure mathematical construction which enables the partial differential equations (6)–(8) to be solved analytically. The transformation (11) obviously results in special form of the admissible solutions as well as limits the corresponding initial and boundary conditions. This transformation however does not change the underlying physical nature of the transport problem which is entirely defined by the original system of PDEs.
4. The Analytical Solutions
 In order to derive the analytical solutions for the concentrations of solutes described by the system of equations (16), we apply the simplest equation method to each one of these ordinary differential equations.
 Following the simplest equation method, we assume that the concentration of the ith species can be written as
where the coefficients are all constant to be determined and Mi are unknown integers to be determined also, which represent the degrees of series (19).
4.1.1. Determination of the Degrees Mi
 The degrees Mi of the series defined by (19) can be determined by inserting the Bernoulli equation (A3) into each one of the equations of system (16) and balancing the high-order (in Y ) linear term with the high-order nonlinear term in each one of these equations. In other words we balance the order in Y of (the high-order linear term), Mi + 2m − 2, with the order in Y of (the high-order nonlinear term), . We obtain
The use of the Bernoulli equation (A3) with arbitrary order of nonlinearity m is essential to our problem. Indeed, since we know the general solutions, i.e., solutions (A4), (A5), and (A6), for every m > 1, we are free to choose any value of m. In particular, if we choose m equal to 1 plus the total number of moles of the solute species reacting to produce 1 mole of solid according to reaction (1),
It is clear that for Mi equal to unity, equation (22) holds for any value of the stoichiometric coefficients of the solute species. Thus, we have
Therefore, using (23) and (19), the solute species concentrations are defined as
4.1.2. Determination of the Coefficients Aαi
 The coefficients as well as the parameters a, b, , and can be determined by inserting (24) into each equation of the system of equations (16). Each equation is transformed to a polynomial in Y denoted by Pi(Y ). By eliminating all the coefficients of these polynomials, we obtain a system of overdetermined algebraic equations of a, b, , , and (i = 1, … , N), respectively. Therefore, the obtained system can be solved analytically with the help of packages for computer algebra like Maple and Mathematica.
 In section 4.2 we apply this methodology to derive analytical solutions for systems contained one species and two species, respectively. This methodology can be easily extended to systems contained more than two solute species. For sake of simplicity we assume that the stoichiometric coefficients of the species are all equal to unity.
4.2. Derivation of Analytical Solutions for Single-Species Systems (N = 1)
 We consider first a system containing a single aqueous species B which reacts with the solid phase according to
In this case the species concentration is defined by (24) for N = 1
Therefore, d + 5 unknowns should be determined A01, A11, a, b, , and λ, respectively. Since the stoichiometric coefficient of the species B is equal to 1 (i.e., ), then from (21) we take m = 2 in the Bernoulli equation (A3). Substituting (26) into (16) for N = 1 we obtain a polynomial in Y denoted by P1(Y). Eliminating all the coefficients of this polynomial, we obtain the following system of overdetermined algebraic equations of A01, A11, a, b, , and
 System (27) is a system of four algebraic equations with d + 5 unknowns. Solving this system using Maple we obtain three exact solutions of system (27) denoted , , and , respectively
where and . The plus-minus sign means that both plus and minus can be taken into account. The minus-plus sign must always be taken as the opposite of the plus-minus sign. Each solution of system (27) gives a set of analytical solutions for the solute concentration, the porosity and the solid concentration as follows.
4.2.1. Analytical Solutions Obtained From (S1)
 In this case the wave variable is defined by
In (S1) we have b = 0. Therefore, in equation (26) we use the solution defined by (A6). Therefore, the concentration is defined by
where is an arbitrary constant (i.e., obtained by combining A11 and ). The analytical solution of the solute concentration is obtained by simply substituting (28) into (29):
 The porosity function is calculated by using equation (B6), which gives, after using (S1) and (28) and reducing the number of arbitrary constants to the minimum,
By substituting (31) into (18) we get the analytical solution of the solid concentration:
4.2.2. Analytical Solutions Obtained From (S2)
 In this case the wave variable is defined by
We assume in (S2) because when b = 0 we have A11 = 0 in (26) and then the solute concentration is constant. Therefore the solutions (A4) and (A5) should be used (with m = 2) for in (26).
 If b > 0 then we take in (S2) and we use solution (A4) for in (26). Consequently, equation (26) becomes
 If b < 0 then we take in (S2) and we use solution (A5) for in (26). Consequently, equation (26) becomes
 By combining (34) and (35) and using (33), we obtain the analytical solution of the solute concentration
where and is an arbitrary constant obtained by combining b and .
 The analytical solution of the porosity is obtained by simply substituting the parameters of (S2) into equation (B6) and reducing the number of arbitrary constant to the minimum. We get
 Substituting (37) into (18), we obtain the analytical solution of the solid concentration
 It is important to mention that the analytical solutions derived from (S2) are only valid for 1 − KVm > 0. However, this condition holds for a wide range of minerals [see, e.g., Piantone et al., 2006]. Moreover, since the main objective of these analytical solutions is verification of numerical codes, the users can always choose the parameters in such a way that this condition holds even if these parameters do not represent real mineral parameters.
4.2.3. Analytical Solutions Obtained From (S3)
 In this case the wave variable is defined by
As in the previous case, we assume that and then we use the solutions (A4) and (A5) for in (26). With solution (A4) we get the following concentration:
for , and
for . Combining equations (40) and (41) and using (39), we get the analytical solution of the solute concentration as follows:
where is an arbitrary constant obtained by combining b and .
 Since , the analytical solution of the porosity is determined by using equation (B6). Substituting (S3) into (B6) and using (39), we obtain the following analytical solution for the porosity after reducing the number of arbitrary constant to the minimum
 We deduce the analytical solution of the solid concentration by substituting (43) into (18):
4.3. Derivation of Analytical Solutions for Two-Species Systems (N = 2)
 We consider now the case of two solute species where the immobile solid mineral dissolves reversibly to yield ions B1 and B2:
A large number of solids and minerals can be described by reactions of type (45). Such minerals include sulfates, carbonates and others. The concentrations of the two species are defined by (24) with N = 2:
 The solution of the Bernoulli equation is obtained from (A4) and (A5) for m = 3 since (see equation (21)). Therefore we have to determine A01, A11, A02, A12, a, b, and . Inserting (24) into (16) with N = 2 along with (A3) we obtain two polynomials in Y. By eliminating all the coefficients of these polynomials we come by the following nonlinear system of algebraic equations in the unknowns A01, A11, A02, A12, a, b, , and :
 Solving this system analytically with the help of maple, we obtain the following solution:
where . Each solution of system (47) gives a set of analytical solutions for the solute concentration, the porosity and the solid concentration as follows.
4.3.1. Analytical Solutions Obtained From (S1)
 In this case the wave variable is defined as in (28). We use (A6) for the definition of in (46) since b = 0. Substituting (28) and the parameters of (S1) into (46), we obtain the analytical solutions of the solute concentrations as follows:
where a1 and a2 are two arbitrary constants obtained by combining A11 and , and A12 and , respectively.
 The analytical expression of the porosity function is obtained by using equation (C8) since b = 0. Inserting (S1) into this later equation, we obtain, after reducing the number of arbitrary constants to the minimum,
 The analytical solution of the solid concentration is derived by substituting the porosity (50) into (18), which gives
4.3.2. Analytical Solutions Obtained From (S2)
 In this case the wave variable is defined by
In (S2), b = 0 only if A12 = 0 which implies that A11 = 0. In this case, both solute concentrations are constants and these solutions are disregarded. Therefore, we assume . Consequently, the solutions (A4) and (A5) (for m = 3) must be used for in (46).
 Assume that a > 0 and b < 0, therefore and consequently (see a and b in (S2)). In this case, we use (A4) for , and we obtain
 If a < 0 and b > 0, therefore, and consequently (see a and b in (S2)). In this case, we use (A5) for , and we obtain
 By combining (53) and (54) and by using (52), we obtain the analytical solution of the concentration of species B1 as follows:
where is an arbitrary constant obtained by combining A12 and .
 The analytical solution of the concentration of species B2 is obtained by the same way, and we get
Equation (C6) should be used to calculate the analytical solution of the porosity since . Therefore, substituting (S2) into (C6) yields the following analytical solution of the porosity function after reducing the number of arbitrary constants to the minimum:
 The analytical solution of the solid concentration is derived by using (57) in equation (18), therefore
With the help of Maple, all the analytical solutions presented in this paper have been verified by putting them back into the original equations (6) and (8).
4.4. Specification of Initial and Boundary Conditions
 Unlike standard methods like Laplace transform methods or Fourier series methods, which are usually used to find analytical solutions for transport equations with predefined initial and boundary conditions, our approach consists in determining first the analytical (exact) expressions of the unknowns (concentrations and porosity). The initial and boundary conditions are then obtained from the exact expression of the solutions.
 In sections 4.2.1, 4.2.2, and 4.2.3 we presented three sets of analytical solutions for the case of single-species systems. The first set is defined by equations (30), (31), and (32), the second set is defined by equations (36), (37), and (38), and the third set is defined by equations (42), (43), and (44). In a similar way we obtained two sets of analytical solutions for the case of two-species systems. The first one is defined by equations (48), (49), (50), and (51), and the second one is defined by equations (55), (56), (57), and (58). All these sets of analytical solutions can be applied for the three dimensional spaces (d = 1, 2 or 3). For d = 1 we simply substitute and we get the analytical solutions for the one-dimensional space. In the case d = 2 we substitute and we obtain the solutions for the two-dimensional space. For the three-dimensional space (d = 3) , , and should be different from zero. It is important to mention that each set of analytical solutions implies specific initial and boundary conditions (e.g., the initial and boundary conditions corresponding to the solutions (30), (31), and (32) are different from that of solutions (36), (37), and (38)). Therefore, each set of analytical solutions describes different transport regime. According to the requirements those set of analytical solutions together with the corresponding initial and boundary conditions has to be used. The initial conditions are then obtained for t = 0 from the analytical solutions; this yields space-dependent initial conditions. Time-dependent boundary conditions can be specified by substituting the boundary coordinates. For 1-D problems (d = 1) defined on the interval [0, L], two boundary conditions have to be specified at x1 = 0 and x1 = L. For 2-D problems defined on a square [0, L] × [0, L] and 3-D problems defined on a cube [0, L] × [0, L] × [0, L] a similar procedure can be applied for x1, x2, and x3, respectively. Further details about the definition of initial and boundary conditions are provided to the reader in the example in section 5.
 Section 5 is devoted to the applications of the analytical solutions for benchmarking of numerical codes. We use one of the proposed solutions and we will show how such solution can be used to simulate precipitation and/or dissolution of a solid phase. We discuss the ability and the limitations of the analytical solutions and we compare them to numerical solutions obtained with two conceptually different reactive transport codes.
5.1. A 2-D Example of a Two-Species System
 We consider a 2-D system defined on , consisting of two aqueous species B1 and B2 in equilibrium with a solid phase according to reaction (45). For this example, we use the analytical solutions obtained from solutions (S1) of section 4.3. Therefore, the solute concentrations of species B1 and B2 are defined by equations (48) and (49), respectively, and the porosity function is obtained from equation (50) with d = 2 and . For and for t > 0, the solute concentrations of species B1 and B2 and the porosity evolve in space and time according to
The solute concentrations are assumed to be known at the boundaries of the computational domain (Dirichlet boundary conditions):
 The initial concentrations are defined by
 The initial spatial distribution of the porosity is described by the following function
The system (59) with the associated boundary and initial conditions (60)–(65) can be used to simulate different precipitation and/or dissolution scenarios by varying the parameters of the problem.
5.1.1. Precipitation of Mineral: Clogging System
 In this example, we parameterize the system in such a way that precipitation of a solid phase from supersaturated aqueous solution (i.e., c1c2 > K) reduces porosity toward zero. As we see in the system of equations (59) the product c1c2 is independent of K. Therefore, it is easy to choose the parameters in Table 1 such that c1c2 > K. In order to avoid very high concentrations (see the definitions of c1 and c2 in system (59)) at the beginning of the system evolution, the molar volume was set to unity. Such high molar volume is normally not found in reality but it allows to apply the analytical solution for benchmarking numerical codes for the case of strong porosity decrease. We could have chosen a realistic value for the molar volume, but this would result in very high solute concentrations which are also unrealistic. The other parameters are chosen in such a way that the porosity function takes physical values. Mineral solubility constants can be taken from general thermodynamic databases like THERMODDEM [Piantone et al., 2006].
Table 1. System Parameters of the Precipitation Example
D0 (m2 s−1)
S0 (m2 m−3)
Vm (m3 mol−1)
k (mol m−2 s−1)
 We show the spatial evolution of the product c1c2 in units of mol2 dm−6 for successive times in Figure 1. By definition of c1 and c2, this product increases exponentially at the lower left corner of the computational domain which is accompanied by a corresponding porosity decrease, as shown in Figure 2. The initial porosity distribution in Figure 2a is not constant in space. We have chosen the parameter values such that the porosity values range from 0.2 at (0, 0) to nearly 0.25 at (1, 1). The porosity value at the lower left corner is fixed by an appropriate choice of the parameter in Table 1. For early times, the porosity at the lower left corner decreases slowly and for larger times, porosity decreases exponentially. At time t = 15 × 106 the porosity reaches 5.3 × 10−4 which in reality would result in clogging the medium (see Figure 2c). The choice of initial concentrations is such that, without kinetic control, precipitation of the mineral would immediately decrease the porosity to zero within the whole domain. With kinetic control, the porosity is decreasing slowly everywhere. At the lower left corner, the concentrations are increased exponentially which cause a faster porosity reduction there. Because of the oversaturation of the two solutes, the porosity reduction causes an additional exponential concentration increase. This is a self-accelerating clogging process, as higher concentrations increase porosity reduction which increases concentrations even more. Increasing concentration gradients drive diffusive transport of solutes into regions of lower concentrations which causes the propagation of clogging front with constant speed (see Figure 3, which shows concentration c1 of species B1 and its absolute diffusive flux along the diagonal of the computational domain). The process continues even after clogging. In this case the advance of the solid front is driven solely by the exponential concentration increase and accelerating diffusive transport because of increasing concentration gradients (see Figure 4). The propagation of the clogging front is faster than the purely kinetically controlled porosity decrease in the whole domain.
 Clearly, by changing the arbitrary parameters in the analytical solutions (i.e., like a, a1, a2, and in system (59)) we obtain different shapes of the analytical solutions. As an example, we show in Figure 5 the effect of the parameter a. Note, how the porosity front gets steeper as increases. In numerical methods which require spatial discretization (i.e., finite difference, finite volume, finite element, etc.) steep fronts give rise to numerical diffusion or dispersion. The analytical solutions with large can be used to investigate such problems.
5.1.2. Precipitation and Dissolution of a Mineral
 In this example, we present by changing input parameters a system where precipitation and dissolution of a mineral occurs. Again, the system involves two aqueous solute species with concentrations c1 and c2 and one mineral phase. Compared to the first example, we change only the values of the solubility constant K and the kinetic rate constant k (see Table 1). Since both concentrations c1 and c2 are independent of K and k, the concentrations profiles are the same as in the previous example. Figure 6 shows the porosity evolution with time.
 The initial porosity values in Figure 6a range from 0.2046854748 at the lower left corner at (0, 0) to quasi-zero value at the upper right corner at (1, 1). For time t = 0, the product c1c2 is smaller than the solubility constant K (i.e., ). Therefore, dissolution of mineral takes place at the lower left corner and consequently, porosity increases in this region (see Figures 6b and 6c). The maximal porosity value of is reached at time = 8.247918176 × 106 s, where verifies . For , we have and the product c1c2 becomes larger than K which causes porosity decrease. For large times, this system reaches clogging. In other locations of the computational domain only dissolution (porosity increase) takes place, for example, at location (0.3, 0.3). Figure 7 shows the temporal evolution of the porosity at locations (0, 0) and (0.3, 0.3), respectively.
 As a conclusion, the analytical solutions (59) can be used to simulate different scenarios of precipitation and/or dissolution of minerals including strong decrease in porosity (i.e., clogging) by changing the system parameters.
5.2. Comparison With Numerical Solutions
 In section 5.2, we use the example of a clogging system (section 5.1.1) for benchmarking of two conceptually different numerical solvers OpenGeoSys-GEMS and COMSOL Multiphysics.
 OpenGeoSys-GEMS [Shao et al., 2009a, 2009b] is a multicomponent reactive transport code which employs the sequential noniterative approach (SNIA) to couple the mass transport finite element code OpenGeoSys (http://www.ufz.de/index.php?en=18345) [Wang and Kolditz, 2007] with the Gibbs Energy Minimization Software GEMS-PSI (http://gems.web.psi.ch) [Karpov et al., 2001] for thermodynamic modeling of aquatic geochemical systems. Kinetically controlled precipitation and dissolution of mineral phases can be enforced in GEMS-PSI by fixing the phase mole amounts to desired values and calculating the partial equilibrium for the chemical system with constraints. Kinetic control of precipitation-dissolution reactions in the coupled code is implemented by a (time) stepwise change of partial equilibrium constraints according to equation (7) of Palandri and Kharaka . For the benchmarking, this implementation was simplified to , where and are the mole amounts of the kinetically controlled mineral phase at current and last time step, respectively. is the time step length and Q is the mineral saturation index which is the activity product of the reactants divided by the equilibrium constant of reaction. Q is not calculated directly, it is retrieved from the GEMS solution. If activity corrections are ignored (activity coefficients are unity) the activity product corresponds to the concentration product as in equation (8).
 COMSOL Multiphysics (http://www.comsol.com/products/4.2/) is a commercial finite element simulation package widely used in various physical and engineering applications. COMSOL solves the partial differential equations directly without operator splitting using an implicit time discretization scheme.
 The dimension of the domain, the initial and boundary conditions are described in section 5.1.1. In summary, we consider a 2-D rectangular domain (1 m × 1 m) (see Figure 8), time-dependent Dirichlet boundary conditions as defined by (60)–(63) and initial distributions of concentrations and porosity as defined by (64) and (65). Parameters of the system are summarized in Table 1. For the spatial discretization, we used an unstructured triangular mesh with 738 elements and 406 nodes (Figure 8). The mesh is refined at the lower left corner since we expect the steepest concentration and porosity gradients in this region during the simulation. The final simulation time is 15 × 106 s. For OpenGeoSys-GEMS, a constant time step equal to 104 s is used which respects the Neumann criterion [Sousa, 2003; Hindmarsh et al., 1984] (i.e., ) needed to ensure a physically correct solution, where h is the mesh size. COMSOL uses mainly implicit methods for the time integration. However, an explicit solver is available that uses the Runge-Kutta method for solving time-dependent problems with explicit time stepping. There are two methods available for solving time-dependent problems: the IDA and the generalized method. IDA was created at the Lawrence Livermore National Laboratory [Hindmarsh et al., 2005] and uses variable-order, variable–step size backward differentiation formulas (BDF). The BDF is a robust method which is commonly used for a broad variety of numerical problems; the generalized method is well suited for solving structural mechanics problems but can also be applied for other applications. Generalized method is an implicit and second-order-accurate method where with the help of a control parameter high frequencies can be damped. For the present problem, the BDF method was used with a maximum order of four and using adaptive and unrestricted time steps.
 The numerical and analytical solutions are compared along the diagonal of the computational domain (see Figure 8). Figure 9 shows the comparison of the porosities along the first 30 cm of the diagonal for successive times. Absolute values of porosities obtained in the numerical simulations agree well with the analytical solution. In Figure 10, we plot the relative error in predicted porosity at time 15 × 106 s at which the system reaches clogging (i.e., ). The relative error in porosity (RE) is computed using the following formula:
where and are the analytical and numerical solutions, respectively. In Figure 10, we show the relative error in porosity for three different time steps for OpenGeoSys-GEMS. The larger time step s violates the Neumann criterion and the smaller time steps s and s satisfy this criterion. As we see in Figure 10, the relative error is very large (around 40%) when the time step violates the Neumann criterion. This relative error is improved when the time step satisfies the Neumann criterion and decreases for smaller time steps. The relative error is much smaller for COMSOL which uses an adaptive time-stepping technique. We believe that the bigger relative error in OpenGeoSys-GEMS can be attributed to operator splitting errors [Carrayrou et al., 2004].
 In this paper, a general method is presented to derive analytical solutions for multidimensional diffusive transport equations of any number of solute species coupled with precipitation-dissolution reaction and porosity changes. The methodology consists in converting the system of multidimensional partial differential equations to a system of ordinary differential equations by making use of a special transformation. The system of ODEs is then solved by the simplest equation method. The details of calculation for the cases of one and two-species systems are illustrated by deriving explicit analytical solutions for the solutes and solid concentrations, and the porosity. The methodology is flexible and can be extend to systems containing arbitrary number of species. The derived analytical solutions are exact and do not contain any approximation. We showed through a 2-D example of analytical solutions the ability and limitations of the proposed analytical solutions. The analytical solutions contain a number of arbitrary constants which allow these solutions to be tuned to simulate different precipitation and/or dissolution problems with strong porosity changes. The transformation (11) used to solve the system of transport equations leads to a special form of the initial and boundary conditions which are not typical for natural system. Still these are the exact solution of PDEs which describe natural transport processes. Therefore the primary application of the presented solutions is for benchmarking of transport codes. These solutions were used for verifying numerical solutions obtained from the reactive transport code OpenGeoSys-GEMS and the COMSOL Multiphysics software.
Appendix A:: The Simplest Equation Method
 We review the simplest equation method used to determine the solute concentrations as presented by Hayek et al.  and Kudryashov and Loguinova . This method provides exact analytical solutions for nonlinear ordinary differential equations in the form
where P is a polynomial in the unknown variable and its derivatives. The main idea of this method is to assume that the solution of equation (A1) can be expanded in polynomial (finite series) of the form
where the coefficients Ak are independent of to be determined, M is an integer to be determined and is a function which verify some ordinary differential equation. This ordinary differential equation is called the simplest equation. The order of admissible simplest equation is less than of equation (A1). In order to express the exact solutions of equation (A1) as finite series (A2), the general solution of the chosen simplest equation has to be known.
 In this work, the Bernoulli equations are used as the simplest equations:
where a and b are two constants and m is an integer such that m > 1.
 The Bernoulli equation (A3) has the following general solutions:
for the case a > 0, b < 0,
for the case a < 0, b > 0, and
when b = 0. Above is a constant of integration.
Appendix B:: Calculation of the Porosity Functions for the Case of Single-Species Systems