5.7 Numerical Solution Procedure for the General Case


     In the general case of multiple, concurrent, contaminant loss pathways, an analytical solution to Equation 5.56 is not possible. Some of the reasons for this are the same as those discussed for the contaminated aquifer and contaminated pond source zones (i.e., complex NAPL partitioning theory, time varying parameters). When a NAPL phase is present in the source zone, the leaching term cannot be expressed as a single, simple function of Mi and t. Furthermore, even when a NAPL phase is not present, a number of system parameters may be arbitrary functions of time. In the case of the contaminated vadose zone source zone, the parameters that may be varying in time (due to natural phenomenon or the implementation of remediation methodologies ) include the Darcy water flux density, wind suspension rate, and water erosion rate. The user has the ability to enter these parameters as a time series of discrete values. There are no hard limits on the number of elements constituting the time series used to describe such parameters. The code will allocate available memory as it is needed. Therefore, any arbitrary Darcy water flux density, wind suspension rate, or water erosion rate can be accommodated, provide memory and run time limits are not exceeded. In addition, when the volatilization loss route is included, the mathematical problem consists of simultaneously solving a set of coupled differential equations (rather than just one differential equation in Mi): one set of equations for the masses of each contaminant (e.g., Equation 5.99), plus one more for the position of the top boundary of the source zone (e.g., Equation 5.101).

     In other words, the mathematical problem actually consists of the simultaneous numerical solution of a set of first-order, ordinary differential equations of the following form:





     where f1
(•), f2(•), f3(•), f4(•), f(•), and g(•) are generic representations of functions of the variables Mi(t), z(t), and t. Furthermore, each of the four individual functions, f1(•), f2(•), f3(•), and f4(•), in Equation 5.110 represent one of the individual mass loss flux terms. Note that in reality, the function f(•) in the specific Equation 5.110 that corresponds to contaminant i might only depend on the mass Mi, and not the other masses. However, in general it can be said that f(•) is a function of all of the masses, z, and t (and that the functional dependence on masses other than Mi is nil). Therefore, Equations 5.110 and 5.111 truly can be described as a set of nc+1 first-order, ordinary differential equations in nc+1 unknowns.

     The source-term release module solves this set of first-order, ordinary differential equations numerically by using a fourth-order Runge-Kutta method. This method requires four computations of the function f(•) or g(•) for each time step. The numerical algorithm begins at time t = 0 with Mi = Mio, and z = zt. The value of z is updated first, using Equation 5.111 and assuming that the values of Mi for all the contaminants are held constant at their values at the beginning of the time step. Then each of the values of Mi are updated, using an equation like Equation 5.110 for each contaminant and assuming that the value of z is held constant at its value at the beginning of the time step.

     The Runge-Kutta algorithm for updating the position of the top boundary of the source zone over the course of a time step is given by



where the terms in Equation 5.112 are given by









     (In the above equations, Mi(tn) and z(tn) are the values of Mi and z, respectively, at the time nDt; and tn is the time nDt.) As long as a clean layer exists above the source zone, this numerical solution of Equation 5.111 is the appropriate way to update the value of z over the course of the time step. However, if wind suspension and water erosion would have caused the soil surface to recede to a depth deeper than this calculated value of z (from volatilization loss considerations) over the course of the time step, then z must be updated according to wind suspension and water erosion considerations. In other words, the value of z calculated from solution of Equation 5.111 must be compared to (S+E)t. If (S+E)t is the greater of these two quantities, the updated value of z is reset equal to (S+E)t.

      The Runge-Kutta algorithm for updating contaminant masses over the course of a time step is given by



where the terms in Equation 5.117 are given by









     Note that because the function f(•) can be expressed as the sum of the functions f1(•), f2(•), f3(•), and f4(•) (from Equation 5.110), the Runge-Kutta procedure used to update the total contaminant mass in the source zone (described in Equations 5.117 through 5.121) contains calculations of the k1 through k4 terms that would be associated with the individual functions f1(•), f2(•), f3(•), and f4(•). Because these functions are associated with the individual mass loss terms, the numerical scheme allows us to also obtain the individual mass fluxes to each loss route at discrete times with minimal extra computation. This entire procedure is repeated as long as not all of the contaminant mass has been depleted from the source zone.