bionapl/3d - Science - University of Waterloo

Transcription

bionapl/3d - Science - University of Waterloo
BIONAPL/3D:
A 3D Model for Groundwater Flow,
and Multi-Component NAPL Dissolution with Dissolved-Phase
Advective-Dispersive Transport and Biodegradation
in Porous and Fractured Porous Media
User Guide
10
Z (m)
g/l
0.1
0.05
0.02
0.01
0.001
0.0001
Toluene
5
0
Oxygen
Z (m)
10
g/l
0.004
0.003
0.002
0.001
0
5
0
Microbes (O2 reducers)
Z (m)
10
5
0
0
50
100
150
Distance (m)
200
250
g/l
0.06
0.02
0.007
0.005
0.002
0.001
July 2011
John W. Molson, PhD. P.Eng. Ing.
Dept. of Geology & Geological Engineering
Canada Research Chair, Quantitative Hydrogeology of Fractured Porous Media
Université Laval, Québec, QC (john.molson@ggl.ulaval.ca)
Adjunct Professor, Dept. of Earth & Environmental Sciences, University of Waterloo
http://sciborg.uwaterloo.ca/~molson/
License Agreement
I. Copyright Notice
This software is protected by both Canadian copyright law and international treaty provisions.
Therefore, you must treat this software just like a book, with the following single exception. You are
authorized to make archive copies of the software for the sole purpose of backing-up our software and
protecting your investment from loss.
By saying "just like a book", it is meant for example, that this software may be used by any
number of people and may be freely moved from one computer location to another, so long as there is
no possibility of it being used at one location while it is being used at another. This restriction is
similar to that in publishing where a book for example, can't be read by two different people in two
different places at the same time.
II. Warranty
The physical disks and documentation enclosed herein are warranted to be free of defects in
materials and workmanship for a period of 30 days from the date of purchase. In the event of
notification of defects in material or workmanship, the defective disks or documentation will be
replaced. The remedy for breach of this warranty shall be limited to replacement and shall not
encompass any other damages, including but not limited to loss of profit, and special, incidental,
consequential, or other similar claims.
III. Disclaimer
Neither the developers of this software, nor any person or organization acting on behalf of
them makes any warranty, express or implied, with respect to this software; or assumes any liabilities
with respect to the use, or misuse, of this software, or the interpretation, or misinterpretation, of any
results obtained from this software, or for damages resulting from the use of this software.
IV. Governing Law
This license agreement shall be construed, interpreted, and governed by the laws of the
Province of Ontario, Canada.
2
Table of Contents
page
1. INTRODUCTION......................................................................................................................... 4
2. THEORETICAL DEVELOPMENT .......................................................................................... 6
2.1 GROUNDWATER FLOW .............................................................................................................. 6
2.2 MULTI-COMPONENT MASS TRANSPORT .................................................................................. 8
2.2.1 Governing Transport Equations.......................................................................................... 8
2.2.2 Inhibition ........................................................................................................................... 10
Electron Acceptor Inhibition ................................................................................................................................................... 11
Inter-Component Inhibition ..................................................................................................................................................... 12
Maximum and minimum thresholds for degradation: ............................................................................................................. 13
2.2.3 Linear (1st Order) Degradation......................................................................................... 13
Method I: Fixed rate ................................................................................................................................................................ 13
Method II: Modified Monod Terms ........................................................................................................................................ 13
Verification of Decay: ............................................................................................................................................................. 14
2.2.4 Daughter Products ............................................................................................................ 15
2.2.5 Reaction Stoichiometry ..................................................................................................... 17
2.2.6 Source Dissolution ............................................................................................................ 18
2.2.7 Boundary Conditions......................................................................................................... 19
2.2.8 Carrier Transport (CC): .................................................................................................... 20
2.2.9 Solution Strategy ............................................................................................................... 22
3. DESIGNING A MODEL ............................................................................................................ 23
3.1 GRID DEFINITION ...................................................................................................................... 23
3.2 FLOW SYSTEM .......................................................................................................................... 25
3.3 TRANSPORT SYSTEM ................................................................................................................. 26
4. REFERENCES: .......................................................................................................................... 27
APPENDIX A: DETAILED USER GUIDE FOR A SAMPLE DATA FILE ........................... 29
APPENDIX B: SAMPLE DATA FILE AND RESULTS: ETHANOL & GASOLINE ........... 55
APPENDIX C: SAMPLE DATA FILE AND RESULTS: TOLUENE BIODEGRADATION
WITH MULTIPLE ELECTRON ACCEPTORS ........................................................................ 59
APPENDIX D: SAMPLE DATA FILE AND RESULTS: TOLUENE SPILL WITHIN A
HETEROGENEOUS, SPATIALLY CORRELATED PERMEABILITY FIELD. ................. 63
APPENDIX E: EXAMPLE AND VERIFICATION OF 1ST ORDER DECAY: ...................... 66
APPENDIX F: VERIFICATION OF DENSITY WITH MULTIPLE COMPONENTS: ...... 69
APPENDIX G: FRACTURE LOCATIONS ON ELEMENT SURFACES .............................. 73
APPENDIX H: FRACGEN MODEL FOR RANDOM FRACTURE NETWORKS ............... 74
APPENDIX I: DISCRETE FRACTURE NETWORK APPLICATION ................................. 76
3
1. Introduction
BIONAPL/3D is a three-dimensional numerical model for simulating multi-component nonaqueous phase liquid (NAPL) dissolution and biodegradation in a porous or discretely fractured
porous aquifer. It includes a transient, groundwater flow model coupled with an advectivedispersive multi-component transport model. A rectangular prism (3D brick) mesh generator is
built-in, although externally-generated deformed rectangular meshes can also be used.
The model was originally developed to simulate the dissolution of the Borden emplaced source
experiment (Frind et al. 1999). Component sources can be either set as initial conditions, boundary
conditions, or as residual (immobile) NAPL. Multiple component sources, with multiple electron
acceptors and microbial populations can be accommodated. Further details and example model
applications are provided by Molson (2000), Molson et al., (2000a,b, 2008), Rügner et al. (2004),
Freitas et al. (2010) and Greer et al. (2010).
The conceptual model (with a residual LNAPL source as an example) is shown in Figure 1 below.
Figure 1. Conceptual model for BIONAPL/3D.
4
Table 1 provides a summary of the capabilities and limitations of the model. The code does not include
a pre-, or post-processor. Data is read from an ASCII data file and results can be imported into most
existing visualization software (files are already formatted for use with Tecplot © Amtec
Engineering).
Table 1. Summary of the capabilities, assumptions and limitations of BIONAPL/3D.
Capabilities
•
3D, 2D or 1D domains.
•
fully coupled density-dependent flow (steady
state or transient) and mass transport.
multi-contaminant species, multi-electron
acceptors, multi-microbial populations
porous or discretely fractured porous media
sources can be in the aqueous phase, or can
originate from a dissolving NAPL phase.
Sources can be located on a boundary or
within the domain.
domain can be heterogeneous and anisotropic.
deformable elements can conform to complex
geometry.
includes relative permeability changes with
NAPL dissolution
multiple sources and sinks can be
accommodated including a variable pumping
history.
versatile boundary condition options.
automatic watertable search for unconfined
aquifers.
includes linear/nonlinear retardation and firstorder decay or Monod-type kinetic
degradation.
output includes 3D volumes, selected 2D
sections, 1D profiles, and concentration
breakthrough (conc. vs time).
•
•
•
•
•
•
•
•
•
•
•
Assumptions and Limitations
•
•
•
•
•
•
•
non-deforming, isothermal aquifer
fluid is incompressible.
well bore storage and well losses are neglected
geochemical reactions are neglected
saturated flow domain
NAPL phase (if included) is immobile
(i.e. at residual saturation or lower)
gas phase transport not included
•
biomass growth does not affect the flow
system (option available soon)
•
biodegradation assumes complete
mineralization (can be relaxed using modified
stoichiometric ratios)
5
2. Theoretical Development
The BIONAPL/3D model is based on the equations for advective-dispersive reactive transport
within a porous media. The model considers multiple components dissolving from a residual NAPL
source, as well as nonlinear and kinetic sorption, electron acceptor-limited biodegradation and
transport and sorption to a reactive carrier.
2.1 Groundwater Flow
In the derivation of the flow equation, we first define an equivalent freshwater head ψ (Frind, 1982a)
as
ψ=
p
+z
ρ0 g
(1)
where p is the fluid pressure, ρo is the reference freshwater density, g is the gravitational acceleration,
and z is the elevation.
The Darcy equation for density-dependent flow can be written as (Bear, 1972)
qi = -
∂z ⎞
k ij ⎛⎜ ∂p
⎟
+
g
ρ
∂ x j ⎟⎠
μ ⎜⎝ ∂ x j
(2)
where qi is the Darcy flux, kij is the permeability, μ is the dynamic viscosity, and ρ is the fluid
density. Substituting equation (1) into (2), we obtain
⎡ ∂ψ
⎤
+ ρ r n j⎥
qi = - K ij ⎢
⎣∂ x j
⎦
(3)
where ρ r , the relative fluid density, is defined by
ρr =
ρ
-1
ρ0
(4)
and the hydraulic conductivity Kij is defined as Kij=kij ρo g/ μ .
6
Assuming a dilute solution of a single component under isothermal conditions, the fluid density and
concentration are related by
ρ = ρ 0 (1 + γc )
(5)
where c is the relative concentration (dimensionless) and γ is a constant defined by
γ=
ρ max
-1
ρ0
(6)
where ρ max is the maximum density of the fluid. Substituting (5) into (4) gives
ρr =γ c
(7)
In the more general case of multiple components, the local relative fluid density ρr is calculated as a
function of the densities ρk and concentrations ck of all Nc components being transported according to
ρr =
1
ρo
Nc
⎛ ck ⎞
c
−
⎜ ⎟
∑
∑
k
k =1
k =1 ⎝ ρk ⎠
Nc
(8)
which accounts for component densities greater and/or less than water. Frind (1982a) points out that
the use of concentration rather than density in the Darcy equation provides better numerical precision.
The continuity equation for flow for the porous media can then be expressed as (Bear, 1972)
⎛ ∂ψ
⎞⎤ N
∂S
∂ ⎡
∂ψ
+θ w
+ γc n j ⎟ ⎥ - ∑ Qk (t ) ⋅ ( xk , yk , zk ) = S w S S
⎢ K i, j krw ⎜
∂ x i ⎣⎢
∂t
∂t
⎝ ∂x j
⎠ ⎦⎥ k =1
(9)
where xi are the 3D spatial coordinates, Kij is the hydraulic conductivity tensor, ψ is the equivalent
freshwater head, gc = ρ r (c) is the concentration-dependent relative density of water, Qk is the fluid
volume flux for a source or sink located at (xk,yk,zk), Ss is the specific storage, and t is time.
The relative permeability krw is defined as a function of the water saturation Sw, in the form (Corey,
1986):
⎛ S − S rw ⎞
krw = ⎜ w
⎟
⎝ 1 − S rw ⎠
4
(10)
7
where Srw is the irreducible degree of water saturation. Hence, for a dissolving (or precipitating)
NAPL, BioNAPL accounts for the relative permeability increase (or decrease). The degrees of
saturation are related by:
(11)
S w + Sn = 1
Boundary conditions for (9) can be either first type (fixed head) or second type (fixed head gradient).
A similar equation governs groundwater flow within 1D pipe elements, or 2D discrete planar fractures,
for which the hydraulic conductivity is defined as:
K f = ( 2b ) ρ g /12 μ
2
(12)
where 2b is the fracture aperture.
2.2 Multi-Component Mass Transport
2.2.1 Governing Transport Equations
The BIONAPL/3D model solves a reactive transport equation for each component, as well as for
each electron acceptor and microbe population. The governing equation for mass transport of
component Cα can be written (for a porous medium) as
∂C α
∂
=
Rθ S w
∂t
∂xi
⎡
⎛
∂C α ⎤
∂C α
Cα ⎞
α
α
α
+ θ S w λ DIS ⎜ C S −
⎢θ S w Dij
⎥ − qi
⎟ − θ S w λ BIO C
∂x j ⎥⎦
∂xi
E ⎠
⎝
⎣⎢
(13)
where the dissolution rate term (Frind et al. 1999) is
α
λ DIS
=
ShD α ⎛ f α S n ⎞
⎟
⎜
(d 50 )2 ⎜⎝ S no ⎟⎠
β
(14)
and the effective solubility is
(
C S = Coα χ α
)
(15)
The biodegradation decay term is
λαBIO
⎡
⎛
⎜
NA ⎢
1
α ,n
n⎜
⎢
= ∑ k M
Nc
⎜ α ,n
α
α, j
j
n =1 ⎢
⎢
⎜ K C + C + ∑ K II C
j =1
⎝
⎣
⎤
⎞
⎥
⎟
⎞
An
n⎥
⎟• ⎜⎛
⎟ ⋅ I ⎥
⎟ ⎝ K A α , n + An ⎠
⎥
⎟
⎠
⎦
(16)
8
where:
Cα
An
Mn
kα,n
KC α,n
KAα,n
KII α,j
In
Coα
Xα
q
v
D
d50
R
Sw
Kd α
ρb
θ
λα
t
xi
E
NA
NC
= contaminant concentration for organic component α (kg/m3)
= electron acceptor concentration (kg/m3)
= microbe concentration (kg/m3)
= maximum organic utilization rate (kgSkgM-1day-1)
= organic half-utilization-rate concentration (kg/m3)
= oxygen half-utilization-rate concentration (kg/m3)
= inter-component inhibition constant of organic α by component j.
= electron acceptor inhibition constant (see eq. 15)
= pure phase solubility of the organic (kg/m3)
= mole fraction of organic component
= Darcy flux (m/d)
= groundwater velocity (m/d) (v=q/θSw)
= hydrodynamic dispersion coefficient (m2/d)
= mean grain diameter (m)
= linear retardation coefficient; R = 1+ ρb Kd α / θ
= water saturation
= linear sorption distribution coefficient (m3/kg)
= bulk density of the porous medium (kg/m3)
= porosity
= dissolution rate coefficient (day-1)
= time (days)
= spatial dimension (m) (xi = x,y,z)
= dissolution enhancement factor
= number of electron acceptors
= number of organic components
Note that the form of equation (13) assumes that the sorbed phase (if present, i.e. if R>1) does not
decay, which is a typical assumption for microbial degradation. To account for radioactive decay of
a sorbing component, the user must enter a modified decay rate λ*, where λ*= λ*R.
The governing equation for the electron acceptor can be written in a form similar to (13) and
expressing the decay term as
n
BIO
λ
⎡
⎛
⎜
Nc ⎢
Cα
α ,n
n α ,n ⎜
⎢
= ∑ k M Χ
Nc
⎜ α ,n
α
α =1 ⎢
+
+
K
C
K IIα , j C j
∑
⎢
⎜ C
j =1
⎝
⎣
⎤
⎞
⎥
⎟ ⎛
⎞
1
n
⎟• ⎜
⎟ ⋅ I ⎥⎥
⎟ ⎝ K A α , n + An ⎠
⎥
⎟
⎠
⎦
(17)
9
where Xα,n is the stoichiometric ratio of the mass of electron acceptor consumed per mass of
organic consumed (kg/kg).
Following the approach of MacQuarrie et al. (1990) and Frind et al. (1989), we assume the
microbial population is stagnant and grows according to
∂M n
∂t
⎡
⎛
⎜
Nc ⎢
Cα
= ∑ ⎢Y α , n M n k α , n ⎜
Nc
α,j
⎜
α ,n
α
α =1 ⎢
K
C
K
Cj
+
+
∑
C
II
⎢
⎜
j =1
⎝
⎣
⎤
⎞
⎥
⎟ ⎛
n
⎞
A
n
⎟•⎜
⋅ I ⎥ − bM n
α ,n
n ⎟
⎥
⎟ ⎝ KA + A ⎠
⎥
⎟
⎠
⎦
(18)
where Y is the microbial yield coefficient and b is a linear decay rate (day-1).
The corresponding governing equation for mass transport within a horizontal fracture can be
written as (Yang et al. 1996a,b):
Sw
∂
∂xi
⎡ ∂c′ ⎤
Dij ⎡ ∂c′ ⎤
∂ ( c′ )
c′ ⎞
∂c′
⎛
− S wλ DIS ⎜ CS − ⎟ − S wλ BIO c′ + S w
= RS w
⎢ Dij
⎥ − v′i
⎢
⎥
E⎠
b ⎣ ∂z ⎦ z =± b
∂xi
∂t
⎝
⎢⎣ ∂x j ⎥⎦
(19)
where c' is the component concentration in the fracture, vi are the fracture velocities in the x and y
directions (ms-1), and b is the half-fracture aperture (m). The last term on the left hand side of (19)
represents the mass transfer between the fracture and the porous matrix.
2.2.2 Inhibition
Three methods of inhibiting biodegradation of the organic components are considered in the
BIONAPL model: electron acceptor inhibition, inter-component inhibition and
maximum/minimum threshold inhibition. Electron acceptor inhibition (using the xkin(j) variable),
will adjust the availability of multiple electron acceptors for the biodegradation of each organic.
Inter-component inhibition (with the variable zinhib(i,j)) will reduce the effective degradation rate
of one organic if there is competitive inhibition; that is, if the degradation rate of that component is
reduced by the degradation of one or more of the other components. Finally, the max/min
thresholds are simply the critical maximum (cinib(i,j)) and minimum (thresh_s, thresh_o(j))
concentrations of each organic and EA beyond which degradation will not proceed. The three
methods are outlined below.
10
Electron Acceptor Inhibition
In the case of multiple electron acceptors, the inhibition function (In) allows either a gradual or
abrupt change between preferred electron acceptors. The function takes the form
I n =1 = 1; I n >1
⎡
⎤
⎢
⎥
1
⎢
⎥
=∏
Ai −1 ⎥
i =2 ⎢
⎢1 + K i −1 ⎥
⎣
⎦
IA
n
(20)
Where KIA (variable xkin in the model) is the inhibition coefficient for electron acceptor n. The
behaviour of the inhibition constant is shown, for a 2 electron-acceptor system, in Figure 2. For this
system, if both electron acceptors are considered equally available with no preference other than
through the kinetic rate constant k, then K1A should be set very high (e.g. 10000) such that the
inhibition factor I2 remains equal to one (i.e. no inhibition).
If, however, the second electron acceptor is only to be utilized after the first is almost completely
consumed, then K1A should be set very small (e.g. < 0.0001 [A]max). The Inhibition factor for the
second electron acceptor I2 will then decrease rapidly as the concentration of the first electron
acceptor increases, thereby limiting consumption of the second electron acceptor where the first
exists at sufficient concentration. A similar behaviour can be simulated for third, fourth and
additional electron acceptors.
Figure 3 shows the conceptual model for degradation among competing substrates and electron
acceptors. Preferential degradation is handled through the degradation constants, as well as the
inhibition factor KIA. For example, if EA #1 is preferred, it should be placed first, and the
degradation constant for EA 1 would be higher than for EA2. The conversion from EA1 to EA2 is
handled through KIA.
I1, I2(k1 = 10000)
Inhibition Constant (I)
1
0.8
I2 (k1=10)
0.6
0.4
I2 (k1=0.1)
0.2
I2 (k1=0.01)
0
2
I2 (k1=1)
4
6
8
10
Electron Acceptor Conc (mg/L)
Figure 2. Behaviour of the inhibition constants I1 and I2 (for a 2 electron acceptor system, using
equation 20) as a function of the electron acceptor concentration A, shown for 5 selected values of
the electron acceptor inhibition constant KIA. A high constant will allow simultaneous EA
11
utilization, while a small constant will prevent utilization of an EA until the previous EAs have
been depleted.
Substrate
Electron Acceptor
k 1,1
1
k 1,2
benzene
k 2,1
k 2,2
2
toluene k 3,1
3
xylenes
Microbes
1
oxygen
2
nitrate
k 3,2
Figure 3. Schematic showing linkages between substrates, electron acceptors and microbe
populations for a system with 3 components and 2 electron acceptors. Reaction rates kij are shown.
Inter-Component Inhibition
Inter-component inhibition is controlled by the parameter KII , represented in the model by the
variables zinhib(i,j) which represents the inhibition of component i by component j (Kij).
Inter-component inhibition terms for organic component i are required for all other components.
Therefore, for each component, (Nc-1) inter-component inhibition terms must be entered to the
model.
The inhibition terms appear above in equations 16, 17 and 18 within the Monod-term as:
⎛
⎜
Cα
⎜
Nc
α,j
⎜
α ,n
α
+
+
K
C
K II C j
∑
⎜ C
j =1
⎝
⎞
⎟
⎟
⎟
⎟
⎠
Therefore, as the magnitude of the inhibition constant KII increases, the rate will decrease. If there
is no inhibition of component α by component j, then KIIαj = 0.
12
Maximum and minimum thresholds for degradation:
Two additional types of inhibition are also included in BioNAPL. The variable “cinib(i,j)” is a
maximum concentration for component i, above which this substrate is assumed toxic to the
microbe population j (associated with EA j). Set cinib(i,j) greater then the maximum expected
component concentration to allow biodegradation at all high concentrations. Similarly, the
variables “thresh_S” and “thresh_O(j)” represent minimum concentrations of all substrates and the
minimum concentration of electron acceptor j, respectively, below which biodegradation is
assumed inactive. Currently, this minimum threshold must be constant for all components. The
minimum threshold can be different for each electron acceptor.
2.2.3 Linear (1st Order) Degradation
Use of the above Monod terms will in general yield a non-linear rate dependent on both the
substrate and electron acceptor concentrations. First-order (linear) degradation, dependent only on
the substrate concentration, can be simulated using two approaches, Method I and II described
below. Freitas et al (2010) use BioNAPL to simulate first-order degradation of ethanol-containing
fuels in a field experiment. An example of Method II is provided in Appendix E.
Method I: Fixed rate
The first method is simply to use the fixed decay rate λ [day-1] in the data file, defined by
λ=
ln 2
t1/ 2
(21)
where t1/2 is the half-life (days). This rate λ is entered on the same line as the elemental
dispersivities (see sample data file in Appendix A). This fixed value for λ takes the place of
equation 16 above. If this method is used, the user must also set kbio = 0, mode = 0 and kα,n =0.
Note that this use of first-order rates is not affected by inhibition and minimum threshold
concentrations. To invoke inhibition and threshold concentrations, the second method below must
be used. Furthermore, for multiple components, this fixed-rate approach assumes the same rate for
all components. To vary the rate among components, Method II must be used.
Method II: Modified Monod Terms
The second method for assigning first-order rates is to modify the Monod terms to give a first-order
rate. This is accomplished by setting the following constraints:
Set
An
= 1.0;
Mn = 1.0; Y = 0.0 ;
X = 0.0
13
KC α,n >> C α (by at least two orders of magnitude)
KAα,n < 10-24
Then set kα,n = λ ·KC α,n where λ is the desired first order decay rate (/day). Also, you should set
kbio=1 (active biodegradation), and mode=0 (linear). By inspection of equation 17, the above
formulation will produce a fixed, first-order degradation rate. Inhibition and minimum threshold
concentrations are still active using this approach.
Verification of Decay:
The numerical implementation of the decay term is here verified against the analytical solution
LINE2D. The BioNAPL model is tested using both the fixed rate approach, and the Modified
Monod term approach for linear decay.
The test system and chosen parameters are shown in Fig. 4.
The fixed decay rate was 6.93e-3 day-1 , equivalent to a half-life of 100 days. This rate was also
obtained using the Monod terms by choosing:
kα,n
An
KC α,n
KAα,n
= 6.93e02
= 1.0; Mn = 1.0; Y = 0.0 ;
= 1.e5
= 1.0e-25
X = 0.0
In all cases, the numerical model is an excellent match to the analytical model.
Domain Boundary
v = 0.124 m/d
αL = 0.1m
αT = 0.002m
t1/2 = 100 days
(λ=6.93e-3 day-1
13.5 m
source
6.5m
0m
20 m
Analytical (Line2D)
BioNAPL: Monod Linear Rate
BioNAPL: Fixed Linear Rate
Conc. C/Co
1
100 days
0.5
40 days
10 days
0
0
5
10
X Distance (m)
15
20
Figure 4. Verification of the BioNAPL model for linear decay.
14
2.2.4 Daughter Products
BioNAPL can be used to simulate chain decay, i.e. the generation and transport of multiple
daughter products from the decay of each component simulated. Decay of a parent component is
achieved with the Monod terms as above (nonlinear or linear forms), and the daughter products are
entered and transported as separate components linked to the parent.
The user must define two parameters for each daughter product: the component number of its
parent (kdp(#)), and the reaction stoichiometry mass ratio (xdp(#)) (i.e. mass of daughter product
produced per mass of parent decayed). For a parent which is not a daughter product itself, these two
terms remain = 0.
For example, consider the reductive dechlorination of DCE to VC, and VC to ethene. This is a 3component system: component 1 (parent DCE), component 2 (VC, considered as the daughter
product of component 1), and component 3 (ethene, the daughter product of component 2). The
reductive dechlorination of DCE to VC can be written as:
C2H2Cl2 + H2 → C2H3Cl + Cl- + H+
In which the source of dissolved hydrogen (the electron donor) can originate from fermented
natural organic matter, hydrocarbons (BTEX), volatile fatty acids, etc. (Wiedemeier et al. 1999).
Thus, 1 mole of VC is produced for every mole of DCE degraded, giving a mass ratio of 0.65.
(=MWVC/MWDCE × 1moleVC/1moleDCE).
Similarly, the reductive dechlorination of VC to ethene can be written as:
C2H3Cl + H+ → C2H4 +ClIn which the mass ratio is 0.45 (=MWethene/MWVC × 1moleethene/1moleVC). Therefore, with DCE
decaying toVC which itself degrades to ethene, the following input values are used:
Component
1 (DCE, parent 1)
2 (VC, daughter 1 – daughter of component 1)
3 (ethane, daughter 2 – daughter of component 2)
kdp
0
1
2
xdp
0
0.65
0.45
Since kdp(2)=1, this indicates that component 2 is a daughter product of component 1. The decay
rates for the components can be whatever the user wishes, however for a linear decay rate, Method
II must be used. In the above case, the initial conditions for component 2&3 should be zero
everywhere; these components will be produced as source terms from component 1&2 respectively.
As in the above example, the daughter products themselves can degrade, by using the Monod terms
as above. A sample simulation is provided in Figure 5 with decay rates of 0.05 day-1 and 0.01 day-1
for DCE and VC, respectively.
15
The parameters kdp and xdp are the last two entries of each line defining the component density,
molecular weight, aqueous solubility etc. For further clarification, see the example in Appendix C
which includes an example of methane as a daughter product of Toluene degradation.
Case A:
-1
λ1-2=0.05 day-1
λ2-3=0.01 day
1
0.8
Conc (g/L)
parent (DCE)
BioNAPL numerical model
Chain1 Analytical model (Neville, 2005)
0.6
0.4
daughter 1 (VC)
0.2
0
daughter 2
(ethene)
0
5
10
Distance (m)
15
20
Figure 5. Longitudinal profiles of concentration for the 3-component chain decay system of DCEVC-Ethene, after 50 days. System parameters are: Vx = 0.1 m/day, porosity =0.1, dispersivity =
1.8m, R1=R2=R3 = 1. The input boundary is a first-type concentration of 1.0. The above plot shows
a comparison between the analytical model CHAIN1 (Neville, 2005) and BioNAPL. Decay rates
are shown in the figure.
16
2.2.5 Reaction Stoichiometry
The ratio of mass of electron acceptor consumed per mass of substrate consumed (Xα,n in equation
17) is determined by reaction stoichiometry, assuming complete mineralization to CO2 and H2O.
Table 1 below provides example calculations for several organic substrates reacting with oxygen.
The ratios must be adjusted if only partial mineralization is assumed to occur.
Table 2. Sample reaction stoichiometries and corresponding mass ratios. The mass ratio X
corresponds to the variable ROS in the model.
Component
Reaction Stoichiometry
Mass ratio X
kg O2 / kg organic
Benzene
C6H6 + 15/2 O2 ⇒ 6CO2 + 3H2O
3.08
Toluene
C7H8 + 9O2
⇒ 7CO2 + 4H2O
3.13
Ethylbenzene or
Xylene
Methylnaphthalene
C8H10 + 21/2 O2 ⇒ 8CO2 + 5H2O
3.17
C11H10 + 27/2 O2 ⇒ 11CO2 + 5H2O
3.04
17
2.2.6 Source Dissolution
The BIONAPL model can simulate either kinetic (slow, or rate-limited) or equilibrium dissolution
from a residual NAPL source. Kinetic dissolution is simulated using the source term λDIS defined
by equation (14) and by defining a nonlinear dissolution rate coefficient γ (Frind et al., 1999).
Equilibrium dissolution can be simulated by choosing a sufficiently large value for γ .
Alternatively, for boundary sources, an equilibrium mixing cell algorithm based on Raoult’s Law
can be employed. Raoult’s Law defines the concentration of a NAPL component in water that is in
equilibrium with the NAPL, and is given by
CS = Co X
(22)
where CS is the effective solubility of the component (Poulsen et al., 1992).
For a first or third-type boundary condition, the source concentration CS can be supplied through a
built-in mixing cell model which solves equation (22). The mixing cell algorithm is based on
advective flux through a series of rectangular cells as shown in Figure 6.
q
C=0
C in
A
Cout
x
Cs
Figure 6. Conceptual model for the equilibrium mixing cell dissolution model within BIONAPL.
The equation for mass transfer between cells is governed by mass conservation, which can be
written as
dM
= J in − J out = qA(Cin − Cout )
dt
(23)
where M is the cell mass (kg), J is the mass flux (kg/s) and A is the cross-sectional cell area (m2).
At the uppermost cell, Cin = 0 (assuming clean recharge water), and at every other cell Cin equals
18
the effective solubility (CS) of the upgradient cell. At every cell, Cout equals the effective solubility
of that cell.
The mixing cell model solves for mass transfer for each component, at each cell, over time. Initial
masses must be specified for each component. The number of cells can be varied depending on the
assumed source behaviour. A single cell, for example, will produce a smooth decline in the outflow
concentration as the mole fraction and effective solubility of each component continuously
declines. A large number of cells will produce a constant source concentration until only the last
cell contains mass, after which the outflow concentration will rapidly decline.
To activate the equilibrium mixing-cell model, the user must set keqm=1, and enter the data lines in
the file bioeqm.dat (see example file in Appendix A). Other conditions apply.
Equilibrium dissolution assumes ideal component behavior and a large contact area between the
residual NAPL and the groundwater. Cline et al. (1991) conclude that Raoult’s law is valid for
gasoline mixtures and there is evidence that residual NAPL’s can dissolve in the subsurface under
essentially equilibrium conditions (Frind et al., 1999). Source heterogeneities and non-ideal
component behaviour can, however, lead to non-equilibrium dissolution at the field scale (Soerens
et al., 1998).
2.2.7 Boundary Conditions
Boundary conditions for equation (13) can be either a fixed concentration (Dirichlet), a zero
gradient (Neumann) or a mass flux (Cauchy) type. Dirichlet and Cauchy conditions are often used
to represent sources while Neumann conditions are appropriate at exit or no-flow boundaries. The
Cauchy boundary condition is ideal for the dissolving gasoline sources considered here, and is
defined as
∂C ⎞
⎛
q o C o = θ ⎜ vC − D
⎟
∂x ⎠
⎝
(24)
where qo is the recharge rate (m/s), and Co is the source concentration (kg/m3). Equation (22)
balances the mass flux on the outside of the boundary (qoCo) with the mass flux on the inside. The
source concentration Co can be either fixed or can vary in time according to the source dissolution
behavior. Boundary and initial conditions must be specified for each of the organics and for each of
the electron acceptors.
19
2.2.8 Carrier Transport (CC):
The BIONAPL/3D model also considers transport of a reactive carrier, such as dissolved organic
carbon (DOC), to which the aqueous organics can partition. A conceptual model of a carrierinfluenced system is provided in Figure 7.
Groundwater
Flow
m
Cw
NAPL
Phase
Km
HA
Ka
Kd
Solid Grain
Surface
Aqueous
Phases
SS
SC,
eqm
SC,
Sorbed
Phases
kin
Equilibrium
Kinetic
Figure 7. Conceptual model of a dissolving NAPL showing sorption to a mobile carrier (after
Molson, 2000).
The governing equation for the mobile carrier can be written as:
∂CC
∂t
⎛
⎞
f ⋅ ρb
QK a
⎜⎜1 +
⎟ + ρ bα ( S c − S c ,kin ) =
2 ⎟
+
K
C
θ
(
1
)
a c
⎝
⎠
∂ 2 CC
∂C
−v C
D
2
∂x
∂x
(25)
where CC is the concentration of the carrier, f is the fraction of equilibrium sorption sites, and SC
and SC,kin are the concentrations of the sorbed carrier for the equilibrium and kinetic sorption sites,
respectively. Assuming a Langmuir isotherm, the equilibrium component can be expressed as
S C = Q ⋅ K a CC /(1 + K a CC )
(26)
20
where Q is the maximum sorbed concentration at equilibrium (kgcarrier/kgsolids), and Ka is the
sorption coefficient (m3water/kgsolids). An example equilibrium isotherm is provided in Figure 8.
Sorbed HA Conc. (kg/kgsol)
Langmuir Fit to Batch HA Sorption Data
(from VanStempvoort et al., 2000)
0.0005
0.0004
0.0003
observed
Langmuir fit
0.0002
Scs = QKa[HA]/(1+Ka[HA])
Ka = 40 m3/kg
Q = 0.00042 kg/kgsol
0.0001
0
0
0.25
0.5
0.75
1
Aqueous HA Conc. (kg/m3)
Figure 8. Sample Langmuir isotherm (from Molson, 2000).
The kinetic sorption concentration is calculated by the model using:
α ⋅ Δt
S t + Δt C ,kin =
(1 − f )
(27)
( S C − S C ,kin ) + S t C ,kin
Sorbed HA (kg/kg sol.)
where α is a kinetic rate coefficient (day-1). A sample kinetic component of sorption, observed for
humic acid, is provided in Figure 9.
2.5x10
-04
2.0x10
-04
1.5x10
-04
1.0x10
-04
5.0x10
-05
0.0x10
Sorbed Humic Acid
+00
0
25
50
75
100
125
150
Time (days)
Figure 9. Sample kinetic sorption of a humic acid carrier to aquifer solids (after Molson, 2000).
For a dissolving NAPL, the carrier can enhance the dissolution by lowering the free aqueous
concentration of the dissolved organic. The relationship is expressed as an enhancement factor
given in equation (12), and defined by:
E = 1 + K m CC
3
where Km is the binding coefficient (m
(28)
water/kg).
21
2.2.9 Solution Strategy
The governing equations (9) for flow, and variations of equation (13) for each component, electron
acceptor and carrier, are solved within a 3D system using a Galerkin finite element approach. The
nonlinear dissolution and decay terms are handled using a Picard iterative scheme with central
time-weighting. Similar numerical approaches have been used in reactive transport modeling by
Frind et al. (1999, 1994) and Molson et al. (1992, 2000).
Within each time step, the iterative transport routine follows the order given below:
1. Solve equation (13) independently for each organic component, assuming identical electron
acceptor concentrations in the organic Monod term (16).
2. Solve equation (13) for the electron acceptor, using the EA Monod decay term (17), and the
new organic concentrations from step 1. A decay term is included for each of the organics
which are consuming the electron acceptor.
3. Return to step 1, update the new organic and electron acceptor concentrations at the (t+ Δ t)
time-level, and repeat until convergence is achieved. The microbe concentrations are updated at
each iteration, and again following convergence.
4. Following convergence, update all concentrations for the next time level and begin the next
time step.
5. The flow system must also be re-solved within each time step for transient flow, and is
iteratively coupled with the transport steps above for density-dependent cases, or when there are
significant saturation changes due to NAPL dissolution.
The iterative scheme allows simultaneous degradation of multiple compounds provided the electron
acceptor concentrations are sufficient. If two compounds coexist, for example, they will both
deplete the available electron acceptor(s) but at different rates depending on their reaction
parameters and nodal substrate and electron acceptor concentrations. Substrate inhibition, in which
the existence of one compound inhibits the degradation of another (in addition to competition for
the electron acceptor), is also supported. Convergence and mass balance are maintained by
choosing a suitably small time step and fine spatial resolution.
Groundwater flow velocities are provided through coupling with a transient, saturated flow
algorithm which solves equation (9) (Molson et al., 1992). Deformable brick elements are used
with an iterative watertable search, and both flow and transport matrices are solved using an
efficient conjugate gradient solver.
22
3. Designing a Model
3.1 Grid Definition
BIONAPL/3D currently supports a 1D, 2D, or 3D domain descretized using deformable brick
elements as shown in Figure 10. The grid generator built into the model supports regular rectangular
domains. Although a constant number of elements must presently exist for each row and column, the
element spacing can vary in each direction.
Grid elements are numbered by layer to facilitate defining layered hydraulic conductivity distributions
(Figure 10). In contrast, the nodes are numbered vertically beginning at (x,y,z) = (0,0,0). The element
incidence array, which defines the global node numbers connected to each element, is stored in the
array in(l,i) where l is the global element number, and i is the local element node number (Figure 11).
The grid is generated by subdividing each direction into a number of sub-regions where each subregion has a uniform element size. The number of sub-regions in each direction is defined using ngx,
ngy and ngz in the x,y and z-directions respectively. The element spacing is specified by entering, for
each of the 3 directions, the grid limits (in metres) defining the intervals, and the number of elements
desired between these limits. There is a maximum limit of 5 sub-regions allowed in each direction.
Figure 10. Grid definition and numbering convention for BIONAPL/3D.
23
Figure11. Element incidence numbering convention in BIONAPL/3D.
In designing the grid, the primary considerations are the Peclet and Courant criteria, the anticipated
maximum extent of the plume, well locations and available computer memory. The grid Peclet and
Courant criteria are defined by Daus et al. (1985) and can be estimated using
Px =
V Δy
V x Δx
V Δz
≤ 2 Py = y
≤ 2 Pz = z ≤ 2
D xx
D yy
D zz
27
V y Δt
V Δt
V x Δt
≤ 1 Cy=
≤ 1 Cz = z ≤ 1
RΔx
RΔy
RΔz
28
and
Cx=
respectively, where Δ x, Δ y and Δ z are the grid spacings, and Δ t is the time step. The Peclet criteria
control numerical dispersion while the Courant criteria control numerical oscillations.
24
3.2 Flow System
Designing the flow system is perhaps the most important step of any transport model. A little more
time spent here can save a lot of time later by avoiding bad transport runs. Before any transport
simulation is attempted, the user should simulate and view the flow system, making sure it is
behaving as expected. Particular attention should be focussed on the velocity field (veloc.out),
making sure the velocities are compatible with the grid size, through the peclet and courant criteria.
Heads can be viewed in the vertical cross sections (hxz.out and hyz.out) as well as in the plan view
(hxy.out).
The steps to designing a flow system are:
1. determine the flow boundaries and boundary conditions, including constant heads and
surface recharge.
2. assign all flow properties (conductivity, porosity, storage coefficient)
3. assign convergence criteria for watertable deformation or nonlinear flow conditions (e.g.
density or NAPL dissolution).
To test the flow system, keep kcntrl=1 (second option in third line) in order to complete the flow
simulation only, without transport (but all transport lines must still be incldued). After the flow
simulation is complete, look at the file bionapl.lst and make sure the input data were read
correctly, and check at the bottom of the file to make sure the solution converged. You should see
something like this:
non-linear iteration # (kit): 0
----------------------------------pcgn solver used 159 iterations
flow solution complete
max head change ... dumx2: 0.82741E+00
The "max head change" is the maximum head change during this iteration, or time step. If this is a
nonlinear run (deforming watertable or together with transport), the solution will iterate until the
head change is below the convergence criteria. The "max head change" value should decrease
during the iterations.
25
3.3 Transport System
After the flow system has been defined, you can define your transport system. Again, suitable
transport boundary conditions must be defined, and the composition of the source must be specified.
Contaminant sources can take any of the following forms:
1.
2.
3.
4.
an initial condition of aqueous components
a boundary source of aqueous components (constant or changing concentration in time)
an internal NAPL source of dissolving components (kinetic or equilibrium dissolution)
a boundary NAPL source of dissolving components (equilibrium dissolution using mixing cell
model, set keqm=1)
5. an injection of aqueous components at a well
Appendix A outlines how these sources are defined. Once the source boundary (or internal) condition
for a NAPL is decided, the components making up the source must be specified. In this example, we
have 4 components making up a gasohol source:
4
1
Benzene
878.6 .078
TEX
870. .104
Inert
900. .1
Ethanol
789. .046
1.78
0.0
;# of components,# of EA
;name of Contaminant
0.0
2.33e-5
0.0 7.7e-10
.288
0.0
0.0
2.33e-4
0.0
6.2e-10
0 0.
.020
0.0
0.0
4.20e-4
0.0
6.2e-10
0 0.
100.
0.0
0.0
0.00
0.0 11.5e-10
0 0.
0 0.
As explained in the Appendix, these values represent respectively, the density (kg/m3), molecular
weight (kg/mol), aqueous solubility (kg/m3), Sherwood number (Sh), exponent Beta, sorption
coefficient Kd, carrier sorption coefficient, diffusion coefficient, daughter product link to parent and
daughter product stoichiometric coefficient. Note some of this information must be repeated in the
bioeqm.dat file for contaminant source-type 4 (boundary source NAPL dissolution).
The molar mass is entered immediately following this data – see below. The source molar mass is
distributed uniformly over the specified source node range for the NAPL. See Appendix A for full
details.
For biodegrading systems, the boundary and initial conditions for the electron acceptors must also be
defined. Currently, for aqueous sources, the boundary types (i.e. 1st-type or 3rd-type) for all
components must be the same, and the boundary types for all electron acceptors must be the same,
although boundary concentrations for the individual organics and electron acceptors can vary.
During and following the transport solution, again check the file bionapl.lst to monitor convergence. If
the solution is not converging, the reaction rates (dissolution, biodegradation) may be too fast, and/or
the time step may be too large.
26
4. References:
Corey, A.T., Mechanics of Immiscible Fluids in Porous Media, Water Resour. Res., 23(1) 191-200,
1987.
Daus, T., E.O. Frind and E.A. Sudicky, Comparative error analysis in finite element formulations of
the advection-dispersion equation, Adv. Water Resour, 8, 86-95, 1985.
Diersch, H.-J.G. and O. Kolditz , Variable-density flow and transport in porous media: Approaches
and challenges, Adv. Water Resour. 25, 899-944, 2002.
Freitas, J., Mocanu, M., Zoby, J.L.G., Molson, J., Barker, J., Migration and fate of ethanolenhanced gasoline in groundwater: A modelling analysis of a field experiment, Journal of
Contaminant Hydrology, (doi: 10.1016/j.jconhyd.2010.08.007), 2010.
Frind, E.O., D.W. Blowes, J.W. Molson, and C.J. Ptacek, Simulation of multi-component reactive
transport in groundwater, International Symposium on Transport and Reactive Processes in Aquifers,
ETH Zürich, April 1994.
Frind, E.O., Simulation of long-term transient density-dependent transport in groundwater, Adv. Water
Resour., 5(2) 73-88, 1982a.
Frind, E.O., and G.E. Hokannen, Simulation of the Borden plume using the alternating direction
Galerkin technique, Water Resour. Res., 23(5), 918-930, 1987.
Frind, E.O., J.W. Molson, M. Schirmer, N. Guiguer, Dissolution and mass transfer of multiple
organics under field conditions: The Borden emplaced source, Water Resour. Res., 35(3), 683-694,
1999.
Frind, E.O., E.A. Sudicky, and J.W. Molson, Three-dimensional simulation of organic transport with
aerobic biodegradation, IAHS Publication No. 185, Ed: Linda Abriola, 89-96, 1989.
Greer, K., Molson, J., Barker, J., Thomson, N., Donaldson, R., High pressure injection of dissolved
oxygen for hydrocarbon remediation in a fractured dolostone aquifer, Journal of Contaminant
Hydrology (doi: 10.1016/j.jconhyd.2010.07.007), 2010.
Ji, W. and M.L. Brusseau, A general mathematical model for chemical-enhanced flushing of soil
contaminated by organic compounds, Water Resour. Res., 34(7), 1635-1648, 1998.
Lesage, S., H. Xu, K. Novakowski and S. Brown, Use of humic acids to enhance the removal of
aromatic hydrocarbons from contaminated aquifers, Report to GASReP, 1997.
MacQuarrie, K.T.B., E.A. Sudicky and E.O. Frind, Simulation of biodegradable organic contaminants
in groundwater: 1. Numerical formulation in principal directions. Water Resources Research, 26(2),
207-222, 1990.
27
Molson, J.W., Numerical Simulation of Hydrocarbon Fuel Dissolution and Biodegradation in
Groundwater, Ph.D. Thesis, Dept. of Earth Sciences, University of Waterloo, 2000.
Molson, J.W., Barker, J., Frind, E.O., Schirmer, M., Modelling the impact of ethanol on the
persistence of benzene in gasoline-contaminated groundwater, Water Resour. Res. 38(1), 4(1-12),
2002a.
Molson, J.W., E.O. Frind, and C. Palmer, Thermal energy storage in an unconfined aquifer 2. Model
development, validation and application, Water Resources Research, 28(10), 2857-2867, 1992.
Molson, J.W., Frind, E.O., Van Stempvoort, D.R. and Lesage, S, Humic acid-enhanced remediation of
an emplaced diesel source in groundwater: 2. Numerical model development and application, Jour.
Contam. Hydrol. 54, (3-4), 275-303, 2002b.
Molson, J., M. Mocanu, and J. Barker, Numerical analysis of buoyancy effects during the dissolution
and transport of oxygenated gasoline in groundwater, Water Resour. Res., 44, W07418,
doi:10.1029/2007WR006337, 2008.
Poulsen, M., L. Lemon, and J. Barker, Dissolution of monoaromatic hydrocarbons into groundwater
from gasoline-oxygenate mixtures, Env. Sci. & Tech., 26, 2483-2489, 1992.
Rügner, H., Holder, T., Maier, U., Bayer-Raich, M., Grathwohl, P., Teutsch, G., Natural
Attenuation - Untersuchungen "ehemalige Abfalldeponie Osterhofen", Grundwasser, DOI
10.1007/s00767-004-0031-1, 2004.
Schirmer M., E.O. Frind, J.W. Molson, Transport and biodegradation of hydrocarbons in shallow
aquifers: 3D modelling, American Petroleum Institute, Workshop: Comparative Evaluation of
Groundwater Biodegradation Models, Ft. Worth, Texas, 1995.
Schirmer, M., Molson, J.W., Frind, E.O., and Barker, J.F., Biodegradation modelling of a dissolved
gasoline plume applying independent lab and field parameters, J. Cont. Hydrol. 46(4), 339-374, 2000.
Soerens, T.S., D.A. Sabatini and J.H. Harwell, Effects of flow bypassing and nonuniform NAPL
distribution on the mass transfer characteristics of NAPL dissolution, Water Resour. Res., 34(7), 16571673, 1998.
Wiedemeier, T.H., H.S. Rifai, C.J. Newell, and J.T. Wilson, Natural Attenuation of Fuels and
Chlorinated Solvents in the Subsurface, John Wiley & Sons, Inc. 1999.
28
Appendix A: Detailed User Guide for a Sample Data File
29
Array Sizes:
c --------------c maxne
c maxnn
c maxn
c nw
c maxnbb
c maxna
c
c nf
c laa
c maxwell
c maxss
c maxbt
= number of elements
= number of nodes
= number of degrees of freedom
= non-zero bandwidth in case of conjugate gradient solver
= bandwidth for gauss solver (transport)
= total number of non-zero matrix entries in condensed matrix
= 14*n (approximately)
= maximum number of nodes on one face
= 3*maxn + maxna
= maximum number of source/sink wells
= maximum number of source/sink nodes (on all wells)
= maximum number of wells at which breakthrough curves will be generated (a
"well" can either be a vertical strip of nodes, where the breakthrough
concentrations will be averaged over the well screen, or it can be a single node)
= maximum number of time steps
= maximum number of nodes in the vertical z-direction
c maxit
c maxnz
c
c mxgx
= number of grid sub-intervals in x (each sub-interval has a uniform grid spacing)
c mxgy
= number of grid sub-intervals in y
c mxgz
= number of grid sub-intervals in z
c max_comp = maximum number of components in the NAPL
c maxnea = maximum number of electron acceptors
c maxnes
= max number of source NAPL element cells for equilibrium source
c ********************************************************************
c
c sample grid size …
c
parameter(maxn=500000,maxnn=maxn,maxne=500000,nf=52000,nw=15,
+ maxss=500,maxna=14*maxnn,laa=3*maxnn+maxna,np1=maxnn+1,
+ mxgx=11,mxgy=9,mxgz=5,maxnz=51,maxwell=500,maxnx=501,
+ max_comp=10,maxcp1=max_comp+1,maxnea=3,maxnes=1000,maxf=5,
+ maxfrac=300000)
c
30
SAMPLE DATA FILE
(from the Diesel fuel dissolution experiment - see Molson et al. (2002b)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
BIONAPL MODEL - 3D Humic Acid lab test- new Km + BIO + withdrawal well + BTEX
58x21x16 nodes - Langmuir ..
April 2000
0 0 0 0 0 0 0 0 0 1 1 0 2 ;kp,kcn,kwt,kint,kintv,kgo,kg,kranb,krans,kbio,mode,keqm,krtype
6 3 3
1. 1.16 2.5 4.7 5.1 5.5 ;xlim
0.4 0.8 1.2
;ylim
0.500 .75 1.25
;zlim
10 10 20 11 4 2
;nlx
5 10 5
;nly
5 5 5
;nlz
0 00. 0.0 0.0 1860. ;nwtl,datum,gamma,sdecay,rhob
22 9 8 9 +1
;ix,iy,iz1,iz2 breakthrough T3B4
27 11 8 9 +1
;ix,iy,iz1,iz2 breakthrough T4M4
42 11 8 9 +1
;ix,iy,iz1,iz2 breakthrough T7C4
45 8 8 9 +1
;ix,iy,iz1,iz2 breakthrough T8B4
54 11 1 16 -1
; ix,iy,iz1,iz2 purge well
0
;init
1 58 1 21 1 16 1.0 +1
;i.c. flow
1 1 1 21 1 16 1.35 -1
3 3 1 1 12 24
2
1 0.000000 -1 ;fracture
1 0 0 0 0 0
;B.C.'S (FLOW)
1 21 1 16
-1
;nodal range: for type-1 at face 1
1 17100 1.e-4 1.e-4 1.e-3
-1 ;1-NEL,KX,KY,KZ (m/s)
0 0 0 0 0 0 0.00e-6 0.00e-6 0.00e-6 -1 ;inner source K
36 1 20 1 15 -1
;monitor fence by node: x,y1,y2,z1,z2; end=-1,more=+1
0.0e-3 0.30 0.07 1.e-3
;SS,POR,srw,gradius
8 1
xlam b Kc Km DD
;# of components,#ea
Benzene
;name of Contaminant
878.6 .078 1.78 1.0 0.0 8.06e-5 0.0 7.7e-10 0 0. ;rho,mw,aqs,Sh,b,kc,km,D,kdp,xdp
Toluene
870. .092 .515 2.0 0.0 1.61e-4 0.0 6.6e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,rb
Ethylbenzene
870. .106 .152 1.0 0.0 1.61e-4 0.0 6.0e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,rb
Xylene
870. .106 .198 1.0 0.0 1.61e-4 0.0 5.6e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,rb
MNAP
1000. .142 .054 0.9 0.0 2.0e-4 2.1e+00 6.6e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,kdp,xdp
DNAP
1000. .156 .0171 0.9 0.0 4.0e-4 3.7e+00 6.6e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,kdp,xdp
TNAP
1000. .170 .00436 2.2 0.0 1.3e-3 10.0e+00 6.6e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,kdp,xdp
Inert
862. .230 .002
2.2 0.0 1.3e-3 10.e+00 5.0e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,kdp,xdp
11 18 7 15 6 11 -1
;internal napl source
6.e-5 2.e-3 5.e-3 1.e-2 0.007 0.032 0.029 2.0219
;molar mass of each component
.5 0.002 0.002 3.08 0.5 9999. ;utils,uhs,uho,ros,ym,cinib Benzene
.5 0.002 0.002 3.13 0.5 9999. ; Toluene
.5 0.002 0.002 3.13 0.5 9999. ; Ethylb
.5 0.002 0.002 3.13 0.5 9999. ; X
0.02 0.002 0.002 3.04 0.5 9999. ; MNAP
0.02 0.002 0.002 3.08 0.5 9999. ; DNAP
31
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
53b
54
55
56
57
58
58b
59
60
61
62
63
63b
0.02 0.002 0.002 3.11 0.5 9999. ; TNAP
0.20 0.002 0.002 3.2 0.5 9999.
;Inert
0. 0. 0. 0. 0. 0. 0.
;Nc-1 inter-component inhibition for component 1
0. 0. 0. 0. 0. 0. 0.
;Nc-1 inter-component inhibition for component 2
0. 0. 0. 0. 0. 0. 0.
;Nc-1 inter-component inhibition for component 3
0. 0. 0. 0. 0. 0. 0.
;Nc-1 inter-component inhibition for component 4
0. 0. 0. 0. 0. 0. 0.
;Nc-1 inter-component inhibition for component 5
0. 0. 0. 0. 0. 0. 0.
;Nc-1 inter-component inhibition for component 6
0. 0. 0. 0. 0. 0. 0.
;Nc-1 inter-component inhibition for component 7
0. 0. 0. 0. 0. 0. 0.
;Nc-1 inter-component inhibition for component 8
1. 9999.
;reto,xkin1
1000. 1.00e-10 .014
;retm,bm,ymmax
0.006 0.005
;BACKGROUND CONC. O1,O2..-M1.M2 (obsolete)
0.006 0.005
;INITIAL SOURCE CONC. O-M (obsolete)
0.000001 0.000001
;threshold S,O1,O2, ...
1 58 1 21 1 16 1 0.0 0.0 +1 ;initial condition Benzene
1 58 1 21 1 16 2 0.0 0.0 +1 ;initial condition
1 58 1 21 1 16 3 0.0 0.0 +1 ;initial condition
1 58 1 21 1 16 4 0.0 0.0 +1 ;initial condition
1 58 1 21 1 16 5 0.0 0.0 +1 ;initial condition MNAP
1 58 1 21 1 16 6 0.0 0.0 +1 ;initial condition
1 58 1 21 1 16 7 0.0 0.0 +1 ;initial condition
1 58 1 21 1 16 8 0.0 0.0 +1 ;initial condition
1 1 1 21 1 16 9 0.83 0.83 +1 ;initial condition HA
1 58 1 21 1 16 10 0.006 0.006 -1 ;initial condition Oxygen
1 0 0 0 0 0
;B.C.'S (TRANSPORT) 1 21 1 16 -1
1 0 0 0 0 0
;B.C.'S (HA TRANSPORT) 1 21 1 16 -1
1 0 0 0 0 0
;B.C.'s Oxygen
1 21 1 16 -1
40. 1.0 .05 .47 0.00042
;ka,n,xmtc,feqm,qha(kgHA/kgsol) (HA sorption)
0
0.
0.
0.
;IVEL,VX,VY,VZ
1 57 1 20 1 15 .025 .005 .005 0.000 -1
;AL,ATH,ATV,decay(bckgnd)by elm
.01 .001 5 5
;CCP,CCW,MAXIT1,MAXIT2
1.0 1.00
;OVER-RELAX HEADS,temp
22 27 45 47 0
;KNOX(1)(2)TRANSV. SECTION
11 0 0 0 0
;KNOY(1),(2)LONG. SECTION
8
;knoz
300. 500. 1000. 00. 00.
;five 3d print times (days)
0. 51. .2 50 20 +1
;t0,t1,dt,(days),kplot,kmom (/time step)
5. 5. 5. 5. 5. 5. 5. 5.
;new ccc (%)
0.000 1.
0. 0
;hinc,rinc,eqmfact(kg),kha
1. 1. 1. 1. 1. 1. 1. 1.
;massfact (nomp)
1. 1. 1. 1. 1. 1. 1. 1.
1.
;sfact source factors (ncomp+1)
54 11 1 16 1 -1.5625e-7 0. 0.025 -1
;source: ix,iy,iz1,iz2,kcomp.,q(m3/s/node),conc,rad,more
51. 55.0 .2 20 20 +1
;t0,t1,dt,(days),kplot,kmom (/time step)
5. 5. 5. 5. 5. 5. 5. 5.
;new ccc
0.000 1.
0. 1
;hinc,rinc,eqmfact,kha
1. 1. 1. 1. 1. 1. 1. 1.
;massfact (nomp)
1. 1. 1. 1. 1. 1. 1. 1. 1.
;sfact source factors
54 11 1 16 1 -1.5625e-7 0. 0.025 -1
;source: ix,iy,iz1,iz2,kcomp.,q(m3/s/node),conc,rad,more
55. 75.0 .2 25 20 -1
;t0,t1,dt,(days),kplot,kmom (/time step)
5. 5. 5. 5. 5. 5. 5. 5.
;new ccc
0.000 1.
0. 1
;hinc,rinc,eqmfact,kha
1. 1. 1. 1. 1. 1. 1. 1.
;massfact (nomp)
32
64
65
1. 1. 1. 1. 1. 1. 1. 1.
1.
54 11 1 16 1 -1.5625e-7 0. 0.025 -1
;sfact source factors
;ix,iy,iz1,iz2,kcomp.,q(m3/s/node),conc,rad,more
33
Data Line Definitions
The following sections describe in detail the input data requirements for the DNAPL model. The
above data set is used as an example. The input data set must be called “bionapl.data”. Note the line
numbers in the first column are NOT part of the data set, they are used here for reference only.
1. Title group
Three title lines must exist at the top, they are only used for reference
1
2
3
BIONAPL MODEL - 3D Humic Acid lab test+ BTEX
58x21x16 nodes Langmuir ..
April 2000
2. Run-time options
4
0 0 0 0 0 0 0 0 0 1 1 0 2
;kp,kcn,kwt,kint,kintv,kgo,kg,kranb,krans,kbio,mode,keqm,krtype
where:
kp
= 1 coordinates, incidences, boundary arrays printed to listing file
= 0 no extra printing to listing file
kcn
= 0 ... fully coupled transient flow and transport, stop.
= 1 ... steady flow only, no concentration solution
= 2 ... no flow, transport with uniform {v} field, stop.
kwt
= 1 ... option to iterate for watertable mounding
= 0 ... watertable fixed by grid geometry
kint
= 1 ... full element numerical integration
= 0 ... direct integration (preferred option for non-deformed meshes)
kintv = 1 ... numerical derivatives for velocity calculation
= 0 ... direct derivatives (preferred option for non-deformed meshes)
kgo
= 1 ... read initial concentration, heads from restart file “bionapl_in.data”
= 0 ... do not.
kg
= 1 ... adjust flow gradient in time with regressed function
= 0 ... do not adjust flow gradient
(for borden dnapl case)
kranb = 1 ... read random k file bionapl_rank.data for background
= 0 ... do not
34
krans = 1 ... read random k file bionapl_rank.data for source
= 0 ... do not
kbio = 1 ... engage biodegradation
= 0 ... do not.
mode = 1 … assume non-linear biodegradation
= 0 … assume linear biodegradation
keqm = 0 … source is not dissolving at equilibrium at boundary
= 1 … source is at boundary and dissolving at equilibrium (requires bioeqm.dat file)
krtype = 1 … carrier sorption follows Freundlich isotherm
= 2 … carrier sorption follows Langmuir isotherm
3. Grid generation
5
6
7
8
9
10
11
6
3
3
1.
1.16
0.4
0.8
0.500 .75
10 10 20
5 10 5
5
5 5
2.5 4.7
1.2
1.25
11 4 2
5.1
5.5
;ngx,ngy,ngz
;xlim
;ylim
;zlim
;nlx
;nly
;nlz
where:
ngx,ngy,ngz are the number of “divisions” in each direction, each of which has a uniform
grid spacing
xlim,ylim,zlim are the end-coordinates of each division (starting at 0m assumed)
nlx,nly,nlz are the number of elements within each division. In the above example, in the xdirection, there are 10 elements from 0-1m, 10 elements between 1.0-1.16m, and 20
elements between 1.16-2.5m.
Element and node numbering for BIONAPL/3D is shown in Figure A-1.
Figure A-1. Grid element and node numbering scheme for BIONAPL/3D.
35
4. Miscellaneous
12
13
0
22
27
42
45
54
00.
9
11
11
8
11
8
8
8
8
1
0.0
9
9
9
9
16
0.0
+1
+1
+1
+1
-1
1860.
;nwtl,datum,gamma,sdecay,rhob
;ix,iy,iz1,iz2 breakthrough T3B4
;ix,iy,iz1,iz2 breakthrough T4M4
;ix,iy,iz1,iz2 breakthrough T7C4
;ix,iy,iz1,iz2 breakthrough T8B4
;ix,iy,iz1,iz2 purge well
where:
nwtl … number of deformable layers for the watertable iteration (used if kwt=1)
datum … reference datum
gamma … density flag ( =0 for no density effect; =1 to activate density-dependent flow)
sdecay … boundary source linear decay rate (day-1) (applies to all components if ncomp>1)
rhob … bulk density of the porous medium (kg/m3)
The density coefficient flag gamma is used to account for fluid density changes caused by high
concentrations of the aqueous components. Buoyancy effects (for densities less than water) or
sinking (for densities greater than water) can therefore be simulated. The density difference is
determined by the total concentration of all components. Set gamma=0 to de-activate densitydependent flow, and set gamma=1 to activate density-dependent flow. The fluid density will be
calculated based on the component input data.
The values ix and iy define the x-and y-index location of a node at which a breakthrough data set is
to be printed.
The values iz1-iz2 define the vertical range of nodes defining the “well screen”. If a single node is
desired, set iz1=iz2. If a breakthrough curve is desired representing the average concentration
along a well screen, set iz2>iz1, but always iz1>0 and iz2<nz. Use a “+1” at the end of the line
to continue reading additional lines of breakthrough data points, otherwise end the series with a
“-1”. A maximum of 5 breakthrough points (as in this example) may be defined.
Note: In the current version of the code, the breakthrough data can be obtained either at the fence
location, or using the breakthrough points defined above. Both average and peak
concentrations at the fence are printed.
36
5. Flow System & fracture set
14
15
16
17
18
19
20
0
1
58
1
21
1
16
1.0
+1
1
1
1
21
1
16
1.35
-1
3 3
1 1 12 24
2
1 0.0000
-1
1
0
0
0
0
0
1 21
1 16
-1
1 17100
1.e-4
1.e-4
1.e-3
-1
0 0
0 0
0 0 0.00e-6 0.00e-6 0.00e-6
Enter init
;init
;i.c. flow background
;i.c & bndy cond. at left face
;grid,i2D,iface, 2b(m);fracture
;B.C.'S(FLOW)(kb for each face)
;node range:type-1 at Face 1
;1-NEL,KX,KY,KZ (m/s)
-1 ;inner source K
=0 for uniform initial flow condition,
=1 to read the initial condition from data file #10.
For the head initial condition, enter the nodal indeces as (ix1-ix2), (iy1-iy2) and (iz1-iz2) which
define a range of 3D nodes, and the head value over this node group. Continue extra lines until a
"-1" appears in the last column. The data lines for the head initial condition are also used to define
the boundary heads.
Line 16 above starts the definition for the fracture set. The first 6 integers define a range of
elements over which this fracture will assigned. Here, a continuous fracture will be set on elements
with grid indices from 3-3 in x, 1-1 in y and from 12-24 in z (i.e. along a vertical column). The
next two integers define the fracture dimension (1 = 1D, 2 = 2D) and the element face this fracture
will be assigned to (see Appendix G). The real number (0.000 above) is the full fracture aperture
(2b) in metres (for 1D pipes, give the diameter). Continue adding more fractures with more = +1 or
terminate with more = -1. Appendix H explains how a random fracture network can be generated
automatically and imported into the BIONAPL input data file in the above format.
For the head boundary conditions, first enter 6 values corresponding to the 6 faces of the 3D mesh
according to Figure A-2 and Table 1.
Then, define the node range for each of the faces over which the boundary head is applied. End
with a "-1". In this example, we have defined a fixed head at the left boundary (kb(1)=1), and over
the entire face (nodes 1-21 in the y-direction, and 1-16 in the z-direction). In this way, you can
specify a fixed head over only part of a face if desired, or different fixed heads. If a fixed head is
only defined over a partial face, the rest of the face returns to a default no-flow (impermeable)
condition.
37
Figure A-2. Boundary face identification:
Table 1. Definition of model boundary conditions for flow and transport.
kb
Flow condition:
Mass transport
condition:
0
Impermeable (no-flow)
Zero concentration gradient
1
Fixed Head
Fixed concentration
2
Flux boundary
Concentration gradient
3
N/A
Cauchy mass flux
Flux boundary conditions are defined in the same way, by entering a "kb=2" as the boundary
condition, and entering the flux value (m/s) after defining the nodal range, and before the "+1" or
"-1". For example, if we also wanted a fixed head at the right, and a flux across the top, the data
would look something like this:
1
1
1
1
1
21
21
58
0
1
1
1
0 0 2
16
-1
16
-1
16 8.00e-08 -1
;B.C.'S (FLOW)
;node range on left boundary
;node range on right boundary
;node range & flux in across top (m/s)
Finally, the conductivity field is entered in m/s. Whereas the head data are defined by nodal
indices, conductivity is defined by element indices (see Figure 8). In this example, the background
K is first defined for all 17,100 elements with the Kx,Ky,Kz given. Following the K definition by
global element number, the K is also defined by element-index number (i.e. referenced in each
direction - ielx1-ielx2, iely1-iely2,ielz1,ielz2). This second method of K definition allows, for
example, simple layer geometries for the K distribution.
In this example, the “inner source” is left blank and therefore is assigned the same K as the
background. End each data set with “-1”. Additional zones of K can be defined by using +1 and
entering further data. Any new K defined over an old zone will supercede (over-write) the previous
defined K.
38
6. Miscellaneous
21
22
36
1 20
0.0e-3 0.30
where:
ss
…
por
…
srw
…
gradius …
1 15
0.07
-1
1.e-3
;monitor fence definition by node
;SS,POR,srw,gradius
specific storage
porosity
residual water saturation
mean grain diameter d50 (m), used in kinetic exchange term
The “fence definition” data defines one or more transverse planes (in the yz dimension, max 5
allowed) in which various data will be printed, including instantaneous mass flux and cumulative
mass. The peak and average concentrations within the plane(s) are also determined. In the above
example, a single fence is defined at x grid location 36, and extends in the y-direction from node 120 and in z from 1-15. This fence location has no effect on the solution.
7. NAPL Component Definition
23
24
25
8
1
Benzene
;rho,
mw, aqs,
878.6 .078 1.78
Toluene
870. .092 .515
Ethylbenzene
870. .106 .152
Xylene
870. .106 .198
MNAP
1000. .142 .054
DNAP
1000. .156 .0171
TNAP
1000. .170 .00436
Inert
862. .230 .002
where …
#ea
…
rho
…
MW …
aqs
…
Sh
…
b
…
Kc
…
Sh,
1.0
b,
0.0
kc,
8.06e-5
;# of components,#ea
;name of Contaminant
km,
D,
kdp,xdp
0.0
7.7e-10 0 0.
2.0
0.0
1.61e-4
0.0
6.6e-10
0
0.
1.0
0.0
1.61e-4
0.0
6.0e-10
0
0.
1.0
0.0
1.61e-4
0.0
5.6e-10
0
0.
0.90
0.0
2.0e-4
2.1
6.6e-10
0
0.
0.90
0.0
4.0e-4
3.7
6.6e-10
0
0.
2.2
0.0
1.3e-3
10.0
6.6e-10
0
0.
2.2
0.0
1.3e-3
10.0
5.0e-10
0
0.
number of electron acceptors
density of NAPL phase (kg/m3)
molecular weight (kg/mole)
aqueous solubility (kg/m3) Co
exchange coefficient (=Sherwood number)
exponent β for saturation term
sorption coefficient: organic to solids (linear coefficient) (m3/kg)
39
Km
D
kdp
xdp
sorption coefficient: organic to carrier (m3/kg)
diffusion coefficient (m2/s)
integer pointer for daughter product (points to parent)
daughter product stoichiometry
…
…
…
…
8. Source Mass and Location:
Following the definition of fixed component properties, the source location and molar masses must
be defined. Defining the number of moles, density and molecular weight of each component
determines the initial saturation, which is distributed evenly across the source nodes defined over a
rectangular source domain:
26 |
27 |
11 18 7 15 6 11 -1
;internal napl source: x1,x2,y1,y2,z1,z2, more
6.e-5 2.e-3 5.e-3 1.e-2 0.007 0.032 0.029 2.0219
;molar mass of each component
#moles …
number of moles for this component
In the above example, an initial source is defined over a region from node 11-18 in x, 7-15 in y, and
6-11 in z. There is only a single source region defined, hence the end is identified with “-1”. For
multiple sources, repeat the above two lines, then terminate the source data using “more=-1” .
The source is assumed uniformly distributed over each rectangular zone.
9. Biodegradation Parameter Definition
28
.5
.5
.5
.5
.02
.02
.02
.20
0.002
0.002
0.002
0.002
0.002
0.002
0.002
0.002
29
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
30
31
32
33
34
0.
0.
0.
0.
0.
0.
0.
0.
0.002
0.002
0.002
0.002
0.002
0.002
0.002
0.002
0.
0.
0.
0.
0.
0.
0.
0.
3.08
3.13
3.13
3.13
3.04
3.08
3.11
3.2
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
1.
9999.
1000.
1.00e-10
.014
0.006
0.005
0.006
0.005
0.000001
0.000001
0.5
0.5
0.5
0.5
0.5
0.5
0.5
0.5
9999.
9999.
9999.
9999.
9999.
9999.
9999.
9999.
;utils,uhs,uho,ros,ym,cinib Benzene
; Toluene
; Ethylbenzene
; Xylenes
;utils,uhs,uho,ros,ym,cinib MNAP
; DMN
; TMN
; other cpds
;inter-component inhibition organic 1
0.
;inter-component inhibition organic
0.
;inter-component inhibition organic
0.
;inter-component inhibition organic
0.
;inter-component inhibition organic
0.
;inter-component inhibition organic
0.
;inter-component inhibition organic
0.
;inter-component inhibition organic
2
3
4
5
6
7
8
;(reto(i),xkin(i),i=1,ncomp)
;retm,bm,ymmax
;BACKGROUND CONC. Oxy,M
;INITIAL SOURCE CONC. Oxy,M
;threshold S,(O(i),i=1,NEA)
40
where:
utils … maximum utilization rate (kg_organic/kg_microbe/day)
uhs
… substrate half-utilization constant (S conc. at which rate is ½ max rate) (kg/m3)
uhs
… oxygen half-utilization constant (O2 conc. at which rate is ½ max rate) (kg/m3)
ros
… ratio of oxygen to substrate consumed
ym
… microbial yield (kg_microbes/kg_org)
cinib … max inhibition constant (biodegradation not active for c>cinib)
reto
xkin
… retardation of electron acceptor
… inhibition switching conc. For electron acceptors 1-2
(note: for multiple electron acceptors, enter pairs (reto,xkin) for each EA
retm … retardation of microbes
bm
… decay coefficient for microbes (day-1)
ymmax… maximum microbe concentration (kg/m3)
For each organic k, only (Nc-1) inter-component inhibition terms are entered (you do not enter an
inhibition term for component k by itself). So here, 8 lines are needed, each with 7 terms defining
the inhibition coefficient for the components, i = 1, 2, 3, … Nc where i ≠ k.
The background and initial source concentrations for the electron acceptor (oxygen) and microbes
is given here, but is redundant since they are also defined later. The threshold concentrations for the
substrate and electron acceptors are also given - these are the concentrations below which no
biodegradation is allowed to occur. Enter a single value for thresh_s (assumed constant for all
components), followed by a value for thresh_O for each EA.
10. Initial Conditions for Transport
35
1
1
1
1
1
1
1
1
1
1
58
58
58
58
58
58
58
58
1
58
1 21
1 21
1 21
1 21
1 21
1 21
1 21
1 21
1 21
1 21
1 16
1 16
1 16
1 16
1 16
1 16
1 16
1 16
1 16
1 16
1 0.0 0.0 +1
2 0.0 0.0 +1
3 0.0 0.0 +1
4 0.0 0.0 +1
5 0.0 0.0 +1
6 0.0 0.0 +1
7 0.0 0.0 +1
8 0.0 0.0 +1
9 0.83 0.83 +1
10 0.006 0.006 -1
;initial condition Benzene:
;initial condition Tol.
;initial condition Ethyl.
;initial condition Xylene
;initial condition MNAP
;initial condition DMN
;initial condition TMN
;initial condition Other
;initial condition HA
;initial condition Oxygen
Here, each line defines the initial condition for each of the 8 components, as well as one for the
carrier (if required) and one line for the electron acceptor. For example, for benzene, the initial
condition is defined for nodes 1-58 in x, 1-21 in y, and 1-16 in z. The seventh column represents
the component number: 1,2,3, … ncomp. If a carrier exists, it must be placed as component
ncomp+1, with the first electron acceptor as ncomp+2. If no carrier exists, it can be ommitted here
(as ncomp+1), but the electron acceptors are still entered as component ncomp+2, ncomp+3 etc.
41
Columns 8 and 9 define the lower and upper initial concentrations across the node region defined in
the first 6 columns. As usual, lines can continue by using "+1" in the last column, with a "-1" in the
last column of the last line.
The initial conditions for transport are also used to define the concentrations for the first-type
transport boundary conditions. The actual boundary conditions are defined in the next section.
10. Boundary Conditions for Transport
36
37
38
39
40
41
1
1
1
1
1
1
0
21
0
21
0
21
0
0
1 16
0
0
1 16
0
0
1 16
0
-1
0
-1
0
-1
0
;B.C.'S (TRANSPORT) -
0
;B.C.'S (HA TRANSPORT) -
0
;B.C.'s Oxygen
The transport boundary conditions are defined in the same way as for flow, over the 6 faces of the
domain. Boundary conditions must be specified for the organics, the carrier (if no carrier exists,
enter a line with six zeroes), and electron acceptors. Currently, the boundary conditions must be the
same for all organics, and all electron acceptors, although the actual concentrations on those
boundaries for the different components can be changed using the initial condition input lines.
In the above example, the left face is a first-type boundary for all components (kb(1)=1 - line #68),
and the entire boundary is defined as first-type (nodes 1-21 in y and 1-16 in z - line #69). Note that
the node range definitions change depending on the face. For example, if face 2 (in the x-z plane)
were defined as type 1, the first nodal pair would represent the x-range, and the second nodal pair
would represent the z-range.
Here is another example for transport boundary conditions, for a single component, including a
type-1 condition at the left face, and a third-type boundary condition along the top:
1
1
1
0
0
0
0
21
1 16 -1
57 1 20 1 8.0e-8
3
1.0e-6
-1
;B.C.'S (ORGANIC TRANSPORT)
;left face
;ex1,ex2,ey1,ey2,Comp#;flow[m/s]; Conc.[g/l]
In this case, the type-1 condition is defined as before, but now kb(6)=3 so a third-type condition is
applied across the top face (face 6). Therefore, following the type-1 nodal range definition, a line is
included to define the element range for the type-3 condition. Here, elements 1-57 in x and 1-20 in
y (covering the entire top boundary) are defined. The fifth column specifies the component number
(#1 here), the sixth column defines the Darcy flux (m/s) and the seventh column defines the inflow
concentration. Terminate after all components have been defined by using a "-1".
Note that the Darcy flux here should match that specified in the flow boundary conditions, and that
the flux for flow is defined by node range, whereas for transport, it is defined by element range.
42
11. Carrier Sorption Properties
42
40. 1.0
where:
Ka
…
n
xmtc
feqm
qha
…
…
…
…
.05
.47
0.00042 ;ka,n,xmtc,feqm,qha(kgHA/kgsol) (HA sorption)
carrier sorption coefficient for either Freundlich (set krtype=1 in line #4),
or Langmuir isotherm (set krtype=2 in line #4).
exponent for Freundlich sorption
mass transfer coefficient for kinetic sorption
fraction of equilibrium sites available for sorption
maximum sorption concentration for Langmuir isotherm
(Note that this line is required even if no carrier is being simulated. For no carrier sorption, set
ka=0, and qha=0)
12. Fixed Velocity, Dispersion, Convergence Criteria etc.
43
44
45
46
0 0.
0.
0.
1 57 1 20 1 15 .025 .005 .005
.01
.001 5 5
1.0
1.00
where:
ivel …
AL
…
ATH …
ATV …
Decay …
ccp …
ccc
…
maxit1 …
maxit2 …
0.0 -1
;IVEL,VX,VY,VZ
;AL,ATH,ATV,decay(bckgnd)by elm
;CCP,CCW,MAXIT1,MAXIT2
;OVER-RELAX HEADS,temp
velocity option
=0 for full flow solution according to flow boundaries etc.
=1 to use uniform vx,vy,vz , v=q/por in m/s (also set kcn=2 in line #4)
longitudinal dispersivity (m)
transverse horizontal dispersivity (m)
transverse vertical dispersivity (m)
linear decay coefficient (/day), λ = ln(2)/t1/2 (for all components)
( λ in dc/dt=exp(- λ t), for linear process only, kint and kintv must=0)
convergence criteria for head (m)
convergence criteria for watertable (m)
maximum iterations for non-linear coupling
maximum iterations for watertable search (if kwt=1)
Note that the dispersivities can vary over the domain and are defined here by element index, i.e. xelement indeces 1-57, y-indeces 1-20 and z-indeces 1-15. The decay coefficient, which is applied to
all components (for example radioactive decay) remains the same over the entire domain. The overor under-relaxation factors for the non-linearities (usually set=1) allow some flexibility to speed
43
convergence, or to help convergence in strongly non-linear problems. The convergence criteria are
all absolute.
13. Output Plane Definition, and 3D Output Times
47
48
49
50
22
11
8
300.
27
0
45
0
500.
47
0
1000.
0
0
00.
00.
;KNOX(1)(2)TRANSV. SECTION
;KNOY(1),(2)LONG. SECTION
;knoz
;five 3d print times (days)
where
knox(1-5) defines up to five transverse (yz plane) cross-sections
knoy(1-5) defined up to five longitudinal (xz plane) cross-sections
knoz(1) defines a single xy plane for cross-sections.
Results are printed to these files at times determined by the value for “kplot” (see section 14
below). The 2D concentration data are printed to cxy.out, cyz.out and cxz.out, while the 2D head
data are printed to hxy.out, hyz.out and hxz.out. The five 3D solutions are printed to c3d1.out,
c3d2.out etc. If output is not desired, set the times to zero, however all 5 values must be entered for
knox and knoy and for the 3D print times.
14. Time Steps and transient boundary conditions
51
52
53
53b
54
55
0.
51.
.2
50 20 +1
;t0,t1,dt,(days)kplot,kmom,more
5. 5. 5. 5. 5. 5. 5. 5.
;new convergence criteria %
0.000
1.
1.0
1. 0
;hinc,rinc,eqmfact(kg),kha
1. 1. 1. 1. 1. 1. 1. 1.
;massfact multiplyer
1. 1. 1. 1. 1. 1. 1. 1. 1. ;sfact source factor for each component+HA
54 11 1 16
1 -1.56e-7 0. 0.025 +1 ;source/sink
ix,iy,iz1,iz2,kcomp.,Q(m3/s),conc,rad,more
In the above example, the first time interval extends from t=0 to t=51 days, with an interval of
dt=0.2 days. The solution is printed every 50 time steps, or in this case, at 10, 20, 30, 40, and 50
days. A moment analysis (as well as other calculations and output) is performed every “kmom”
time steps, in this case every 20 time steps (set kmom=9999 for example, if you never need these
extra calculations). Since more = +1, an additional time interval data block will be read after this
one.
Convergence criteria are given in percent for each component and define when the dissolution
and/or biodegradation solution has converged. Check the output file "bionapl.lst" during and after a
run to monitor convergence. Maximum absolute and relative changes are printed at each iteration.
44
Hinc, Rinc:
Hinc is a head increment added to the head boundary conditions, rinc is a recharge multiplyer
(therefore set rinc=1 to maintain original boundary recharge rate).
Eqmfact, kha
Eqmfact is an incremental mass addition (kg) to the total equilibrium source mass at the start of the
time interval (only applies for keqm=1), and kha is an option to engage transport of a carrier (if
kha=0 there is no carrier, if kha=1 a carrier is transported).
Massfact(i), i=1,ncomp
Massfact(values 0-1) is a source saturation multiplyer (applied to the existing source mass
saturation at the start of the time interval),
Sfact(i), i=1,ncomp+1
The variables sfact(i) (one for each component plus one for the carrier) represent boundary source
factor multipliers, used for transient source boundary conditions.
For either Dirichlet or Cauchy (on top) boundaries, the original dissolved source concentrationsof
each component will be multiplied by sfact(i)at each time step (thus the same concentration will
apply throughout the time interval).
For an equilibrium source (keqm=1), the existing dissolved phase concentrations at the source
nodes will be multiplied by sfact(i) at the start of the time interval.
Source/sinks
Source and/or sinks are entered here on the last line. A source/sink well is defined by an x-index, yindex and a z-interval. In this example, a well exists at x-node 54, y-node 11 and is fully screened
in the z-direction from 1-16. After the source location is defined, the component number is entered
(kcomp) followed by the pumping rate, concentration (set c=0 for sinks) and well radius. In this
case, the total pumping rate is -1.56e-7 m3/s, distributed evenly over the nodes (the minus sign
indicates withdrawal). If the well is an injection well, an injection concentration is defined, and the
well radius here is 0.025 m. Note that for multiple component injections at the same well, the total
injection rate is the sum of the rates for each component. For example, simply enter the total rate q
for the first component, then enter q=0 for the other components, which may have different
injection concentrations. For a withdrawal well, a single line is sufficient to define the pumping
rate, even if there are multiple components.
End the line with a "+1" if more wells follow, or with a "-1" for the last well.
The above time interval pattern simply repeats for additional time intervals desired. End the time
step data by entering a “-1” as the last number defining the last interval set. For example, since
more = +1 in the first time interval above, an additional time interval will be read, as shown below:
56
57
58
59
51.
55.
.2
20 20 -1 ;t0,t1,dt,kplot(days),kmom, more
5. 5. 5. 5. 5. 5. 5. 5.
;new convergence criteria
0.000
1. 1.0
0. 0
;hinc,rinc,eqmfact,massfact,kha
1. 1. 1. 1. 1. 1. 1. 1. 1. ;Nc source factors + one for HA
45
60
54
11
1
16 1 -1.5625e-7 0. 0.025 -1
;source/sink ix,iy,iz1,iz2,kcomp,Q(m3/s),conc,rad,more
Since more = -1 in the time step data line, then this will be the last time interval read.
46
Equilibrium Source Data: BIOEQM.DAT
BIONAPL/3D includes an option for a NAPL dissolving at equilibrium along the top boundary.
The source is treated using a mixing cell model and mass leaving the mixing cell sourced is entered
into the domain as a Cauchy-type boundary condition (Figure A-3). For interior NAPL sources, as
in the example data set above, true equilibrium dissolution can be obtained by using a sufficiently
high dissolution rate (Sherwood number). This mixing-cell model is also available as a stand-alone
code.
Two source type options are available for the mixing cell source: a dissolving NAPL, and a
desorbing organic. For the dissolving option (ksource=1), the aqueous concentrations for each cell
are determined by the effective solubility. For the desorbing source, the given initial mass is
assumed sorbed and the aqueous concentrations are determined using the Kd.
q
C=0
C in
A
Cout
x
Cs
Figure A-3. Detail of mixing cell model to simulate equilibrium dissolution of a multicomponent
NAPL.
To place a dissolving NAPL source along the top boundary, set the variable keqm=1 (line #4). The
code then reads from an exterior data file, called bioeqm.dat, for the required source information.
The rest of the bionapl.data data file remains the same, but a flux flow boundary and a Cauchy
(type 3) transport boundary condition must be specified across the top.
47
A sample file for bioeqm.dat appears below, for a 4-component system:
4
200
10
1.81e-8
0.5 1. 10.
0.5
6. 30. 3.5
0.078 0.104 0.100 0.046
1.78 .288 0.02
100.
878.6 870. 900.
789.
2.e-4 2.e-4 2.e-4 2.e-4
0.1
1 ;ns,nx,kp,v(m/s),sw, ksource
;xl,yl,zl (m)
;mass kg
;molecular weight kg/mol
;solubility kg/m^3
;densities (kg/m^3)
;Kd for each component (only used if
ksource=2)
where:
ns
= number of organic components within the mixing cell source
note: ns must be equal to ncomp (# cpds) within bionapl.data
nx = number of cells in the mixing cell model. In practice, the cell dimension dx should be on the
order of dx = v(dt)
kp = output print frequency (every kpth time step)
(time steps are taken from the bionapl.data file)
v
= advective velocity through the source
note: this velocity (v) must be compatible with the Darcy flux (q) specified in the flow and
transport boundary conditions within bionapl.data. That is, v = q/( θ *Sw).
Sw = water saturation within the source
ksource = source type (1=dissolving source; 2=desorbing source)
In a dissolving source, the aqueous concentration in each cell is given by the effective
solubility. In a desorbing source, the initial mass is assumed completely sorbed, and the
aqueous concentration is determined by the Kd relationship.
xl = length of entire mixing cell, along the flow direction perpendicular to the boundary.
note: to ensure equilibrium dissolution according to the assumed effective solubility (mole
frac. * pure phase solub.), set xl on the order of 0.001. Otherwise, if xl is too large, the cell
volume may be too large and even if all the NAPL in the cell dissolves, it may not be able
to reach the effective solubility. In this case, the code will compute the concentration
assuming all the NAPL dissolves into the cell.
yl,zl = transverse dimensions of mixing cell, providing a cross-sectional area. The relative size of
yl and zl are not important, only the cross-sectional area affects the solution.
Mass
= mass in kg of each organic component
Mol. Weight = molecular weight of each component (kg/mol)
Solubility
= pure phase solubility of each component (kg/m3)
Densities
= density of each component (kg/m3)
Kd’s
= Distribution coefficient for each component (m3_water/kg solids) (always read,
but only used if ksource=2 for desorbing source)
48
Input/Output File Definition
The BIONAPL/3D model includes several forms of output including:
1.
2.
3.
4.
5.
6.
Breakthrough curves
2D cross-section output
1D linear profiles
Mass Remaining in Source
3D solution
Diagnostic listing file
Most files are directly compatible with Tecplot © , available from www.amtec.com.
The following list identifies all relevant input/output files used by BIONAPL/3D:
open(unit=5,file='bionapl.data'
open(unit=6,file='bionapl.lst')
open(unit=7,file='bionapl_in.data',
open(unit=8,file='cxz.out',
open(unit=9,file='hxz.out',
open(unit=10,file='hinput.data',
open(unit=11,file='brkfence.out'
open(unit=12,file='veloc.out'
open(unit=13,file='zdat.out'
open(unit=14,file='hxy.out'
open(unit=15,file='bionapl.vxyin'
open(unit=16,file='cyz.out',
open(unit=17,file='c1dy.out',
open(unit=18,file='cxy.out',
open(unit=19,file='c1dx.out',
open(unit=20,file='c1dz.out',
open(unit=21,file='hyz.out',
open(unit=22,file='c1dpk.out',
open(unit=24,file='mass_S.out'
open(unit=54,file='mass_EA.out')
c
open(unit=26,file='c3d1.out',
open(unit=27,file='c3d2.out',
open(unit=28,file='c3d3.out',
open(unit=29,file='c3d4.out',
open(unit=30,file='c3d5.out',
c
open(unit=31,file='c3d_sat.out',
open(unit=32,file='bionapl_sat.data',
open(unit=33,file='bionapl_rank.data',
open(unit=34,file='bionapl_K.out',
open(unit=35,file='debug1.out',
open(unit=36,file='debug2.out',
open(unit=37,file='peak1.out',
open(unit=38,file='mass_HA.out',
open(unit=39,file='mass_zy.out',
- main input file
-
- main output file
- restart file
2D xz conc. output
2D xz head output
head input file
fence breakthrough
velocity output
z coordinate data
2D xy head output
input velocity file
2D yz conc file
1D y-profile
2D xy conc. output
-
1D x profile
1D z profile
2D yz head output
1D peak data output
component mass output
electron acceptor mass output
- 3D output time 1
- 3D output time 5
-
3D saturation output
saturation input file
random K input file (if krank=1)
K output
debug file 1
debug file 2
peak output
carrier mass output
component mass in zy plane slices
49
open(unit=40,file='biooplot.out',
open(unit=41,file='biomplot.out',
- electron acceptor 2D output sections
- microbe 2D output sections
open(unit=42,file='humic.out',
open(unit=43,file='brkwell.out',
- carrier 2D sections
- breakthrough curves at defined pts.
open(unit=44,file='mom1.out',
open(unit=45,file='mom2.out',
- moment output file 1
- moment output file 2
open(unit=46,file='fluxfence1.out',
open(unit=47,file='fluxfence2.out',
open(unit=48,file='fluxfence3.out',
- flux at monitor fence 1
- flux at monitor fence 2
- flux at monitor fence 3
open (unit=55,file='bioeqm.dat',
open (unit=77,file='bioeqm.out',
open (unit=78,file='bioeqm.x1d',
- equilibrium source input file
- equilibrium source output
- equilibrium source 1D profile
open(unit=79,file='calib.dat',
open(unit=80,file='calib.out',
- input calibration data
- output calibration data
open(unit=88,file='bionapl_movie.out',
open(unit=89,file='cpeakxy.out',
- 2D movie file
- peak concentrations in the xy plane
1. Breakthrough Curve Output
Breakthrough curves (time vs. concentration) are computed either at the fence location, defined
above, or at the point breakthrough locations at nodes, or well screens, as defined by lines 13-17 in
the above example data file. Breakthrough data at the fence location is printed to the file
“brkfence.out” and follows the TECPLOT format below:
time, (cavgk, cpeakk, cs1maxk , numkk
… k=1,number of components)
where:
time
cavg
cpeak
cs1max
numk
… time in days
… average concentration at the fence
… peak concentration at the fence
… maximum effective solubility within the source
… number of source nodes that have completely dissolved
Breakthrough data at the point well locations are printed to the file “brkwell.out” and follows the
format below:
time, (ckw1,ckw2,ckw3,ckw4, ck+1w1,ck+1w2,ck+1w3,ck+1w4, … k=1,2,3 … number of components)
where ckw1 is the concentration of component k at well 1
50
2. Data output at monitor fences:
Output filenames:
open(unit=46,file='fluxfence1.out',status='unknown')
open(unit=47,file='fluxfence2.out',status='unknown')
open(unit=48,file='fluxfence3.out',status='unknown')
The three fence locations are defined in the bionapl.data input file, by their x-node locations, and
by their extent in y and z.
Ouput format:
write(46,6207) tdays,((flux(kf,kc1),kc1=1,ncomp),
+ totalflux(kf,kc2),kc2=1,ncomp),csum(kf),vxfmax(kf),vxfmin(kf),kf=1,1)
write(47,6207) tdays,((flux(kf,kc1),kc1=1,ncomp),
+ totalflux(kf,kc2),kc2=1,ncomp),csum(kf),vxfmax(kf),vxfmin(kf),kf=2,2)
write(48,6207) tdays,((flux(kf,kc1),kc1=1,ncomp),
+ totalflux(kf,kc2),kc2=1,ncomp),csum(kf),vxfmax(kf),vxfmin(kf),kf=3,3)
where:
flux(kf,kc1) is the instantaneous mass flux of component # kc1, for fence # kf
totalflux(kf,kc1) is the cumulative mass flux “ “
“
“
(kg/s)
(kg)
definition:
flux(kf,kc)=flux(kf,kc)+vx(l)*cavg*areal*por
or:
flux = J k =
∑
viCk i Aiθ
fence
elements
where:
J = mass flux (kg / s ); v = velocity (m / s ); Ck = concentration ( kg / m3 ); A = area (m 2 ); θ = porosity
The cumulative flux for each component at each fence is: totalflux (kg ) = Q = ∑ J k iΔt
time
where Δt is the time step. The cumulative total flux for all components at each fence is:
csum (kg ) = ∑ Qk
time
Across each fence, vxfmax and vxfmin are the maximum and minimum flow velocities.
51
3. 3D Cross-Section Output
For 2D or 3D problems, cross-section concentration and head output is available in both the
longitudinal (xz), and transverse (yz), and plan-view (xy) sections. The sections are defined in the
data file using the variables knox(i), knoy(i) and knoz, which define the yz planes, xz planes and xy
plane respectively. If no cross-section data are required, set these variables =0 (all five must be
specified for knox and knoy).
Concentration output is located in cxz.out, cyz.out, and cxy.out, while head output is located in
files hxz.out, hyz.out and hxy.out. Output is printed to these files at intervals defined by kplot,
where output is printed every kplot time steps.
The format for the concentration files (TECPLOT-compatible) is as follows:
time 1, section knoy(1)
x,z,ck,Xk …
time 1, section knoy(2)
x,z,ck,Xk,
…
where ck is the aqueous concentration of component k, Xk is the mole fraction of the NAPL. The
format of the cyz.out and cxy.out files is identical except the coordinates are (y,z) and (x,y)
respectively. The hxz.out and hyz.out have a similar format, but only contain the coordinates and
the head (i.e. x,z,h). The hxy.out file also contains the water saturation, and concentrations for the
first electron acceptor and first microbe population, within the xy plane.
For simulations including biodegradation, the electron acceptor (e.g. oxygen) and microbe
concentrations are printed in the 2D longitudinal vertical plane (xz) to the files biooplot.out and
biomplot.out respectively. The format is:
Time 1, section knoy(1)
x, z, (Ak, k=1, number of electron acceptors), (or Mk for biomplot.out)
52
4.
1D Linear Profiles
The output files c1dx.out and c1dy.out contain 1D profiles of concentration information. The
profiles are printed every kplot time steps.
c1dx.out:
x,sn,ck,cs1k,Ak, Mk, HA
where
x
sn
ck
cs1k
Ak
Mk
HA
… x coordinate
… NAPL saturation
… aqueous concentration of organic k
… effective saturation (=CokXk)
… aqueous concentration of electron acceptor k
… aqueous concentration of microbe population k
… carrier concentration
Two profiles are printed at every print time, the locations are both within the xz section defined by
knoy(1). The first profile is located at z=0, the second is located at z=source midpoint.
c1dy.out: y,sn,ck,cs1k
A single y-profile is printed at every print time, at a location of z=0, and is located within the yz
section defined by knox(1).
5. Source Mass Output
The mass remaining in the source is printed at each time step to the file mass_S.out. The format is
given below:
time,
(comp_mass(k), k=1,ncomp),
(aq_mass(k), k=1,ncomp),
(bio_mass(k), k=1,ncomp),
(qout(k), k=1,ncomp),
(cauchy_mass(k), k=1,ncomp),
(sorb_mass(k), k=1,ncomp),
(adds_mass(k), k=1,ncomp),
(error(k), k=1,ncomp),
(totsmass),
(global_mass),
(o2ratio),
… time (days)
… solid mass in source
… aqueous mass in domain
… cumulative mass biodegraded
… cumulative mass past right exit bndy
… cumulative mass out cauchy bndy
… sorbed component mass
… mass sorbed to carrier
… mass error
… total solid mass of all organics
… global mass
… oxygen:substrate mass ratio
For a NAPL dissolving at the boundary, source output is given in the file bioeqm.out.
53
Note: The calculation for the mass balance error does not correctly account for all specific
boundary conditions, unless boundaries are distant.
Aqueous phase mass is also printed during the moment analysis calculations and printed to the files
“mom1.out” and “mom2.out”.
The format for mom1.out is:
time, (k,massk,xbk,ybk,zbk, k=1,ncomp (# components))
Where xbk is the x-centre of mass, ybk is the y-centre of mass, and zbk is the z-centre of mass.
The format for mom2.out is:
time, (k,massk,xvk,yvk,zvk, k=1, number of components)
Where xvk is the x-variance, yvk is the y variance, and zvk is the z variance.
6.
3D Solutions
Complete 3D solutions of the aqueous phase concentration data can be printed at 5 discrete times
defined in the line following the 2D section definitions. The files are labeled c3d1.out, c3d2.out,
c3d3.out, c3d4.out and c3d5.out. These files are binary files defined as follows:
if(abs(tdays-pt(1)) .le. 1.0e-5) then
write (26) tdays,ncomp,nea
write (26) (x(i),y(i),z(i),
+
(t2(i,kc),xmolf(i,kc),cmass(i,kc),kc=1,ncomp),i=1,nnt)
write (26) (u2(i),sn(i),sw1(i),h2(i),i=1,nnt)
write (26) ((uo(i,iea),um(i,iea),iea=1,nea),i=1,nnt)
write (26) ((cs(i,k),cin(i,k),mass(i,k),fmol(i,k),k=1,ncomp),
+
i=1,nxsource)
write (26) (total_mass0(k),bioloss(k),qout(k),cauchy_mass(k),
+
k=1,ncomp)
write (26) o2mass0
close(26)
They can also be used as restart files, by renaming any one to bionapl_in.data, setting kgo=1, and
by adjusting the time steps in the next simulation.
7. Output Listing File
The output listing file is named bionapl.lst and contains echo prints of the input data, and additional
information including progress of the run, convergence behaviour etc. After each run, this file
should be checked before plotting results to confirm if the job finished correctly, and if
convergence was achieved at each time step.
54
APPENDIX B: Sample Data File and Results: Ethanol & Gasoline
Simulated plumes of TEX (toluene, ethylbenzenes & xylenes), benzene, ethanol and depleted
oxygen, 20 years. In this example, BTEX and ethanol are dissolving from a residual gasohol source
(gasoline + 10% ethanol). Data set follows on next pages. The benzene plume becomes more
persistent where it is co-transported with the more mobile ethanol plume. Since ethanol is
preferentially biodegraded, it consumes most of the oxygen and leaves less available for benzene.
See Molson (2000) and Molson et al. (2001) for more details.
TEX
Elev. (m)
10
5
Elev. (m)
0
10
5
Elev. (m)
0
10
Elev. (m)
benzene
ethanol
3
1E-05
0.001
ppb
101 10
105 0.1
5
0
10
oxygen
5
0
0.0 mg l
3.5 mg l
0
-1
-1
100
200
Distance (m)
300
400
BIOEQM.DAT:
4
200
10
1.81e-8
0.5 1. 10.
0.5
6. 30. 3.5
0.078 0.104 0.100 0.046
1.78 .288 0.02
100.
878.6 870. 900.
789.
2.e-4
2.e-4 2.e-4 2.e-4
1.0
1
;ns,nx,kp,v (m/s), Sw, ksource
;xl,yl,zl (m)
;mass kg
;molecular weight kg/mol
;solubility kg/m^3
;densities (kg/m^3)
;Kd’s (m^3_water/kg solids)
55
BIONAPL.DATA:
BIONAPL MODEL + ethanol+
single source 2D version of new4
106x8x30 elements March 2001
0 0 0 0 0 0 0 0 0 1 1 1 1
;run options
3
1
1
;ngx, ngy, ngz
12.
36. 400.
;xlim
length of section
1.
;ylim
in [m]
10.
;zlim
Aquifer thickness
3
12 91
;nlx
# of elements per section
1
;nly
30
;nlz
00
00.
0.0
0.0
1500.
;nwtl,datum,gamma,sdecay,rhob
16
1
27 27
+1
;ix,iy,iz1,iz2 breakthrough recorded at wells
21
1
24 24
+1
;
ix, iy: location of well
31
1
19 19
+1
;
iz1-iz2: well screen
42
1
16 16
+1
57
1
13 13
-1
0
;INIT
1 107
1
2
1
31
10.00 +1 ; initial condition head
1
1
1
2
1
31
10.00 +1
107 107
1
2
1
31
10.00 -1
1 1
1 1 1 1
2
1 0.000000 -1 ; fractures
2
1
0
0
0
2
;B.C.'S (FLOW) fixed flow at upper B
1
2
1
31 8.00e-08
-1
;flux in at left
1
2
1
31
-1
;fixed head right
1 107
1
2
0.634E-08
-1
;groundwater recharge 300mm/yr
1 3180
1.e-4 1.e-4
1.e-4
-1
;1-NEL,KX,KY,KZ (m/s)
1 1 1 1 1 30 1.e-4
1.e-4
1.e-4 -1
;inner source
K of source
35
1 1
1 30
-1
;fence definition
0.0e-3 0.35 0.00
1.5e-4
;SS,POR,srw,gradius
4
1
;# of components,# of EA
Benzene
;name of Contaminant
878.6 .078 1.78
0.0 0.0
2.33e-5
0.0 7.7e-10 0 0.
TEX
870. .104 .288
0.0 0.0
2.33e-4
0.0 6.2e-10 0 0.
Inert
900. .1
.020
0.0 0.0
4.200e-4 0.0 6.2e-10 0 0.
Ethanol
789. .046 100.
0.0 0.0
0.00
0.0 11.5e-10 0 0. ;
5
9 1 2 31 31
-1
;source location by node
0.
0.
0.
0.
;moles in source
1.0 0.002
0.002 3.08
0.5
99999. ;utils (/day),uhs,uho,ros,ym,cinib
1.0 0.002
0.002 3.13
0.5
99999. ;
.1 0.002
0.002 3.460 0.5
99999. ;
5.0 0.002
0.002 2.09
0.5
99999. ;
0. 0. 0.
;inter-component inhibition
0. 0. 0.
;inter-component inhibition
0. 0. 0.
;inter-component inhibition
0. 0. 0.
;inter-component inhibition
1. 9999.
;RETO1,xkin1,reto2,xkin2
1000.
0.01e-10
.01
;retm,bm,ymmax
0.0038
0.003
;BACKGROUND CONC. O1,O2..-M1.M2
0.0038
0.003
;INITIAL SOURCE CONC. O-M
0.000001
0.000001
;threshold S,O1,O2...
1 107
1 2
1 31
1 0.0e-6
0.0e-6
+1 ;initial condition
1 107
1 2
1 31
2 0.0e-6
0.0e-6
+1 ;initial condition
56
1 107
1 2
1 31
3 0.0e-6
0.0e-6
+1 ;initial condition
1
107
1 2
1 31
4 0.0
0.0
+1 ;ethanol i.c.
1 107
1 2
1 31
6 0.0038
0.0038
-1 ;initial condition O2
1
0
0
0
0
3
;B.C.'S (ORGANIC TRANSPORT) - L R, N F, B T
1
2
1 31 -1
;zero conc at left
1 106 1
1
1
0.634e-8 0.0e-6
+1
;cauchy
1 106 1
1
2
0.634e-8 0.0e-6
+1
1 106 1
1
3
0.634e-8 0.0e-6
+1
1 106 1
1
4
0.634e-8 0.0
-1
0
0
0
0
0
0
;B.C.'S (HA TRANSPORT) - L R, N F, B T
1
0
0
0
0
3
;B.C.'S (O2 TRANSPORT) - L R, N F, B T
1
2
1
31
-1
;node ranges in x, y - direction
1 106 1
1
1
0.634e-8 0.0038
-1
; cauchy
0.0e-4
1. 0. 1. 0.
;ka,n,xmtc,feqm,qha(kgHA/kgsol)
0
3.125e-5
0.
0.
;IVEL,VX,VY,VZ (m/s) v=q/n(=K*i/por)
1 106 1 1 1 30 1.0 .02 .01
0.000
-1
;AL,ATH,ATV,decay(bckgnd)by elm
.0001 0.0001 2 20
;CCP,CCc(i)%,CCW,MAXIT1,MAXIT2
1.0
1.00
;OVER-RELAX HEADS,temp
16 31 42
57
0
;KNOX(1)(2)TRANSV. SECTION
1
0
0
0
0
;KNOY(1),(2)LONG. SECTION
16
;knoz
1825. 3650. 5475. 7300. 9125.
;five 3d print times (days)
0. 365. 1. 365 365 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0.
0
;hinc,rinc,eqmfact,kha(hum.acid)
1.
1. 1.
1.
;massfact source factors (ncomp)
1.
1. 1.
1.
1.
;sfact source factors (ncomp+1)
1
1
1
1
1
0.000e-5
0. 0.00 -1
365. 730. 1. 365 365 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0. 0
;hinc,rinc,eqmfact,kha(hum.acid)
1.
1. 1.
1.
;massfact source factors (ncomp)
1.
1. 1.
1.
1.
;sfact source factors (ncomp+1)
1
1
1
1
1
0.000e-5
0. 0.00 -1
730. 1095. 1. 365 365 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0. 0
;hinc,rinc,eqmfact,kha(hum.acid)
1.
1. 1.
1.
;massfact source factors (ncomp)
1.
1. 1.
1.
1.
;sfact source factors
1
1
1
1
1
0.000e-5
0. 0.00 -1
1095. 1460. 1. 365 365 +1
t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0. 0
;hinc,rinc,eqmfact,kha(hum.acid)
1.
1. 1.
1.
;massfact source factors (ncomp)
1.
1. 1.
1.
1.
;sfact source factors
1
1
1
1
1
0.000e-5
0. 0.00 -1
1460. 1825.
1. 365 365 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0.
0
;hinc,rinc,eqmfact,kha(hum.acid)
1.
1. 1.
1.
;massfact source factors (ncomp)
1.
1. 1.
1.
1.
;sfact source factors
1
1
1
1
1
0.000e-5
0. 0.00 -1
1825. 3650. 1. 365 365 +1
1.
1.
1.
1.
0.000
1.
0. 0
;hinc,rinc,eqmfact,kha(hum.acid)
1.
1. 1.
1.
;massfact source factors (ncomp)
1.
1. 1.
1.
1.
;sfact source factors
57
1
1
1
1
1
0.000e-5
0. 0.00 -1
3650. 9125. 1. 730 730 -1
1.
1.
1.
1.
0.000
1.
0. 0
;hinc,rinc,eqmfact,kha(hum.acid)
1.
1. 1.
1.
;massfact source factors (ncomp)
1.
1. 1.
1.
1.
;sfact source factors
1
1
1
1
1
0.000e-5
0. 0.00 -1
58
APPENDIX C: Sample Data File and Results: Toluene
Biodegradation with Multiple Electron Acceptors
Toluene
(m)
ppm
ppm
10
10+2
Methane
2.0
5
10-3
0
0
(m)
10
Oxygen
Nitrate
8
5
0
0
0
10
(m)
2.0
Sulphate
20
8
Microbes
(O2 utilizers)
5
0
3
15
0
100
200
300
Distance (m)
400
0
100
200
300
Distance (m)
400
The above example was run with the BIONAPL model and included 2 components (toluene and
methane as a biodegradation daughter product of toluene), as well as three electron acceptors
(oxygen, nitrate and sulphate).
As shown, the oxygen depletion plume is largest, then where oxygen is almost completely utilized,
nitrate becomes the next available EA and is depleted; where nitrate is depleted, sulphate becomes
depleted. The transition between the utilization of the electron acceptors is controlled by the
variable xkin.
The data file for this simulation is provided below.
59
BIONAPL.DATA file for example above:
BIONAPL MODEL + + 3D, toluene degradation 3d example for thesis, 4 ea's LOW NO3, lower kmax toluene
106x14x30 elements - Kd methane corrected, higher rate for methane
June2000
0 0 0 0 0 0 0 0 0 1 1 0 1 ;kp,kcn,kwt,kint,kintv,kgo,kg,kranb,krans,kbio,mode,keqm;krtype
3 3 1
ngx, ngy, ngz # of uniform sections per direction
12. 36. 400.
;xlim length of section
4. 6. 12.
;ylim in [m]
10.
;zlim Aquifer thickness
3 12 91
;nlx # of elements per section
6 2 6
;nly
30
;nlz
00 00. 0.0 0.0 1500.
;nwtl,datum,gamma,sdecay,rhob
16 1 27 27 +1
;ix,iy,iz1,iz2 breakthrough recorded at wells
21 1 24 24 +1
; ix, iy: location of well
31 1 19 19 +1
; iz1-iz2: well screen
42 1 16 16 +1
57 1 13 13 -1
0
;INIT
1 107 1 15 1 31 10.00 +1 ; initial condition head
1 1 1 15 1 31 10.00 +1
107 107 1 15 1 31 10.00 -1
1 1 1 1 1 1 2 1 0.000000 -1 ; fractures
2 1 0 0 0 2
;B.C.'S (FLOW) fixed flow at upper B
1 15 1 31 8.00e-08 -1 ;flux in at left
1 15 1 31
-1 ;fixed head right
1 107 1 15 0.634E-08 -1 ;groundwater recharge 300mm/yr
1 44520 1.e-4 1.e-4 1.e-4
-1 ;1-NEL,KX,KY,KZ (m/s)
1 1 1 1 1 30 1.e-4 1.e-4 1.e-4 -1 ;inner source K of source
35 1 9 1 31 -1
;fence definition
0.0e-3 0.35 0.00 1.5e-4
;SS,POR,srw,gradius
2 4
xlam b Kc
Km DD
;# of components,# of EA
Toluene
870. .092 .288 0.0 0.0 2.33e-4 0.0 6.2e-10 0 0. ;rho,mw,aqs,#m,l,b,kc,km,D,rb
methane
870. .016 .288 0.0 0.0 0.0e-4 0.0 6.2e-10 1 0.78 ;rho,mw,aqs,#m,l,b,kc,km,D,rb
5 9 1 2 31 31 -1
;source nodes x1,x2,y1,y2,z1,z2,more
0. 0.
;moles
.01 0.002 0.002 3.1 0.5 99999. ;utils (/day),uhs,uho,ros,ym,cinib toluene+oxygen for #1
.01 0.002 0.002 4.04 0.5 99999. ;utils (/day),uhs,uho,ros,ym,cinib toluene+nitrate
.01 0.002 0.002 4.2 0.5 99999. ;utils (/day),uhs,uho,ros,ym,cinib toluene+sulphate
1000. 1000. 1.0e-8 0. 0. 99999. ;utils (/day),uhs,uho,ros,ym,cinib toluene->methanogenesis imaginary first order
.01 0.002 0.002 4.0 0.5 99999. ;utils (/day),uhs,uho,ros,ym,cinib methane+oxygen for #2
.00 0.002 0.002 0.0 0. 99999. ;utils (/day),uhs,uho,ros,ym,cinib methane+nitrate
.00 0.002 0.002 0.0 0. 99999. ;utils (/day),uhs,uho,ros,ym,cinib methane+sulphate
.00 0.002 0.002 0.0 0. 99999. ;utils (/day),uhs,uho,ros,ym,cinib methanogenesis
0.
;zinhib inhibition 1
0.
;zinhib inhibition 2
1. .000001 1. .000001 1. .000001 1. .000001
;RETO1,xkin1,reto2,xkin2
1000. 0.01e-10 .01
;retm,bm,ymmax
0.002 0.002 0.020 0.001 0.003 0.003 0.003 0.07 ;BACKGROUND CONC. ea1,ea2..-M1.M2 (obsolete)
.07=10day half-life
0.002 0.002 0.020 0.001 0.003 0.003 0.003 0.07 ;INITIAL SOURCE CONC.
(obsolete)
0.000001 0.000001 0.000001 0.000001 0.000001
;threshold S,O1,O2...
1 107 1 15 1 31 1 0.0e-6 0.0e-6 +1 ;initial condition remember ncomp+1=HA
60
5 9 1 2 31 31 1 0.20
0.20 +1
1 107 1 15 1 31 2 0.0e-6 0.0e-6 +1
1 107 1 15 1 31 4 0.002 0.002 +1 ;initial condition O2
1 107 1 15 1 31 5 0.002 0.002 +1 ;initial condition NO3
1 107 1 15 1 31 6 0.020 0.020 +1 ;initial condition SO4
1 107 1 15 1 31 7 0.001 0.001 -1 ;initial condition imaginary EA#4
1 0 0 0 0 3
;B.C.'S (ORGANIC TRANSPORT) - L R, N F, B T
1 15 1 31 -1
;zero conc at left
1 106 1 14 1 0.634e-8 0.0e-6 +1
; T1: x1,x2,y1,y2/ T2: elem.rnge. in x, y; Comp#; flow[m/s]; Conc.[g/l]
5 9 1 2 1 0.634e-8 5.0e-2 -1
0 0 0 0 0 0
;B.C.'S (HA TRANSPORT) - L R, N F, B T
1 0 0 0 0 3
;B.C.'S (O2 TRANSPORT) - L R, N F, B T
1 9 1 31
-1
;node ranges in x, y - direction
1 106 1 14 1 0.634e-8 0.002 +1
; T1: x1,x2,y1,y2/ T2: elem.rnge. in x, y; Comp#; flow[m/s]; Conc.[g/l]
1 106 1 14 2 0.634e-8 0.002 +1
; T1: x1,x2,y1,y2/ T2: elem.rnge. in x, y; Comp#; flow[m/s]; Conc.[g/l]
1 106 1 14 3 0.634e-8 0.020 +1
; T1: x1,x2,y1,y2/ T2: elem.rnge. in x, y; Comp#; flow[m/s]; Conc.[g/l]
1 106 1 14 4 0.634e-8 0.001 -1
0.0e-4 1. 0. 1. 0.
;ka,n,xmtc,feqm,qha(kgHA/kgsol)
0
3.125e-5
0.
0. ;IVEL,VX,VY,VZ (m/s) v=q/n(=K*i/por)
1 106 1 14 1 30 1.0 .10 .01 0.000 -1 ;AL,ATH,ATV,decay(bckgnd)by elm
.0001 0.0001 2 20
;CCP,CCW,MAXIT1,MAXIT2
1.0 1.00
;OVER-RELAX HEADS,temp
9 21 51 101 0
;KNOX(1)(2)TRANSV. SECTION
1 0 0 0 0
;KNOY(1),(2)LONG. SECTION
16
;knoz
1825. 3650. 5475. 7300. 9125.
;five 3d print times (days)
0. 365. 1. 365 365 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1. 1. 1. 1.
;new % ccc
0.000 1. 0. 0
;hinc,rinc,eqmfact, kha(transport of hum.acid)
1. 1.
;massfact (ncomp)
1. 1. 1.
;sfact source factors (nfact + 1)
1 1 1 1 1 0.000e-5 0. 0.00 -1
365. 730. 1. 365 365 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1. 1. 1. 1.
;new % ccc
0.000 1. 0.0 0
;hinc,rinc,eqmfact, kha(transport of hum.acid)
1. 1.
;massfact (ncomp)
1. 1. 1.
;sfact source factors (nfact + 1)
1 1 1 1 1 0.000e-5 0. 0.00 -1
730. 1095. 1. 365 365 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1. 1. 1. 1.
;new % ccc
0.000 1. 0.0 0
;hinc,rinc,eqmfact, kha(transport of hum.acid)
1. 1.
;massfact (ncomp)
1. 1. 1.
;sfact source factors (nfact + 1)
1 1 1 1 1 0.000e-5 0. 0.00 -1
1095. 1460. 1. 365 365 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1. 1. 1. 1.
;new % ccc
0.000 1. 0.0 0
;hinc,rinc,eqmfact, kha(transport of hum.acid)
1. 1.
;massfact (ncomp)
1. 1. 1.
;sfact source factors (nfact + 1)
1 1 1 1 1 0.000e-5 0. 0.00 -1
1460. 3650. 2. 219 365 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1. 1. 1. 1.
;new % ccc
0.000 1. 0.0 0
;hinc,rinc,eqmfact,kha(transport of hum.acid)
1. 1.
;massfact (ncomp)
1. 1. 1.
;sfact source factors (nfact + 1)
1 1 1 1 1 0.000e-5 0. 0.00 -1
61
3650. 7300. 2. 365 365 -1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1. 1. 1. 1.
;new % ccc
0.000 1. 0.0 0
;hinc,rinc,eqmfact,kha(transport of hum.acid)
1. 1.
;massfact (ncomp)
1. 1. 1.
;sfact source factors (nfact + 1)
1 1 1 1 1 0.000e-5 0. 0.00 -1
62
APPENDIX D: Sample Data File and Results: Toluene spill within a
heterogeneous, spatially correlated permeability field.
10
Z (m)
g/l
0.1
0.05
0.02
0.01
0.001
0.0001
Toluene
5
0
Oxygen
Z (m)
10
g/l
0.004
0.003
0.002
0.001
0
5
0
Microbes (O2 reducers)
Z (m)
10
5
0
0
50
100
150
Distance (m)
200
250
g/l
0.06
0.02
0.007
0.005
0.002
0.001
The above simulation shows the evolution of a toluene spill with the oxygen depletion plume and
microbial growth. Two additional electron acceptors are included but not shown. The flow field is
simulated assuming a spatially-correlated random distribution of hydraulic K, which was generated
using the FGEN92 code (FGEN was developed by M. Robin, U of Ottawa).
63
BIONAPL.DATA file for above heterogeneous example:
(note this example reads an external file containing the random K field)
BIONAPL MODEL + +
3D, multi-EA 2D
106x8x30 elements April 2000
0 0 0 0 0 0 0 1 0 1 1 0 1 ;
kp,kcn,kwt,kint,kintv,kgo,kg,kranb,krans,kbio,mode,keqm;krtype
3
1
1
ngx, ngy, ngz # of uniform sections per direction
12.
36. 250.
;xlim
length of section
20.
;ylim
in [m]
10.
;zlim
Aquifer thickness
3
12 91
;nlx
# of elements per section
20
;nly
30
;nlz
00
00.
0.0
0.0
1500.
;nwtl,datum,gamma,sdecay,rhob
16
1
27 27
+1
;ix,iy,iz1,iz2 breakthrough recorded at wells
21
1
24 24
+1
;
ix, iy: location of well
31
1
19 19
+1
;
iz1-iz2: well screen
42
1
16 16
+1
57
1
13 13
-1
0
;INIT
1 107
1
21
1
31
10.00 +1 ; initial condition head
1
1
1
21
1
31
10.00 +1
107 107
1
21
1
31
10.00 -1
1 1
1 1 1 1
2
1 0.000000 -1 ; fracture
2
1
0
0
0
2
;B.C.'S (FLOW) fixed flow at upper B
1
21
1
31 8.00e-08
-1
;flux in at left
1
21
1
31
-1
;fixed head right
1 107
1
21
0.634E-08
-1
;groundwater recharge 300mm/yr
1 63600
1.e-4 1.e-4
1.e-4
-1
;1-NEL,KX,KY,KZ (m/s)
1 1 1 1 1 30 1.e-4
1.e-4
1.e-4 -1
;inner source
K of source
35
1 1
1 30
-1
;fence definition
0.0e-3 0.35 0.00
1.5e-4
;SS,POR,srw,gradius
1
3
xlam
b
Kc
Km
DD
;# of components,# of EA
Toluene
870. .104 .288 1. 0.0 2.33e-4 0.0 6.2e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,kdp,xdp
5
14
8 14 26 26
-1
;source nodes x1,x2 y1,y2 z1,z2
1.0e4
;moles
.01 0.002
0.002 3.1
0.5
99999. ;utils (/day),uhs,uho,ros,ym,cinib
.01 0.002
0.002 4.04 0.5
99999. ;utils (/day),uhs,uho,ros,ym,cinib
.01 0.002
0.002 4.2
0.5
99999. ;utils (/day),uhs,uho,ros,ym,cinib
0.
;inhibition
1. .000001
1. .000001
1. .000001
;RETO1,kinib1,reto2,kinib2
1000.
0.01e-10
.1
;retm,bm,ymmax
0.0005 0.010
0.020
0.0001 0.0001 0.0001
;BACKGROUND CONC.
O1,O2..-M1.M2
(obsolete)
0.0005 0.010
0.020
0.0001 0.0001 0.0001
;INITIAL SOURCE CONC.
O-M
(obsolete)
0.000001
0.000001 0.000001 0.000001
;threshold S,O1,O2...
1 107
1 21
1 31
1 0.0e-6
0.0e-6
+1 ;initial condition
1 107
1 21
1 31
3 0.005
0.005
+1 ;initial condition O2
1 107
1 21
1 31
4 0.010
0.010
+1 ;initial condition NO3
1 107
1 21
1 31
5 0.020
0.020
-1 ;initial condition SO4
1
0
0
0
0
3
;B.C.'S (ORGANIC TRANSPORT) - L R, N F, B T
1
21
1 31 -1
;zero conc at left
64
1 106 1 20 1 0.0e-8 0.0e-6 +1 ;Cauchy x1,2,y1,2byelem #,q[m/s],Conc.[g/l]
5
9 1
20
1
0.000e-8 0.0e-2
-1
0
0
0
0
0
0
;B.C.'S (HA TRANSPORT) - L R, N F, B T
1
0
0
0
0
3
;B.C.'S (O2 TRANSPORT) - L R, N F, B T
1
21
1
31
-1
;node ranges in x, y - direction
1 106 1 20 1 0.634e-8 0.005 +1 ;Cauchy x1,2,y1,2byelem C#; q[m/s]; Conc.[g/l]
1 106 1
20
2
0.634e-8 0.010
+1
; Cauchy for EA2
1 106 1
20
3
0.634e-8 0.020
-1
; Cauchy for EA3
0.0e-4
1. 0. 1. 0.
;ka,n,xmtc,feqm,qha(kgHA/kgsol)
0
3.125e-5
0.
0.
;IVEL,VX,VY,VZ (m/s) v=q/n(=K*i/por)
1 106 1 20 1 30 1.0 .02 .01
0.000
-1
;AL,ATH,ATV,decay(bckgnd)by elm
.0001 0.0001 2 20
;CCP,CCW,MAXIT1,MAXIT2
1.0
1.00
;OVER-RELAX HEADS,temp
22
32
43
64
106
;KNOX(1)(2)TRANSV. SECTION
11
0
0
0
0
;KNOY(1),(2)LONG. SECTION
16
;knoz
1825. 3650. 7300. 10950.
36500.
;five 3d print times (days)
0. 730. 1. 365 365
+1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0.
0
;hinc,rinc,eqmfact,kha(hum.acid)
1.
;massfact
1. 1.
;sfact
36 1 18 18 1 0.00e-5
0.1 0.10 +1
1:yes, 0:no
36 2 18 18 1 0.00e-5
0.1 0.10 -1
1:yes, 0:no
730. 10950. 10. 365 999 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0.0 0 ;hinc,rinc,eqmfact,kha(hum.acid)
1.
;massfact
1. 1.
;sfact
36 1 18 18 1 0.00e-5
0.1 0.10 +1
1:yes, 0:no
36 2 18 18 1 0.00e-5
0.1 0.10 -1
1:yes, 0:no
10950. 36500. 10. 365 999 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0.0 0 ;hinc,rinc,eqmfact,kha(hum.acid)
1.
;massfact
1. 1.
;sfact
36 11 18 18 1 0.0e-6
0.1 0.10 -1
1:yes, 0:no
36500. 109500. 10. 365 999 -1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0.0
0 ;hinc,rinc,eqmfact,kha(hum.acid)
1.
;massfact
1. 1.
;sfact
36 11 18 18 1 0.0e-6
0.01 0.10 +1
1:yes, 0:no
36 11 18 18 1 0.0e-6
0.02 0.10 +1
1:yes, 0:no
36 11 18 18 1 0.0e-6
0.05 0.10 -1
1:yes, 0:no
65
Appendix E: Example and Verification of 1st Order Decay:
In the following example, the Monod terms are used to set a fixed first-order decay rate for a single
component. The numerical BioNAPL model is compared against the analytical model Line2D
(Sudicky, 1990).
Domain Boundary
v = 0.124 m/d
αL = 0.1m
αT = 0.002m
13.5 m
source
6.5m
0m
20 m
Conc. C/Co
1
Analytical (Line2D)
BioNAPL
0.5
0
0
5
10
X Distance (m)
15
20
Line2D data set:
0.124
.1
0.002
8.64E-06
20.0
6.5
13.5
N
99999.
Y
100.
1.0
109
30
1
0.0
.5
1.
6.
11.
16.
10.
10.
4
0.1
.6
2.
7.
12.
17.
0.2
.7
3.
8.
13.
18.
0.3
.8
4.
9.
14.
19.
20.
40.
100.
;VELOCITY (m/d)
;LONG. DISPERSIVITY (m)
;VER. TRAN. DISP. (m)
;EFF. DIFF. COEFF. (m^2/d) =1e-10 m^2/s
;AQUIFER THICKNESS (m)
;Z1 (m)
;Z2 (m)
;DECAYING SOURCE?
;SOURCE HALF LIFE (days)
;DECAYING CONTAM?
;CONTAM. HALF LIFE
(days)
;RETARD. FACTOR
;TERMS IN SERIES
;NX,NZ,NT
0.4
.9
5.
10.
15.
20.
;time(days)
66
BIONAPL Data File for Linear Decay Problem:
BIONAPL MODEL + +
3D, + ethanol Barker experiment
100x20x20 elements June 2004
0 0 0 0 0 0 0 0 0 1 0 0 1
;kp,kcn,kwt,kint,kintv,kgo,kg,kranb,krans,kbio,mode,keqm;krtype
1
1
1
ngx, ngy, ngz # of uniform sections per direction
20.
;xlim
length of section
1.
;ylim
in [m]
20.
;zlim
Aquifer thickness
100
;nlx
# of elements per section
1
;nly
20
;nlz
00
00.
0.0
0.0
1500.
;nwtl,datum,gamma,sdecay,rhob
11
1
1 21
+1
;ix,iy,iz1,iz2 breakthrough recorded at wells
51
1
1 21
-1
0
;INIT
1 101
1
2
1
21
10.0 +1 ; initial condition head
1
1
1
2
1
21
10.1 +1
101 101
1
2
1
21
10.00 -1
1 1
1 1 1 1
2
1 0.000000 -1 ; fracture
1
1
0
0
0
0
;B.C.'S (FLOW) fixed flow at upper B
1
2
1
21
-1
;flux in at left
1
2
1
21
-1
;fixed head right
1 2000
1.e-4 1.e-4
1.e-4
-1
;1-NEL,KX,KY,KZ (m/s)
1 1 1 1 1 1 1.e-4
1.e-4
1.e-4
-1
;inner source
K of source
35
1 2
1 21
-1
;fence definition
0.0e-3 0.35 0.00
1.5e-4
;SS,POR,srw,gradius
1 1
;# of components,# of EA
Ethanol
789. .046 .001 0.00 0.0 0.00
0.0 1.0e-10 0 0. ;rho,MW,aqs,Sh,beta
1 1
1 2 8 14
-1
;source nodes
0.0
;moles
6.93e02 1.e5
1.0e-25
0.0
0.
9999. ;utils (/day),uhs,uho,ros,ym,cinib
0.
0.
;inhibition
1. 9999.
;RETO1,kinib1,reto2,kinib2
1000.
0.01e-10
1.0
;retm,bm,ymmax
1.00
1.
;BACKGROUND CONC. O1,O2..-M1.M2
(obsolete)
1.00
1.
;INITIAL SOURCE CONC. O-M
(obsolete)
0.0000
0.00
;threshold S,O1,O2...
1 101
1 2
1 21
1 0.0e-6
0.0e-6
+1 ;initial condition
1
1
1 2
8 14
1 1.0
1.0
+1 ;source 6.5 - 13.5
1 101
1 2 1 21
3 1.00
1.00
-1 ;initial condition O2
1
0
0
0
0
0
;B.C.'S (ORGANIC TRANSPORT) - L R, N F, B T
1
2
1 21 -1
;zero conc at left
0
0
0
0
0
0
;B.C.'S (HA TRANSPORT) - L R, N F, B T
1
0
0
0
0
0
;B.C.'S (O2 TRANSPORT) - L R, N F, B T
1
2
1
21
-1
;node ranges in x, y - direction
0.0e-4
1. 0. 1. 0.
;ka,n,xmtc,feqm,qha(kgHA/kgsol)
1
1.43e-6
0.
0.
;IVEL,VX,VY,VZ (m/s) v=q/n(=K*i/por)
1 100 1 1 1 20
0.1 .01 .002 00.
-1
;AL,ATH,ATV,decay(bckgnd)by elm
0.0001 10.0 20 20
;CCP,CCc(i)%(one for each Component),CCW,MAXIT1,MAXIT2
1.0
1.00
;OVER-RELAX HEADS,temp
0
0
0
0
0
;KNOX(1)(2)TRANSV. SECTION
1
0
0
0
0
;KNOY(1),(2)LONG. SECTION
67
11
;knoz
1825. 3650. 5475. 7300. 9125.
;five 3d print times (days)
0.
100. 0.05
100 20 -1
;t0,t1,dt,kplot(afterXtimesteps),kmom
1.
1.
1.
1.
;new % ccc
0.000
1.
0.
0
;hinc,rinc,eqmfact,kha(hum.acid)
1.
;massfact
1.
1.
;sfact
1
1
1
1
1 0.000e-5
0. 0.00 -1
1:yes, 0:no
68
Appendix F: Verification of Density with Multiple Components:
Model Verification for Multi-Component Density-Dependent Flow
The BIONAPL model has been previously verified to accurately simulate NAPL dissolution,
advective-dispersive transport, biodegradation and two-site sorption using analytical solutions, lab
experiments and field data (Frind et al. 1999; Molson et al. 2002b). These previous cases, however,
assumed that the maximum total concentration of all dissolved components remained sufficiently
low such that the fluid density could be assumed constant. Here, two verification tests are made to
ensure the density effect of multiple components is accurately simulated in the BIONAPL model.
Further examples using BIONAPL for density-dependent flow of oxygenated gasolines can be
found in Molson et al. (2008).
The BIONAPL model is here verified against the 2D saltwater intrusion Henry problem described
in Frind et al. (1982), and the HYDROCOIN salt migration problem described in (Diersch and
Kolditz, 2002). Both comparisons are made using the SALTFLOW finite element model (Molson
& Frind, 2005) which simulates advective-dispersive density-dependent transport of a single
dissolved species (e.g. chloride).
In each case, the BIONAPL model simulates the equivalent problem using a mixture of five
components representing a typical seawater brine (chloride 13.5 g/L, sodium7.6 g/L, sulphate 1.9
g/L, magnesium 0.9 g/L and a remaining fraction 0.64 g/L; total dissolved solids (TDS) = 24.54
g/L). Although these test cases include only denser than water fluids, the same numerical approach
is employed for lighter than water fluids.
The boundary conditions and parameters of the test cases are provided in Figure F1a and the
comparisons at steady state are provided in Figure F1b. The results between the single component
(SALTFLOW) and multiple component (BIONAPL) cases are essentially identical.
69
h1 = 0.0 m
no-flow
h 1 = ρr x depth
fixed concentrations
q = 6.6x10-6 m/s
C=0
K = 10-2 m/s
θ = 0.35
no-flow
BIONAPL
SALTFLOW
1
Elev. (m)
0.8
0.6
0.4
0.2
0
0
0.5
1
Distance (m)
1.5
2
Figure F1. Comparison of the single species SALTFLOW model and the multi-species BIONAPL
model for the Henry saltwater intrusion problem at steady state. Contour line represents the 0.5
isochlor; velocity vectors are from the BIONAPL model.
70
Henry Problem BIONAPL data file for Figure F1
GMT-BIONAPL MODEL + + 3D, No Biodegradation
Breakthrough curves for ethanol /// density effects 2D Henry
March 2006
1 0 0 0 0 0 0 0 0 0 0 0 1 ;kp,kcn,kwt,kint,kintv,kgo,kg,kranb,krans,kbio,mode,keqm;krtype
1
1
1
;ngx,ngy,ngz
2.
;xlim
1.
;ylim
1.
;zlim
40
;nlx
1
;nly
20
;nlz
20 00. 1.0000 0.0 1810.
;nwtl,datum,gamma,sdecay,rhob Gamma = 1 density on!!!!
1 1 1 1 -1
;btc in the vicinity of source
0
;INIT
1 41 1 2 1 21 0.00 -1 ; initial condition head (nodes on x,y, z dir.)
1 1 1 1 1 1 2 1 0.000000 -1 ; fracture
1 2 0 0 0 0 0
;B.C.'S (FLOW) fixed flow at upper B
1 2 1 21
-1 ;left face boundary-(y and z)
1 2 1 21 6.6e-5
-1 ;right,
1 800 1.e-2 1.e-2 1.e-2
-1 ;1-NEL,KX,KY,KZ (m/s)
1 1 1 1 1 1 1.e-2 1.e-2 1.e-2 -1 ;inner source K of source
20 1 2 1 21 -1
;fence definition x at 40th column, y,z //fence
0.001 0.35 0.07 1.5e-4
;SS,POR,srw,gradius
5 1
xlam b Kc
Km DD
;# of components,# of EA
Cl
;name of Contaminant
10240000. .078 1.78 0.001 0.0 0 0.0 5.8e-10 0 0. ;rho-density ,mw,aqs-S,Sh,b,kc-adsorption,km,D-diffusion,kdp,xdp
Na
10240000. .092 .53 0.001 0.0 0.0 0.0 5.8e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,rb///
SO4
10240000. .106 .18 0.001 0.0 0.0 0.0 5.8e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,rb
Mg
10240000. .046 4.83 -0.001 0.0 0.00 0.0 5.8e-10 0 0. ;;rho,mw,aqs,l,b,kc,km,D,rb
Others
10240000. .09 .020 0.001 0.0 4.200e-4 0.0 5.8e-10 0 0. ;rho,mw,aqs,l,b,kc,km,D,rb
1 1 1 1 1 1 -1
;Source distribution on xyz//
0.0 0.0 0.0 00. 0.00
;moles MTBE<TBA% by volume ethanol (half of the source)- check////
0.0 0.002 0.002 3.08 0.5 99999. ;utils (/day),uhs,uho,ros,ym,cinib biodegrad terms-I don't need them
0.0 0.002 0.002 3.13 0.5 99999. ;
0.0 0.002 0.002 3.460 0.5 99999. ;
0.0 0.002 0.002 2.09 0.5 99999. ;
0.0 0.002 0.002 2.09 0.5 99999. ;
0. 0. 0. 0. 0. 0. 0.
;inhibition
0. 0. 0. 0. 0. 0. 0.
;inhibition
0. 0. 0. 0. 0. 0. 0.
;inhibition
0. 0. 0. 0. 0. 0. 0.
;inhibition
0. 0. 0. 0. 0. 0. 0.
;inhibition
1. 9999.
;RETO1,kinib1,reto2,kinib2
1000. 0.01e-10 .01
;retm,bm,ymmax
0.0038 0.003
;BACKGROUND CONC. O1,O2..-M1.M2 (obsolete)
0.0038 0.003
;INITIAL SOURCE CONC. O-M
(obsolete)
5.0000 0.000001
;threshold S,O1,O2...
1 1 1 2 1 15 1 13.5 13.5 +1 ;initial condition
1 1 1 2 1 15 2 7.6 7.6 +1 ;initial condition
1 1 1 2 1 15 3 1.9 1.9 +1 ;initial condition
1 1 1 2 1 15 4 0.9 0.9 +1 ;initial condition//
1 1 1 2 1 15 5 0.64 0.64 +1 ;initial condition
1 1 1 2 1 15 7 0.0000 0.0000 -1 ;initial condition [mg/l?]O2
1 1 0 0 0 0
;B.C.'S (ORGANIC TRANSPORT) - L R, Near Far, Bottom Top
1 2 1 15 -1
;zero conc at left//
71
1 2 1 21 -1
0 0 0 0 0 0
;B.C.'S (HA TRANSPORT) - L R, N F, B T
0 0 0 0 0 0
;B.C.'S (O2 TRANSPORT) - L R, N F, B T
0.0e-4 1. 0. 1. 0.
;ka,n,xmtc,feqm,qha(kgHA/kgsol)
0
3.125e-5
0.
0. ;IVEL,VX,VY,VZ (m/s) v=q/n(=K*i/por)//0=solve for flow
1 40 1 1 1 20 0.035 0.1 0.035 0.000 -1 ;AL,ATH,ATV,decay(bckgnd)by elm///
0.00001 0.00001 5 5
;CCP,CCW,MAXIT1,MAXIT2
1.0 1.00
;OVER-RELAX HEADS,temp
0 0 0 0 0
;KNOX(1)(2)TRANSV. SECTION (section # in x, max 5)
1 0 0 0 0
;KNOY(1),(2)LONG. SECTION
19
;knoz///
1825. 3650. 5475. 7300. 9125.
;five 3d print times (days)
0.000 .01 .0001 10 1
+1
;t0,t1,dt,kplot (after kplot timesteps),kmom
5. 5. 5. 5. 5. 5. 5.
;new % ccc
0.000 1. 0.
0
;hinc,rinc,eqmfact,kha(transport of hum.acid)
1.0 1.0 1.0 1.0 1.0
;massfact
1.0 1.0 1.0 1.0 1.0 1.0
;sfact
1 1 1 1 1 0.000e-5 0. 0.00 -1
1:yes, 0:no
.01 0.07 0.0001 200 1 +1
;t0,t1,dt,kplot(afterXtimesteps),kmom
5. 5. 5. 5. 5. 5. 5.
;new % ccc
0.000 1. 0.
0
;hinc,rinc,eqmfact,kha(transport of hum.acid)
1.0 1.0 1.0 1.0 1.0
;massfact
1.0 1.0 1.0 1.0 1.0 1.0
;sfact
1 1 1 1 1 0.000e-5 0. 0.00 -1
1:yes, 0:no
0.07 0.20 0.001 130 1 -1
;t0,t1,dt,kplot(afterXtimesteps),kmom
5. 5. 5. 5. 5. 5. 5.
;new % ccc
0.000 1. 0. 0
;hinc,rinc,eqmfact, kha(transport of hum.acid)
1.0 1.0 1.0 1.0 1.0
;massfact
1.0 1.0 1.0 1.0 1.0 1.0
;sfact
1 1 1 1 1 0.000e-5 0. 0.00 -1
1:yes, 0:no
72
Appendix G: Fracture Locations on Element Surfaces
1D fracture elements
(idim=1)
iloc = 1
iloc = 4
iloc = 2
iloc = 5
iloc = 3
iloc = 6
2D fracture elements
(idim=2)
iloc = 1
iloc = 4
iloc = 2
iloc = 5
iloc = 3
iloc = 6
73
Appendix H: FRACGEN Model for Random Fracture Networks
The FracGen model generates random 2D and 3D fracture networks for use in the BIONAPL
model. The code generates up to 3 sets of orthogonal 2D planar fractures, one set for each of the xz,
yz, and xy planes, and prepares a file compatible with the smoker.data input file.
A sample input file (fracgen.dat) is shown below:
7 7 3
;ngx,ngy,ngz
10. 19. 19.962 20.038 21. 30. 50.
;xlim (m)
3. 4.5 4.962 5.038 5.5 7. 10.
;ylim
10. 50. 62.
;zlim
10 29 6 2 6 29 30
;nlx
3 4 3 2 3 4 3
;nly
20 80 10
;nlz
20. 20. 50. 48.
;,zminxy,zminxz, zcutoffxy = 50.zcutoffxz = 48.
00 500 500
;maxnf
50
;number of bins for plotting
1000.0 1.0 0.5
;mean spacings
1.0 0.25
0.25
;st.dev.
.true.
;log-normal distribution? ln(200)=5.3
5.3 5.3 5.3
;mean log apertures (microns)
0.25 0.25 0.25
;st.dev.
50. 8. 5.
;mean lengths
1. 1. 1.
;st.dev.
15. 6. 15.
;mean widths
1. 1. 1.
;st.dev.
c set 1 = xz plane set 2 = yz plane set 3 = xy plane
where:
- The first 7 lines define the grid and can be copied directly from the smoker.data file.
- zminxy,zminxz, zmaxxy,zmaxxz define vertical (z) dimensions to control fracture generation.
No fractures will be generated in the xy and xz planes below zminxy and zminxz,
respectively, and no fractures will be generated in the xy and xz planes above zmaxxy and
zmaxxz, respectively
- maxnf is the maximum number of fractures in each of the 3 planes
- nbin = number of bins into which the fracture distribution will be divided for plotting the
aperture distribution density function (randm_bins.plt).
- the mean spacings are the mean distances (metres) between fractures in the 3 sets, with the
corresponding standard deviations about the mean for each set.
- either a log-normal (.true.) or normal (.false.) aperture distribution can be specified.
- The mean log apertures are the mean natural-log of the fracture apertures (in microns).
Thus, for a mean aperture of 200 microns, enter ln(200) = 5.3. Also enter the corresponding
standard deviations for each set.
- The next two pairs of parameter lines define the fracture lengths and widths (metres).
Fracture length is always measured in the directional order x,y,z depending on the set. Thus,
fracture lengths in Set 1 (xz plane) are in the x-direction and widths are in the z direction,
for Set 2 (yz plane), lengths and widths are measured in y and z, respectively, and for Set 3
(xy plane, horizontal fractures), lengths and widths are measured in x and y, respectively.
74
Files:
fracgen.dat
fracgen.out
lognormal.plt
randm_bins.plt
randmgeo_xy.plt
randmgeo_xz.plt
randmdat.out
= main input file
= main output file to check input parameters, model execution etc.
= theoretical log-normal aperture distribution curve defined by the input data
= histogram of simulated fracture aperture distribution
= tecplot geometry file showing fracture traces in the xy plane
= tecplot geometry file showing fracture traces in the xz plane
= list of fractures (nodal indices, apertures) for input to smoker.data
Procedure:
1. Edit the fracgen.dat file
2. Run fracgen.exe
3. Check the distribution by plotting the file randmgeo_xz.plt (and others as needed)
4. Copy the fracture list from randmdat.out and place in smoker.data, remembering to set the
value more = -1 for the last line of fractures.
60
60
50
50
40
40
Elevation (m)
Elevation (m)
Grid and fracture network from above example file:
30
30
20
20
10
10
0
0
10
20
30
Distance (m)
40
50
0
0
10
20
30
Distance (m)
40
50
75
Appendix I: Discrete Fracture Network Application
Below are the results of 2 BIONAPL simulations which include discrete fractures. Data files are
available on request. The top image shows the injection of dissolved oxygen into a fractured
dolomite aquifer initially contaminated by BTEX (see Greer et al. 2010). The bottom figure shows
the evolution of a benzene plume evolving from a source zone in an initially oxygen-rich fractured
aquifer.
76