Professional Documents
Culture Documents
a r t i c l e i n f o
a b s t r a c t
Article history:
Received 11 April 2013
Received in revised form
21 October 2013
Accepted 26 October 2013
Available online 27 November 2013
We describe a modeling suite of Matlab functions for simulating nonpoint source (NPS) pollution in
groundwater aquifers. The NPS model simulates groundwater ow and contaminant transport from a
large array (order of 102 e 107) of spatially distributed sources with time-varying pollution strength to a
similarly large array of spatially distributed production wells (receptors) using the streamline transport
approach. The code solves three equations: steady-state groundwater ow, particle tracking, and transient advection dispersion contaminant transport. The code performs convolution integration in its
predictive step. Written in highly efcient vectorized form to avoid time consuming for/while loops,
the code is also suitable for other groundwater ow and transport problems. The code is veried against
analytical solutions and nite element software Comsol. An application illustrates 200 years of transient
nitrate transport in the 2000 km2 Tule River aquifer sub-basin of the Central Valley, California, with 9000
individual nitrate sources and 1920 wells.
2013 Elsevier Ltd. All rights reserved.
Keywords:
Non-point source pollution
Finite element method
Matlab
Streamline transport
Groundwater modeling
Software availability
Name of Software: mSim
Developers: George Kourakos, Thomas Harter
First available year: 2013
Program Language: Matlab, C/C
Availability: http://groundwater.ucdavis.edu/mSim/
Primary contacts: George Kourakos, Thomas Harter
E-mail: gkourakos@ucdavis.edu, giorgk@gmail.com, thharter@
ucdavis.edu
1. Introduction
Numerical simulation models have been established as standard
methods for studying a vast variety of physical phenomena and
environmental processes including water resources (Moriasi et al.,
2012; Bobba, 2012; Bennett et al., 2013). In many countries, water
management decisions are based, to a large extent, on simulation
with numerical models (Refsgaard and Henriksen, 2004). Hence,
numerical models have found broad applicability in research and
education as well as in consulting, decision making, and industry.
Following this trend, groundwater hydrologists also have a long
history of developing and using numerical models for simulating
* Corresponding author.
E-mail addresses: gkourakos@ucdavis.edu, giorgk@gmail.com (G. Kourakos),
thharter@ucdavis.edu (T. Harter).
1364-8152/$ e see front matter 2013 Elsevier Ltd. All rights reserved.
http://dx.doi.org/10.1016/j.envsoft.2013.10.029
208
constructive solid geometry object, that are written in the new style
of Matlab classes introduced in the 2008a edition, which is
currently not supported by Octave.
Generally, tools applied to non-point source assessment can be
grouped into three categories (NRC, 1993): 1) Index-based methods
which combine spatial properties of the study area such as soil
type, slope, climate, depth to groundwater, etc. and provide
vulnerability maps (Aller et al., 1987); 2) statistical methods such as
regression models (Nolan and Hitt, 2006), neural networks (AlMahallawi et al., 2012), etc. 3) physically based methods attempt
to simulate the fate of contaminants in groundwater by solving the
ow and transport equations. Due to the large extent of NPS
pollution in groundwater basins, full 3D transport simulation is
limited by the available computational resources to simplied cases
(Gallardo et al., 2005; Jiang and Somers, 2009). A promising alternative to full 3D transport simulation is the application of
streamline transport methods (Fogg et al., 1999; McMahon et al.,
2008; Starn et al., 2012).
To simulate NPS we utilize the streamline modeling framework
proposed by Kourakos et al. (2012) (NPSAT e NonPoint Source
Assessment Toolbox). The NPSAT consists of three major processes:
i) simulation of steady state groundwater ow, ii) backward particle
tracking, and iii) 1D transient transport simulation along the
streamlines. Note that the governing equations used in the NPSAT
also describe a variety of environmental processes, therefore the
code can be used for simulations other than NPS modeling that are
governed by the same equations.
In our implementation we take advantage of the capabilities of
Matlab and develop a highly vectorized code, minimizing the
number of loops as much as possible. Hence we are able to solve
problems up to several million degrees of freedom, while keeping
the assembly and solution processes on the order of minutes.
Matlab/Octave-provided solvers are only used for the solution of
relatively small sparse systems. For large systems, a variety of
existing solvers can seamlessly be combined with mSim, for
example, pyAMG (Bell et al., 2011), which is a python implementation of the Algebraic Multigrid solvers, and HYPRE (HYPRE,
2012) and Trilinos (Heroux et al., 2003), which provide rich libraries for solving large sparse linear systems of equations on
massively parallel computers.
This paper is divided into six sections. The second section presents an overview of mSim. The third section briey describes the
governing equations employed by NPSAT and its nite element
formulation. The fourth section discusses the vectorized implementation. We then describe a validation of mSim against analytical and numerical codes and apply mSim to a real case study in
south-central California, USA. The last section summarizes the
key points of this study.
2. Overview of mSim
The mSim code is a collection of Matlab functions that are primarily intended for the simulation of non-point source (NPS)
pollution in agricultural groundwater basins. The modeling
approach, assumptions and justications are described in detailed
in Kourakos et al. (2012). In this paper we focus on efcient code
development based on the high-level language Matlab/Octave. The
processes that are involved with the NPS pollution modeling are
the simulation of groundwater ow, of particle tracking and of
solute transport along particle streamlines based on the solution of
the advectionedispersion equation.
The Matlab/Octave functions are organized into ve groups: i)
mFlow, ii) mPart, iii) mTrans, iv) mUtil and v) mNPSAT, where each
group is actually a directory that contains the required les for the
simulation of ow, the particle tracking, the simulation of transport,
209
governing equations can be used to simulate a variety of phenomena. Therefore the simulation of diffuse pollution will be the
starting point of the mSim development but the methods and
subsequently the code can be extended to simulate other, similar
phenomena. Details and the rationale behind the NPSAT approach
can be found in Kourakos et al. (2012). The NPSAT is implemented
in two phases a) The construction phase which solves the governing equations for user-specied ow boundary conditions and a
unit solute pulse boundary condition to obtain a unit response
function and b) the implementation or forward phase where the
model is used for predictions using convolution of the unit
response functions with complex NPS pollution boundary
conditions.
The rst phase involves three main steps i) the groundwater
ow equation is solved under the steady state assumption; ii)
based on the computed velocity eld, backward particle tracking
is performed with the starting points of the particles distributed
around Compliance Discharge Surfaces (CDS) of interest (e.g.
wells, gaining streams etc.) and the contributing recharge and
pollution sources to the CDS are identied; iii) a 1D transport
simulation is performed along each streamline to compute the
travel time and magnitude of the pollution at the CDS. In the
transport model we assume a unit Heaviside step loading
function at the recharge boundary, thus the output of the 1D
transport simulation is an ensemble of unit response functions
(URFs) at the CDS. During the implementation phase the URFs
are convoluted with actual loading scenarios (space-time maps
of loading concentration). Since convolution involves only
analytical computation, NPSAT can be used for rapid evaluation
of many alternative loading scenarios (Kourakos et al., 2011,
2012).
3.1. Groundwater ow
The governing equation that describes groundwater ow in
steady state is expressed as:
v
vh
v
vh
v
vh
Kxx
Kyy
Kzz
Q 0
vx
vx
vy
vy
vz
vz
(1)
where h(x, y, z) is the unknown hydraulic head eld, Kxx, Kyy, Kzz are
the values of the hydraulic conductivity tensor along the major
anisotropy x, y, z axes, and Q represents the various sources and
sinks. Note that the same equation can also be used to simulate heat
transfer, diffusion etc. Eq. (1) can be solved analytically only in very
special cases. To obtain a general solution we solve Eq. (1)with
numerical methods after discretizing the physical domain. The
mSim utilizes a nite element discretization method, where the
continuous hydraulic head eld h(x, y, z) is approximated as the
weighted
average
of
n
discrete
points
hx; y; z
N1 h1 N2 h2 . Nn hn . Here hi is the approximate head at the
discretization node and Ni is an interpolation function also known
as shape function.
After the domain discretization, the partial differential equations are simplied into a system of n linear equations (see details
in Istok, 1989; Pepper and Heinrich, 2006; Fish and Belytschko,
2007) in the form of
AH F
(2)
210
Z
A
BT KBdU
(3)
Z
Z
F N T qB dG NT qI dU
G
(4)
3.3. Advectionedispersion
The last step of the construction phase of the NPSAT is the quasi3D transport simulation, which involves the solution of the 1D
advection dispersion equation along each streamline.
The governing equation that describes the contaminant transport assuming advection and dispersion is expressed as:
dvy
dvx
dvz
Vx xs ; ys ; zs ; t;
Vy xs ; ys ; zs ; t;
Vz xs ; ys ; zs ; t
ds
ds
ds
(5)
where xs, ys, zs are known for some initial time t 0. xs, ys, zs are the
particles coordinates, vx, vy, vz are the components of the velocity
vectors at each point s and Vx, Vy, Vz are functions which dene the
velocity as functions of time and 3D space. To solve this problem, a
variety of numerical methods exist. The simplest method is the
Eulers method (Butcher, 2008), whereby the position of the next
point is a function of the velocity of the previous point. More
advanced techniques such as RungeeKutta (Butcher, 2008)
methods take multiple samples of the velocity space, and the actual
velocity is a weighted average of the sampled velocities. Hence all
methods require the interpolation of the velocity from hydraulic
head eld.
The velocity within a groundwater ow eld is expressed as
v KVh/q where q is the porosity of the porous medium. However
in a discretized solution obtained by FEM the continuous hydraulic
head eld is approximated ashx; y; z N1 h1 . Nn hn , hence
the gradient of the head can be computed using the shape function
derivatives multiplied by the approximated nodal heads
vhx; y; z vN1 h1 . vNn hn . Note that this scheme, where
velocity is directly computed from the derivative of the head eld is
known to produce a discontinuous velocity eld along the
boundaries of the elements (Cordes and Kinzelbach, 1992).
vc
VDVc Vvc G
vt
(6)
Z
A
BT DBdU vNB
(7)
Note that the rst part of the right hand side of Eq. (7) is identical to groundwater ow integral (Eq. (3)). In addition it can be
seen that the contribution of the advection term leads to a
nonsymmetric matrix as opposed to pure diffusion problem.
The expression for the vector F is practically identical to Eq. (4):
Z
Z
F NT cB dG N T ci dU
G
(8)
ct
t
X
lt d$Ud
(9)
d0
211
212
compute the value at the sampled point and nally add the
weighted elements on the local matrix Ael. After the code exits the
inner loop, the local element contributions are added to the global
matrix. This serial method becomes very inefcient in Matlab or
Octave as the problem of the size grows, due to the fact that the
iterations of the outer loop increase linearly with the size of the
problem.
To alleviate this inefciency we employed a vectorized implementation of the assembly process. The owchart of the vectorized
assembly is illustrated in Fig. 1 (right side). In the vectorized
implementation we split the process into two loops. First we iterate
through the Gauss quadrature sampling points and compute the
elements of the local matrices. A second independent loop is used
for assembling the global matrix.
The code starts by extracting the element coordinates outside of
the loop. In the vectorized implementation the matrices X and Y are
vectors with dimensions Nel Nsh, where Nel is the number of elements, therefore the element coordinates need to be read only
once.
Next for each Gauss quadrature point (x, h) the computations are
performed in a vectorized (parallel) manner. For example, in serial
implementation, the dimensions of the Jacobian matrix J are
Ndim Ndim where Ndim is the dimension of the problem (e.g. 1D, 2D
or 3D). In the vectorized implementation however, the dimensions
2
of the Jacobian matrix are Nel Ndim
where for each element the
values of the Jacobian are stored in a row-major order in a single
row and each column contains the values of Jacobian for a different
element. Similarly the determinant and the inverse Jacobian matrix
are computed in an element wise manner. The shape function derivatives are then multiplied with the elements of the inverse Jacobian matrix, and the outcome is stored into a matrix variable (B)
with dimensions Nel (Ndim Nsh)
The hydraulic conductivity is also stored into a matrix Nel m
where m depends on the hydraulic conductivity anisotropy. The
vectorized implementation is limited to anisotropy along the main
diagonal Kxx s Kyy s Kzz and off diagonal terms are always zero.
However, it is important that hydraulic conductivity K is always
stored in a row-major order to allow for efcient vectorized computations. Finally the contribution of each local element Ae to the
global matrix A is computed simultaneously for all elements and
stored into a matrix in row major order, i.e. the dimensions of Ae
2 . In the
based on the vectorized implementation are Nel Ndim
vectorized implementation, we rst compute the product of Eq. (3)
BTKB and store it temporarily for each quadrature point and then
we add the weighted contribution of the integrating point to matrix
Ae. At the end of the rst loop matrix, Ae contains the nal values
that need to be gathered to the global matrix A.
To gather the values of matrix Ae, simultaneously for all elements, into the global matrix we iterate through the columns of the
2 iterations. During the assembly of the global
matrix Ae e.g. Nsh
matrix we take advantage of the additive property of the sparse
function (i.e. when two different rows map a local value at the same
entrie of the global matrix, then these values are added).
Although the vectorized assembly is signicantly faster, it requires more storage than the serial implementation. Fig. 2 shows
the number of oating numbers that need to be stored as a function
of the number of elements. For all 2D elements and 3D linear elements the required extra storage is practically negligible, given the
memory that commodity computers offer. However in 3D hexahedral quadratic elements the storage requirement increases
signicantly with the number of elements. For example for 9000
elements we need to store 9000 272 6.5$106 oating point
numbers, while for quadratic prism elements we would need
9000 182 2.9$106. A possible remedy to this problem is the use
of serendipity (incomplete) elements which use less control points
213
Fig. 3. Comparison between the different assembly methods for various types of elements. The blue, green and red lines correspond to vectorized, nested and serial assembly
respectively. The solid lines correspond to 3D elements and the dotted lines to 2D elements. (For interpretation of the references to colour in this gure legend, the reader is referred
to the web version of this article.)
tracked until they exit the ow eld. Note that special care is taken
to ensure that the paths of the particles are approximately equal
(i.e. the particles were released from the same elevation). All scenarios are performed with the adaptive Runge Kutta 45 scheme. As
expected, the CPU time for the serial implementation (Fig. 4, blue
line (in web version)) increases linearly with the number of particles. The CPU time for the vectorized particle tracking (Fig. 4, green
line) is consistently 3e4 times faster than the serial implementation. Due to the fact that particle tracking is in essence a serial
process and that the main while loop cannot be avoided, it is advantageous to convert this part of the code into a C/C version
that can be executed within Matlab. The red line in Fig. 4 shows the
particle tracking time using the C implementation of the code. It
can be seen that it is consistently faster than the vectorized
implementation.
In summary, mSim offers three modes of particle tracking. i)
Serial in matlab, which is relatively slow, but very useful for
debugging and experimenting. ii) Vectorized in matlab, which is
recommended approach if debugging is necessary. iii) A serial C
implementation called from matlab, which is the most efcient
approach, but also most difcult in terms of debugging and of
adding code to investigate and understand the ow eld and
simulated particle tracks (e.g. multi-dimensional visualization of
particle tracks and velocity vectors).
5. Application
5.1. Model validation
Fig. 4. Comparison of the different modes of particle tracking. Serial and vectorized
modes are implemented in Matlab, C is written in C and runs from Matlab.
214
around a fully penetrating well. The analytical solution of drawdown due to constant pumping is given by
Sr
Q
R
ln
2pT r
(10)
xv
C
1
x vt
x vt
erfc p exp
erfc p
Co
2
D
2 Dt
2 Dt
(11)
215
Fig. 7. Comparison of the conductance matrices, forcing vectors, and solution vectors
obtained from COMSOL and mSim.
The motivation for the development of the mSim is the simulation of regional non-point source pollution. In this section we
illustrate an application of mSim to simulate 200 years of nitrate
contaminant transport in the Tule River aquifer, which is located in
the southern Central Valley, California, US. The Tule River basin
covers 2000 km2. It is an intensively farmed agricultural area that
relies heavily on groundwater for domestic and irrigation purposes.
Fig. 9 illustrates the outline of the simulated domain. The area is
divided into approximately 9000 land use polygons that belong to
nearly 60 different land use categories. Groundwater recharge and
groundwater pumping is polygon specic (Ruud et al., 2004).
Known pumping is distributed across 1920 virtual wells (Boyle
et al., 2012), which represent mostly irrigation wells and some
municipal supply wells, and w150 line segments that correspond
to recharging (losing) streams here considered to be free of pollution. This setting creates a highly complicated domain, which is
very challenging for mesh generation. The mSim functions were
used to prepare the input les for the mesh generation using Gmsh.
First we created a 2D triangular mesh, which consists of 309,258
triangles with edge length that varies between 50 m near the wells
and 500 m, in void of interest areas (e.g. see southwest area in
Figs. 9 and 10), which is mostly native vegetation. Although Gmsh
was instructed to generate a constrained mesh, due to complexity
of the land use surface, it was found that Gmsh sometimes failed to
follow the constraints at the benet of generating a better quality
mesh (e.g. mesh with triangles without acute angles). The mesh
was subsequently extruded in the vertical direction to formulate 11
layers of vertical prism elements (Fig. 10) e.g. (3,401,838 prism elements and 1,861,560 degrees of freedom). The hydraulic conductivity was estimated based on a previous study that employed a
pilot point optimization method and varies between 1 and 150 m/
Fig. 8. Concentration over time, along the 1D domain. (a) and (b) show the concentration distribution based on mSim and Comsol simulation. (c) shows the analytical solution and
the (d) the relative to maximum concentration error between numerical and analytical simulation.
216
Fig. 9. Domain and land use cover of Tule river basin, California (modied from Ruud et al. (2004)).
Fig. 10. Left: Top view of nite element discretization. Right Top: Zoom to the green rectangle. Right bottom: cross section of the nite element mesh. The red rectangle shows the
area where the mesh was adapted to honor the Corcoran Clay member. (For interpretation of the references to colour in this gure legend, the reader is referred to the web version
of this article.)
Fig. 11. Distribution of hydraulic head of the top layer. Due to iterative solution the
elevation of the top nodes is equal to their hydraulic head. Note that the lighting source
is from the north-northeast. Recharging rivers show as (elevated) ridges, while
pumping center show as cones of depression.
217
Fig. 12. Histogram of the particles travel time into the groundwater aquifer for each case. The green line corresponds to median travel time. (For interpretation of the references to
colour in this gure legend, the reader is referred to the web version of this article.)
218
Fig. 13. Simulated streamlines. Blue to red colors correspond to logarithmic travel time
from the point of recharge onward. The gray anaglyph background corresponds to the
bottom of the aquifer. (For interpretation of the references to colour in this gure
legend, the reader is referred to the web version of this article.)
concentration by dividing the mass with the recharge that corresponds to the streamline point at the recharge boundary. Therefore,
although we assumed uniform loading, the actual concentration
will be variable as a function of the recharge rate. We assumed zero
loading for streamlines that originate from streams. The implementation phase involves convolution of the loading functions with
each unit response function. Hence for each well we obtain 100
breakthrough curves, where each corresponds to a different
streamline. Note that by using URFs we are able to quickly recalculate the concentration for alternative, time-varying source
loading, without again solving the entire 1D ADE problem. To
obtain the actual mixed well breakthrough curve, we calculate the
weighted average of the individual streamline breakthrough
curves. Weights reect the relative ow contribution of each
streamline to the total pumped water volume at a well.
In Fig. 15, each thin colored line corresponds to an individual,
aggregated well breakthrough curve (e.g. each plots consist of 1920
breakthrough curves), which form the basis for statistical analyses
of regional, subregional, or land use-specic impacts. Statistical
processing also allows for quantication of uncertainty or prediction reliability.
Based on well breakthrough curves we computed exceedance
probabilities for the study area for the two porosity scenarios that
were considered previously with f 0:07 and f 0:15 (shown
with yellow thick lines in Fig. 15). With 50 kg/ha/year uniform nitrate loading, it appears that 10% of the wells will exceed the
drinking water limit (10 mg NO3eN/L, shown in thick green line)
after a period of approximately 4 (Fig. 15 Left) to 8 (Fig. 15 Right)
years. One quarter of the wells in the study area are expected to
exceed the drinking water limit after 15e30 years. Approximately
half of the wells will exceed the drinking water limit after 110 years
if f 0:07 and after more than 200 years at 15% porosity.
It becomes apparent from the above analysis that prediction
uncertainty driven by imprecise porosity estimates increases
signicantly at higher design exceedance thresholds. For example
the uncertainty in estimating the exceedance probability for the
most immediately impacted 5% of wells is in the order of few years.
On the other hand the uncertainty in estimating the time at which
Fig. 14. Bottom panels: Unit response functions for an average and deep well and different values of porosity. Top panels: Age distribution for the same wells.
219
Fig. 15. Left: Exceedance probability for f 0:07. Right: Exceedance probability for f 0:15. The thin colored lines correspond to individual well BTCs. The yellow lines
correspond to calculated exceedance probability based on the individual BTCs (MCL: Maximum Contaminant Level). (For interpretation of the references to colour in this gure
legend, the reader is referred to the web version of this article.)
40% of the wells exceed the drinking water threshold is in the order
of several decades. These uncertainties also depend on the exceedance threshold (here: drinking water limit) chosen, relative to
the source loading. The uncertainty increases exponentially as the
well exceedance concentration increase (Fig. 16).
6. Conclusions
In this paper we present an efcient numerical code for the
simulation of non-point source contamination based on concepts
proposed in our earlier work (Kourakos et al., 2012), but extendable
to more general groundwater ow and transport simulation problems using the nite element method.
The code is written exclusively in Matlab and is available for free
download from http://groundwater.ucdavis.edu/msim. The equations that mSim solves in the present version are steady state
groundwater ow, particle tracking, and 1D transient advection
dispersion with up to rst order degradation and decay. mSim is
based on the nite element method using Galerkin approximation
of the partial differential equations. mSim relies on Gmsh code for
the mesh generation, and on ParaView for large scale post-processing and visualization. Note that both codes are open source and
free.
Al-Mahallawi, K., Mania, J., Hani, A., Shahrour, I., 2012. Using of neural networks for
the prediction of nitrate groundwater contamination in rural and agricultural
areas. Environ. Earth Sci. 2012 (65), 917e928.
Aller, L., Bennett, T., Lehr, J.H., Petty, R.J., Hackett, G., 1987. DRASTIC: a Standardized
System for Evaluating Groundwater Pollution Potential Using Hydrogeologic
Settings. Rep. EPA-600/2-87-035. U.S. Environ. Prot. Agency, Ada, Okla, p. 641.
220
Andreassen, E., Clausen, A., Schevenels, M., Lazarov, B.S., Sigmund, O., 2011. Efcient
topology optimization in MATLAB using 88 lines of code. Struct. Multidiscip.
Optim. 43, 1e16. http://dx.doi.org/10.1007/s00158-010-0594-7.
Ashby, S.F., Falgout, R.D., 1996. A parallel multigrid preconditioned conjugate
gradient algorithm for groundwater ow simulations. Nucl. Sci. Eng. 124 (1),
145e159.
Aslam, A., Hendren, L., 2012. McFLAT: a prole-based framework for MATLAB loop
analysis and transformations, languages and compilers for parallel computing.
In: 23rd International Workshop, LCPC 2010, vol. 6548, pp. 1e15. Revised
Selected Papers.
Bell, W.N., Olson, L.N., Schroder, J.B., 2011. PyAMG: Algebraic Multigrid Solvers in
Python v2.0. http://www.pyamg.org.
Bennett, N.D., Croke, B.F.W., Guariso, G., Guillaume, J.H.A., Hamilton, S.H.,
Jakeman, A.J., Marsili-Libelli, S., Newham, L.T.H., Norton, J.P., Perrin, C.,
Pierce, S.A., Robson, B., Seppelt, R., Voinov, A.A., Fath, B.D., Andreassian, V., 2013.
Characterising performance of environmental models. Environ. Model. Softw.
40, 1e20. http://dx.doi.org/10.1016/j.envsoft.2012.09.011.
Bobba, A.G., 2012. Ground Water-Surface Water Interface (GWSWI) modeling:
recent advances and future challenges. Water Resour. Manag. 26 (14), 4105e
4131. http://dx.doi.org/10.1007/s11269-012-0134-x.
Boyle, D., King, A., Kourakos, G., Lockhart, K., Mayzelle, M., Fogg, G.E., Harter, T.,
2012. Groundwater nitrate occurrence. Technical Report 4. In: Addressing Nitrate in Californias Drinking Water with a Focus on Tulare Lake Basin and
Salinas Valley Groundwater. Center for Watershed Sciences, University of California, Davis. Report for the State Water Resources Control Board Report to the
Legislature.
Butcher, J.C., 2008. Numerical Methods for Ordinary Differential Equations. second
ed. J. Wiley, Chichester.
Chaves, J.C., Nehrbass, Guilfoos, J.B., Gardiner, J., Ahalt, Krishnamurthy, S.A.,
Unpingco, J., Chalker, A., Warnock, A., Samsi, S., 2006. Octave and python: highlevel scripting languages productivity and performance evaluation. In: HPCMP
Users Group Conference, pp. 429e434. http://dx.doi.org/10.1109/HPCMPUGC.2006.55.
Chen, C.-K., Yan, S., Yu, H., Max, N., Ma, K.-L., 2011. An Illustrative visualization
framework for 3D vector elds. Comput. Graph. Forum 30 (7), 1941e1951.
http://dx.doi.org/10.1111/j.1467-8659.2011.02064.x.
COMSOL Multiphysics, 2008. COMSOL Multiphysics Modeling Guide: Version 3.5.
COMSOL AB, Stockholm, Sweden.
Cordes, C., Kinzelbach, W., 1992. Continuous groundwater velocity elds and path
lines in linear, bilinear, and trilinear nite elements. Water Resour. Res. 28 (11),
2903e2911. http://dx.doi.org/10.1029/92WR01686.
Dedner, A., Klfkorn, R., Nolte, M., Ohlberger, M., 2011. A generic interface for
parallel and adaptive scientic computing: abstraction principles and the
DUNE-FEM module. Computing 90 (3), 165e196.
Donea, J., Huerta, A., 2003. Finite Element Methods for Flow Problems. John Wiley &
Sons Ltd., West Sussex, UK.
Eberts, S.M., Bhlke, J.K., Kauffman, L.J., Jurgens, B.C., 2012. Comparison of particletracking and lumped-parameter age-distribution models for evaluating
vulnerability of production wells to contamination. Hydrogeol. J. 20 (2), 263e
282. http://dx.doi.org/10.1007/s10040-011-0810-6.
Fairweather, G., 1978. Finite Element Galerkin Methods for Differential Equations.
In: Lecture Notes in Pure and Applied Mathematics, vol. 34. CRC Press, New
York, p. 263.
Faunt, C.C. (Ed.), 2009. Groundwater Availability of the Central Valley Aquifer,
California. U.S.Geological Survey Professional Paper 1766, p. 225.
Fish, J., Belytschko, T., 2007. A First Course in Finite Elements. John Wilay & Sons
Ltd, NJ.
Fogg, G.E., Labolle, E.M., Weissmann, G.S., 1999. Groundwater vulnerability assessment: hydrogeologic perspective and example from Salinas Valley, California.
In: Corwin, D.L., Loague, K., Elisworth, T.R. (Eds.), Assessment of Non-Point
Source Pollution in the Vadose Zone, pp. 45e61. http://dx.doi.org/10.1029/
GM108.
Funken, S., Praetorius, D., Wissgott, P., 2011. Efcient implementation of adaptive
P1-FEM in matlab. Comput. Methods Appl. Math. 11 (4), 460e490. http://
dx.doi.org/10.2478/cmam-2011-0026.
Gallardo, A.H., Reyes-Borja, W., Tase, N., 2005. Flow and patterns of nitrate pollution
in groundwater: a case study of an agricultural area in Tsukuba City, Japan.
Environ. Geol. 48, 908e919. http://dx.doi.org/10.1007/s00254-005-0029-8.
Geuzaine, C., Remacle, J.-F., 2009. Gmsh: a three-dimensional nite element mesh
generator with built-in pre- and post-processing facilities. Int. J. Numer. Meth.
Eng. 79 (11), 1309e1331.
Green, C.G., Bhlke, J.K., Bekins, B.A., Phillips, S.P., 2010. Mixing effects on apparent
reaction rates and isotope fractionation during denitrication in a heterogeneous aquifer. Water Resour. Res. 46 (8), W08525. http://dx.doi.org/10.1029/
2009WR008903.
Harbaugh, A.W., Banta, E.R., Hill, M.C., McDonald, M.G., 2000. MODFLOW-2000, the
U.S. Geological Survey Modular Ground-water ModeldUser Guide to Modularization Concepts and the Ground-water Flow Process. Open-File Report 00e92.
U.S. Geological Survey, p. 121.
Heroux, M., Bartlett, R., Howle, V., Hoekstra, R., Hu, J., Kolda, T., Lehoucq, R., Long, K.,
Pawlowski, R., Phipps, E., Salinger, A., Thornquist, H., Tuminaro, R.,
Willenbring, J., Williams, A., 2003. An Overview of Trilinos. Sandia National
Laboratories. SAND2003e2927.
Higham, D.J., 2002. Nine ways to implement the binomial method for option
valuation in MATLAB. SIAM Rev. 44 (4), 661e677.
HYPRE, 2012. Users Manual. Center for Applied Scientic Computing, Lawrence
Livermore National Laboratory.
Integrated Water Flow Model, 2012. Theoretical Documentation. Integrated Hydrological Models Development Unit, Modeling Support Branch, Bay-Delta Ofce, Department of Water Resources, Bay-Delta.
Istok, J.D., 1989. Groundwater Modeling by the Finite Element Method. In: Water
Resources Monograph, vol. 13. AGU, Washington, DC.
Jiang, Y., Somers, G., 2009. Modeling effects of nitrate from non-point sources on
groundwater quality in an agricultural watershed in Prince Edward Island,
Canada. Hydrogeol. J. 17 (3), 707e724. http://dx.doi.org/10.1007/s10040-0080390-2.
Kattan, P.I., 2008. MATLAB Guide to Finite Elements, an Interactive Approach.
Springer, Berlin Heidelberg. http://dx.doi.org/10.1007/978-3-540-70698-4.
Kepner, J., 2009. In: Dongarra, J.J. (Ed.), Parallel MATLAB for Multicore and Multinode Computers. Society for Industrial and Applied Mathematics.
Koko, J., 2007. Vectorized Matlab codes for linear two-dimensional elasticity. Sci.
Program. 15, 157e172.
Kourakos, G., Mantoglou, A., 2008. Remediation of heterogeneous aquifers based
on multiobjective optimization and adaptive determination of critical realizations. Water Resour. Res. 44, W12408. http://dx.doi.org/10.1029/
2008WR007108.
Kourakos, G., Mantoglou, A., 2012a. Inverse groundwater modeling with emphasis
on model parameterization. Water Resour. Res. 48, W05540. http://dx.doi.org/
10.1029/2011WR011068.
Kourakos, G., Mantoglou, A., 2012b. Development of a multi-objective optimization
algorithm using surrogate models for coastal aquifer management. J. Hydrol.
479, 13e23. http://dx.doi.org/10.1016/j.jhydrol.2012.10.050.
Kourakos, G., Klein, F., Harter, T., 2011. A GIS-linked unit response function approach
to stochastic groundwater nonpoint source pollution modelling. In: Proceedings of ModelCARE 2011 Models-repositories of Knowledge, vol. 355. IAHS
Publ., pp. 106e112, 2012.
Kourakos, G., Klein, F., Cortis, A., Harter, T., 2012. A groundwater nonpoint source
pollution modeling framework to evaluate long-term dynamics of pollutant
exceedance probabilities in wells and other discharge locations. Water Resour.
Res. 48, W00L13. http://dx.doi.org/10.1029/2011WR010813.
Kumar, R.P., Dodagoudar, G.R., 2010. Two-dimensional meshfree modelling of
contaminant transport through saturated porous media using RPIM. Environ.
Earth Sci. 61 (2), 341e353. http://dx.doi.org/10.1007/s12665-009-0346-4.
Larry Walker and Associates, February 2010. Salt and Nitrate Sources Pilot Implementation Study Report. Final Report to the Central Valley Salinity Coalition
(CV-SALTS), p. 247.
Lee, H.S., Matthews, C.J., Braddock, R.D., Sander, G.C., Gandola, F., 2004. A MATLAB
method of lines template for transport equations. Environ. Modell. Softw. 19 (6),
603e614. http://dx.doi.org/10.1016/j.envsoft.2003.08.017.
Lie, K.eA., Krogstad, S., Ligaarden, I.S., Natvig, J.R., Nilsen, H.M., Skaestad, B., 2012.
Open-source MATLAB implementation of consistent discretisations on complex
grids. Comput. Geosci. 16 (2), 297e322. http://dx.doi.org/10.1007/s10596-0119244-4.
Lin, H.-C.J., Richards, D.R., Talbot, C.A., Yeh, G.-T., Cheng, J.-R., Cheng, H.-P.,
Jones, N.L., 1997. A Three-dimensional Finite Element Computer Model for
Simulating Density-dependent Flow and Transport in Variable Saturated Media:
Version 3.0. U.S Army Engineer Research and Development Center, Vicksburg,
Miss.
Louwyck, A., Vandenbohede, A., Bakker, M., Lebbe, L., 2012. Simulation of axisymmetric ow towards wells: a nite-difference approach. Comput. Geosci.
44, 136e145. http://dx.doi.org/10.1016/j.cageo.2011.09.004.
McMahon, P.B., Burow, K.R., Kauffman, L.J., Eberts, S.M., Bhlke, J.K., Gurdak, J.J.,
2008. Simulated response of water quality in public supply wells to land use
change. Water Resour. Res. 44, W00A06. http://dx.doi.org/10.1029/
2007WR006731.
Moriasi, D.N., Wilson, B.N., Douglas-Mankin, K.R., Arnold, J.G., Gowda, P.H., 2012.
Hydrologic and water quality models: use, calibration, and validation. T ASABE
55 (4), 1241e1247.
Morio, M., Finkel, M., Martac, E., 2010. Flow guided interpolation e a GIS-based
method to represent contaminant concentration distributions in groundwater. Environ. Model. Softw. 25 (12), 1769e1780. http://dx.doi.org/10.1016/
j.envsoft.2010.05.018.
Moutsopoulos, K.N., Gemitzi, A., Tsihrintzis, V.A., 2008. Delineation of groundwater
protection zones by the backward particle tracking method: theoretical background and GIS-based stochastic analysis. Environ. Geol. 54, 1081e1090. http://
dx.doi.org/10.1007/s00254-007-0879-3.
National Research Council, 1993. Groundwater Vulnerability Assessment: Predicting
Relative Contamination Potential Under Conditions of Uncertainty. National
Academy Press, Washington, D. C, p. 204.
Neuman, S.P., 1990. Universal scaling of hydraulic conductivities and dispersivities
in geologic media. Water Resour. Res. 26 (8), 1749e1758. http://dx.doi.org/
10.1029/WR026i008p01749.
Nolan, B., Hitt, K.J., 2006. Vulnerability of shallow groundwater and drinkingwater wells to nitrate in the United States. Environ. Sci. Technol. 40 (24),
7834e7840.
Ogata, A., Banks, R.B., 1961. A Solution of the Differential Equation of Longitudinal
Dispersion in Porous Media. In: US Geological Survey Professional Papers, No.
34, p. 411-A.
OpenFoam, 2013. The Open Source CFD Tool: User Guide. VErsion 2.2.1. OpenFoam
Foundation.
221