3.3 Numerical Implementation3.3.1 Vadose Zone LeachingThe governing solute transport equation (3.12) is solved using the finite difference method. Differential equations dealing with liquid contaminant concentration Cw as a function of time and depth are converted into the finite difference equations dealing with the corresponding variable Cik centered on time between two time steps: where Dt is the time increment, the subscript i refers to the discretized soil column cell and the superscript k refers to the time level. The subscript w is dropped for simplicity. The first derivative by depth z at time step k becomes which is converted into the form centered on time between time steps k and k+1:The second derivative by depth z becomes In the same way, this is converted into the form centered between two time steps: From equation (3.29), By substituting equations (3.28), (3.30), (3.32), and (3.33) in equation (3.12),for 2<i<(n-1), and k = 1, 2, ���. If we define the dimensionless constants Mi, Mi', Ni, Ni', and Li as: equation (3.34) can be rewritten as: Initial and Boundary ConditionsBy specifying the appropriate boundary conditions at both ends of the soil column, the n or (n-1) simultaneous equations can be solved for the value of C at each node for the future time level t{k+1}. The finite difference form of the initial condition for the liquid phase solute concentration isor The finite difference forms of the top boundary conditions equations 3.15 through 3.18) for the soil column are: First Type Top Boundary Condition, Third Type Top Boundary Condition (see Appendix C for derivation), where and M, N, and L were defined in equation (3.35). The second type bottom boundary condition is used in this model as follows: Note that as indicated in the section 3.2.1, equation (3.41) is supposed to be applied at the distance of z = . This finite column length will cause somewhat higher concentration estimation at longer times near the end of the column. To reduce this finite boundary effect, dummy cells can be added at the bottom of the column either by changing input file or the source code. When the source code is modified, estimated concentration at the water table (n-dummy cells) should be used in calculation of saturated zone mixing. The finite difference forms of simultaneous equations (3.32 through 3.41) are computer coded in C++ to solve for the value of Cik+1 by the Thomas algorithm (Press et al., 1992). Numerical StabilityOften, the efficiency of a numerical technique is limited due to the instability, oscillation, and mass-balance problems. Several methods have been proposed to determine the stability criteria of finite difference calculation (e.g., Fourier expansion method, matrix method, and other, [Hirsch, 1989]). The Fourier expansion method, developed by von Neumann, relies on a Fourier decomposition of the numerical solution in space neglecting boundary conditions. It provides necessary conditions for stability of constant coefficient problems regardless of the type of boundary condition (Mitchel and Griffiths, 1980). The matrix method, however, takes eigenvectors of the space-discretization operator, including the boundary conditions, as a basis for the representation of the spatial behavior of the solution (Ames, 1997; Hirsch, 1989). Based on the von Neumann method, Crank-Nicolson scheme of finite difference equation (Equations 3.28 through 3.34) can be derived as: According to the stability criteria expressed in equations (3.42) and (3.43), it is clear that the combined dispersion coefficient (D) must be greater than zero. In natural soil conditions, it is rare to have a value of D as zero or close to zero. Specifically, if there is downward infiltration in the vadose zone, hydrodynamic dispersion of contaminant is inevitable. In addition, the air diffusion coefficients of selected organic compounds (in Appendix B) are must greater than zero. Note that the numerical criteria presented in equations (3.42) and (3.43) are general guidelines and may not work for all situations. To ensure a stable result, the output should be checked thoroughly. If the results show any oscillation or negative concentration, a smaller time step and/or cell size than the values from the above equations should be tried. After having "stable" results, additional runs are recommended to check convergence of the simulation results. In this case, even a smaller time step and/or cell size can be used to check whether the solution converges or not. 3.3.2 Saturated Zone MixingThe saturated zone mixing equation (3.21) is computer coded in the second part (saturated zone mixing) of the VG program. The calculation results versus time will be showed in a graphic outputs on the second part of the VG program. Based on the mass balance principle of equation (3.21) and Figure 3.6, the mixed concentration is estimated as: Note that the last term in the above equation is the same as Cmx(i) in "Mixed Concentration in Groundwater" output data of the second part of the VG program. Similarly, mixed concentrations at the subsequent elements can be estimated easily.
3.3.3 Groundwater Flow SystemFinite Differences MethodFor many problems, the assumptions that must be made to obtain an analytical solution such as Toth's (1962) will not be realistic. In this case, we must resort to approximate methods using numerical techniques in order to solve the equations in a model. The finite differences technique is a good approximation to transform differential equations that make up a model into a set of algebraic equations.
Numerical solutions yield values for only a predetermined, finite number of points in the problem domain.
By limiting our need to know the head to a reasonable number of points
N, we can convert a partial differential equation into a set of N
algebraic equations involving
N unknown potentials.
Consider a finite set of points on a regularly spaced grid (Figure 3.7). Lattice points are spaced horizontally by a distance Dx and vertically by a distance Dy. To locate any point in the grid, we specify an integer ordered pair (i,j). Relative to the origin (0,0) located in the upper left-hand corner, (i,j) is located at a distance of iDx in the positive x direction and jDy in the negative y direction. This indexing convention inverts rows and columns when compared with standard matrix notation. Calculation of the Head Values (Gauss-Seidel Iteration)The value of the head at the point represented by the indices (i,j) is hi,j. Let the Cartesian coordinates (x0,y0) be represented by (i,j). Along the horizontal line y = y0, consider a profile of head which has in succession the values hi-1,j, hi,j, and hi+1,j. In the finite difference approximation, derivatives are replaced by differences taken between nodal points.A central approximation to d2h/dx2 (x0,y0) is obtained by approximating the first derivative at [(x0+Dx)/2,y0] and at [x0,(y0-Dy)/2], and then obtaining the second derivative by taking a difference between the first derivatives at those points. That is, which simplifies to Similarly, According to Laplace's equation (2.21), the finite difference approximation for Laplace's equation at the point (i,j) simplifies to If the finite difference equation (3.49) were solved for hi,j, then where Dx and Dy are the length of x and y direction of cell. That is, the value of hi,j at any point is an weighted average value of head computed from its four nearest neighbors in the nodal array. Equation (3.50) is often called the five-point operator because the algebraic equations that approximate Laplace's equation are created one after another by moving the star of five points throughout the domain of the problem. Suppose we guess a set of trial answers and then successively improve our guesses until we get the right answer. In short, iterative methods consist of guessing and adjusting. In Gauss-Seidel iteration method, we work through the grid in an orderly way; that is, we start at i = 0 and j = 0 and sweep across from left to right and down line-by-line as if we were reading a page. In this way, we can always use two newly computed values in the iteration formula. Thus the Gauss-Seidel iteration formula is The change between two successive Gauss-Seidel iterations is called the residual c. The residual c is then defined by By replacing hi,jm with hi,jm+1 after each calculation, the Gauss-Seidel procedure liquidates or relaxes the residuals at every node and thus leads to a solution of each algebraic equation. Let us consider the left boundary. The finite difference approximation to dh/dx is For the left boundary, the point referred to by indices (i+1, j) is inside the problem domain, but the point referred to by indices (i-1, j) is outside. Therefore, we expand the finite difference problem domain by one additional column to the left by putting in a column of so-called imaginary nodes. The boundary condition dh/dx = 0 translates in finite difference form to hi+1,j = hi-1,j. That is, the value of head along the imaginary column must reflect across the left boundary. Thus, the left boundary is a symmetry line. The right and bottom no-flow boundaries are also handled by creating imaginary nodes. The top boundary has specified heads (Table 5.2) and, therefore, no imaginary nodes are needed along this boundary. Calculation of the Flow Rates and Flow LinesThe finite differences expression of equations (2.17) and (2.18) becomeswhich is used to calculate flow rates qx and qy at each grid point from head values h of neighboring grid points. The finite differences expression of equations (3.26) and (3.27) becomes In order to obtain flow function, V values from qx and qy based on equations (3.56) and (3.57), we use Gauss-Seidel iteration method as we did in this section to calculate the head values. The difference from this section is the boundary condition. Because we assume there is no-flow across left, right, and bottom boundaries, the flow function V should have a common value everywhere on those boundaries. Because that common value is arbitrary, we put V = 0 on those boundaries. Therefore, we initially put V = 0 at all the grid points and performed Gauss-Seidel iterations using equations (3.56) and (3.57) until residual error becomes below threshold. In the iteration process, the V values at the left, right, and bottom boundaries were kept 0, and the V values at all other grid points were optimized.
3.4 Program Structure and OperationAs seen in the computer program flow chart in Figure 3.8, the Vadose-Zone (VG) model has been made "user-friendly" by providing a single program equipped with a GUI-based preprocessor for data input and a postprocessor for plotting x-y graphs of the output data.3.4.1 Input ParametersThe following describes the input parameters for the VG model. It is important that this information be fully understand for proper application of the code. The input parameters for the VG model consist of four groups including; simulation data, the soil column-specific data, the aquifer-specific data, and the groundwater flow data file. The simulation data are defined once per model run while the soil column-specific data and the aquifer-specific data are defined for each soil column. Note that the input parameters are constant and uniform within a soil column but vary between the soil columns. Also, it has been assumed that there is no mass transfer between the columns in the vadose zone. However, in the saturated zone, the leachate is mixed with the horizontal groundwater flow. The input parameters required in the program are described below.Simulation Data
Soil Column Data
Aquifer-specific Data
Groundwater Flow Sub-model Data FileThe last part (Groundwater Flow) of the VG model can read any format of data file, if you type the file name of the measuring or estimating geological level data on the screen after run this sub-program. Data should be classified by "elevation of water table," "elevation of soil layer boundaries level," "elevation of bedrock level," and "hydraulic conductivity of each layer."
3.4.2 Input Data FormatThe input data format for the VG model is different from the one for the VLEACHSM 1.0a because the VG program is designed to allow vertical heterogeneity of soil properties inside a soil column. Although the user does not need to know the VG format to use the GUI-based preprocessor, knowing the VG format allows a quick modification of the input data file, which is possible even under a DOS environment. Therefore, the VG input data format is described in detail here.
Each parameter value in the input data file must be contained within a field, which consists of 10 columns. In Table 3.2, an overview of the input data format is provided by listing each variable name in its proper record and field. As exceptions to a normal column width limitation of 10 characters, titles in records 1 and 5 can be as long as 80 characters. A complete description of the input data format is provided in Table 3.3 together with the definitions of the parameters.
3.5 Comparison between VG Model and VLEACHSM 1.0aIn order to demonstrate the first and second part of the VG model ability to simulate actual soil columns, by incorporating heterogeneity, two examples are presented. These are similar to the Soil Column 1 and the Soil Column 2 with the same boundary conditions which are the 1st type and 3rd type, respectively, in the VLSM1.INP file of the VLEACHSM 1.0a manual (Lee, 1995).
3.5.1 Descriptions of Example ProblemExamples of the input data file (VLSM1A.INP and VLSM1B.INP) are provided in Table 3.3 and Table 3.4. The data input equivalent to VLSM1.INP file is reproduced as VLSM1A.INP in the VG model format. In VLSM1A.INP file, there is only one kind of layer with 51 pixels with bulk density rb = 1.6, total porosity n = 0.4, and water-filled porosity q = 0.3. In VLSM1B.INP (see Table 3.4) file, the layer is divided into four soil layers whose total porosity decreases (from 0.44 to 0.38) and water-filled porosity increases (from 0.26 to 0.32) along with the depth shown in Figures 3.9 and 3.10. Figure 3.9 shows Case A where two soil columns are arranged transversely to the groundwater flow direction. Figure 3.10 shows Case B where two soil columns are arranged parallel to the groundwater flow direction. The contaminant concentration profiles in the vadose zone are the same between Case A and Case B, where only the saturated mixing zones are different. The bulk density is adjusted according to the total porosity change (contribution from the water content change is disregarded). The Soil Column 1 has 1st type top boundary condition. The Soil Column 2 (Case B) has 3rd type top boundary condition. This assumed set of parameters are derived from a geologic situation where the total porosity of soil decreases along with the depth due to gravitational pressure while the soil becomes wetter (water-filled porosity increases) along with the depth because water sinks down to the lower layers. Recharge rate q is kept constant (1.0 [ft3/yr/ft2]) in order to keep water-filled porosity of each layer constant. Organic content foc is also kept constant (0.005 [g/g]).
3.5.2 Results
In both Soil Column 1 and Soil Column 2, the effects of putting four different layers instead of
one vertically homogenous layer are obvious as shown in see Figures 3.11,
3.12, 3.13, and
3.14. Because the total porosity values for the first (0
~ -5 [ft]) and second (-5 ~ -15 [ft]) layers are larger than the original value 0.4,
liquid-phase contaminant went deeper after the same period of time (71
[mg/L] at -15 [ft] in Soil Column 1 at 10 years compared with 28 [mg/L] for the
homogenous case). Because the total porosity and water-filled porosity values are the same with the
homogenous ones for the third layer (-15
~ -33 [ft]), the inclination of contaminant profile mostly seems identical to the homogenous case.
After 20 years, the contaminant penetrates deeper while keeping a similar profile, and after 30 years,
contaminant completely reaches the bottom of the vadose zone, mixing into groundwater.
Last modified: Oct 15, 1999 VG Model / Samuel Lee / VADOSE.NET |