13 - 1D Dual Porosity Transport¶
Real porous media do not have one porosity. Fractured rock, aggregated soil and layered sediment all have water that flows and water that does not, with exchange between the two by diffusion – and a model with a single porosity cannot reproduce what that does to a breakthrough curve.
This example runs the same dual-porosity column three ways, and the three appear on one figure so they can be compared.
Mobile and immobile water¶
The column is divided into mobile pores, where advection happens, and immobile pores, which exchange with them only by diffusion.
The consequence is a breakthrough curve with a long tail. Solute entering the column diffuses into the stagnant water and is held there; when the flush arrives it diffuses back out slowly, so the concentration decays over a far longer time than the flow alone would suggest. Tailing of this kind is routinely mistaken for sorption, and the two have quite different implications for how long a contaminated site takes to clean up.
Three approximations¶
Sodium and chloride along the column from three formulations, labelled
a, b and c:¶
First-order exchange (
FO), cases a and b. The exchange between mobile and immobile water is a single rate constant times the concentration difference. Cheap, and it collapses the whole geometry of the stagnant zone into one number.Finite differences (
FD), case c. Diffusion inside the immobile zone is resolved explicitly, so the concentration gradient within it is computed rather than assumed.
The finite-difference result is the reference. Where the first-order approximation follows it, the one-rate simplification is adequate; where it parts from it, the internal gradient matters and the rate constant cannot stand in for it.
The two chloride curves and the two sodium curves also separate the two effects: chloride is affected by the dual porosity alone, while sodium has exchange chemistry on top of it.
The three inputs are included below, one per formulation.
TITLE Example 13A.--1 mmol/L NaCl/NO3 enters column with stagnant zones.
Implicit definition of first-order exchange model.
SOLUTION 0 # 1 mmol/L NaCl
units mmol/l
pH 7.0
pe 13.0 O2(g) -0.7
Na 1.0 # Na has Retardation = 2
Cl 1.0 # Cl has Retardation = 1, stagnant exchange
N(5) 1.0 # NO3 is conservative
# charge imbalance is no problem ...
END
SOLUTION 1-41 # Column with KNO3
units mmol/l
pH 7.0
pe 13.0 O2(g) -0.7
K 1.0
N(5) 1.0
EXCHANGE_SPECIES # For linear exchange, make KX exch. coeff. equal to NaX
K+ + X- = KX
log_k 0.0
-gamma 3.5 0.015
EXCHANGE 1-41
-equil 1
X 1.e-3
END
PRINT
-reset false
-echo_input true
-status false
TRANSPORT
-cells 20
-shifts 5
-flow_direction forward
-time_step 3600
-boundary_conditions flux flux
-diffusion_coefficient 0.0
-lengths 0.1
-dispersivities 0.015
-stagnant 1 6.8e-6 0.3 0.1
# 1 stagnant layer^, ^alpha, ^epsil(m), ^epsil(im)
END
SOLUTION 0 # Original solution with KNO3 reenters
units mmol/l
pH 7.0
pe 13.0 O2(g) -0.7
K 1.0
N(5) 1.0
END
TRANSPORT
-shifts 10
-punch_cells 1-20
-punch_frequency 10
END
TITLE Example 13B.--1 mmol/l NaCl/NO3 enters column with stagnant zones.
Explicit definition of first-order exchange factors.
SOLUTION 0 # 1 mmol/l NaCl
units mmol/l
pH 7.0
pe 13.0 O2(g) -0.7
Na 1.0 # Na has Retardation = 2
Cl 1.0 # Cl has Retardation = 1, stagnant exchange
N(5) 1.0 # NO3 is conservative
# charge imbalance is no problem ...
END
SOLUTION 1-41 # Column with KNO3
units mmol/l
pH 7.0
pe 13.0 O2(g) -0.7
K 1.0
N(5) 1.0
EXCHANGE_SPECIES # For linear exchange, make KX exch. coeff. equal to NaX
K+ + X- = KX
log_k 0.0
-gamma 3.5 0.015
EXCHANGE 1-41
-equil 1
X 1.e-3
END
PRINT
-reset false
-echo_input true
-status false
MIX 1; 1 .93038; 22 .06962 ;MIX 2; 2 .93038; 23 .06962;
MIX 3; 3 .93038; 24 .06962 ;MIX 4; 4 .93038; 25 .06962;
MIX 5; 5 .93038; 26 .06962 ;MIX 6; 6 .93038; 27 .06962;
MIX 7; 7 .93038; 28 .06962 ;MIX 8; 8 .93038; 29 .06962;
MIX 9; 9 .93038; 30 .06962 ;MIX 10; 10 .93038; 31 .06962;
MIX 11; 11 .93038; 32 .06962 ;MIX 12; 12 .93038; 33 .06962;
MIX 13; 13 .93038; 34 .06962 ;MIX 14; 14 .93038; 35 .06962;
MIX 15; 15 .93038; 36 .06962 ;MIX 16; 16 .93038; 37 .06962;
MIX 17; 17 .93038; 38 .06962 ;MIX 18; 18 .93038; 39 .06962;
MIX 19; 19 .93038; 40 .06962 ;MIX 20; 20 .93038; 41 .06962;
#
MIX 22; 1 .20886; 22 .79114 ;MIX 23; 2 .20886; 23 .79114;
MIX 24; 3 .20886; 24 .79114 ;MIX 25; 4 .20886; 25 .79114;
MIX 26; 5 .20886; 26 .79114 ;MIX 27; 6 .20886; 27 .79114;
MIX 28; 7 .20886; 28 .79114 ;MIX 29; 8 .20886; 29 .79114;
MIX 30; 9 .20886; 30 .79114 ;MIX 31; 10 .20886; 31 .79114;
MIX 32; 11 .20886; 32 .79114 ;MIX 33; 12 .20886; 33 .79114;
MIX 34; 13 .20886; 34 .79114 ;MIX 35; 14 .20886; 35 .79114;
MIX 36; 15 .20886; 36 .79114 ;MIX 37; 16 .20886; 37 .79114;
MIX 38; 17 .20886; 38 .79114 ;MIX 39; 18 .20886; 39 .79114;
MIX 40; 19 .20886; 40 .79114 ;MIX 41; 20 .20886; 41 .79114;
TRANSPORT
-cells 20
-shifts 5
-flow_direction forward
-time_step 3600
-boundary_conditions flux flux
-diffusion_coefficient 0.0
-lengths 0.1
-dispersivities 0.015
-stagnant 1
END
SOLUTION 0 # Original solution reenters
units mmol/l
pH 7.0
pe 13.0 O2(g) -0.7
K 1.0
N(5) 1.0
END
TRANSPORT
-shifts 10
-punch_cells 1-20
-punch_frequency 10
END
TITLE Example 13C.--1 mmol/l NaCl/NO3 enters column with stagnant zones.
5 layer stagnant zone with finite differences.
SOLUTION 0 # 1 mmol/l NaCl
units mmol/l
pH 7.0
pe 13.0 O2(g) -0.7
Na 1.0 # Na has Retardation = 2
Cl 1.0 # Cl has Retardation = 1, stagnant exchange
N(5) 1.0 # NO3 is conservative
# charge imbalance is no problem ...
END
SOLUTION 1-121
units mmol/l
pH 7.0
pe 13.0 O2(g) -0.7
K 1.0
N(5) 1.0
EXCHANGE_SPECIES # For linear exchange, make KX exch. coeff. equal to NaX
K+ + X- = KX
log_k 0.0
-gamma 3.5 0.015
EXCHANGE 1-121
-equilibrate 1
X 1.e-3
END
PRINT
-reset false
-echo_input true
-status false
MIX 1; 1 0.90712; 22 0.09288
MIX 22; 1 0.57098; 22 0.21656; 42 0.21246
MIX 42; 22 0.35027; 42 0.45270; 62 0.19703
MIX 62; 42 0.38368; 62 0.44579; 82 0.17053
MIX 82; 62 0.46286; 82 0.42143; 102 0.11571
MIX 102; 82 0.81000; 102 0.19000
MIX 2; 2 0.90712; 23 0.09288
MIX 23; 2 0.57098; 23 0.21656; 43 0.21246
MIX 43; 23 0.35027; 43 0.45270; 63 0.19703
MIX 63; 43 0.38368; 63 0.44579; 83 0.17053
MIX 83; 63 0.46286; 83 0.42143; 103 0.11571
MIX 103; 83 0.81000; 103 0.19000
MIX 3; 3 0.90712; 24 0.09288
MIX 24; 3 0.57098; 24 0.21656; 44 0.21246
MIX 44; 24 0.35027; 44 0.45270; 64 0.19703
MIX 64; 44 0.38368; 64 0.44579; 84 0.17053
MIX 84; 64 0.46286; 84 0.42143; 104 0.11571
MIX 104; 84 0.81000; 104 0.19000
MIX 4; 4 0.90712; 25 0.09288
MIX 25; 4 0.57098; 25 0.21656; 45 0.21246
MIX 45; 25 0.35027; 45 0.45270; 65 0.19703
MIX 65; 45 0.38368; 65 0.44579; 85 0.17053
MIX 85; 65 0.46286; 85 0.42143; 105 0.11571
MIX 105; 85 0.81000; 105 0.19000
MIX 5; 5 0.90712; 26 0.09288
MIX 26; 5 0.57098; 26 0.21656; 46 0.21246
MIX 46; 26 0.35027; 46 0.45270; 66 0.19703
MIX 66; 46 0.38368; 66 0.44579; 86 0.17053
MIX 86; 66 0.46286; 86 0.42143; 106 0.11571
MIX 106; 86 0.81000; 106 0.19000
MIX 6; 6 0.90712; 27 0.09288
MIX 27; 6 0.57098; 27 0.21656; 47 0.21246
MIX 47; 27 0.35027; 47 0.45270; 67 0.19703
MIX 67; 47 0.38368; 67 0.44579; 87 0.17053
MIX 87; 67 0.46286; 87 0.42143; 107 0.11571
MIX 107; 87 0.81000; 107 0.19000
MIX 7; 7 0.90712; 28 0.09288
MIX 28; 7 0.57098; 28 0.21656; 48 0.21246
MIX 48; 28 0.35027; 48 0.45270; 68 0.19703
MIX 68; 48 0.38368; 68 0.44579; 88 0.17053
MIX 88; 68 0.46286; 88 0.42143; 108 0.11571
MIX 108; 88 0.81000; 108 0.19000
MIX 8; 8 0.90712; 29 0.09288
MIX 29; 8 0.57098; 29 0.21656; 49 0.21246
MIX 49; 29 0.35027; 49 0.45270; 69 0.19703
MIX 69; 49 0.38368; 69 0.44579; 89 0.17053
MIX 89; 69 0.46286; 89 0.42143; 109 0.11571
MIX 109; 89 0.81000; 109 0.19000
MIX 9; 9 0.90712; 30 0.09288
MIX 30; 9 0.57098; 30 0.21656; 50 0.21246
MIX 50; 30 0.35027; 50 0.45270; 70 0.19703
MIX 70; 50 0.38368; 70 0.44579; 90 0.17053
MIX 90; 70 0.46286; 90 0.42143; 110 0.11571
MIX 110; 90 0.81000; 110 0.19000
MIX 10; 10 0.90712; 31 0.09288
MIX 31; 10 0.57098; 31 0.21656; 51 0.21246
MIX 51; 31 0.35027; 51 0.45270; 71 0.19703
MIX 71; 51 0.38368; 71 0.44579; 91 0.17053
MIX 91; 71 0.46286; 91 0.42143; 111 0.11571
MIX 111; 91 0.81000; 111 0.19000
MIX 11; 11 0.90712; 32 0.09288
MIX 32; 11 0.57098; 32 0.21656; 52 0.21246
MIX 52; 32 0.35027; 52 0.45270; 72 0.19703
MIX 72; 52 0.38368; 72 0.44579; 92 0.17053
MIX 92; 72 0.46286; 92 0.42143; 112 0.11571
MIX 112; 92 0.81000; 112 0.19000
MIX 12; 12 0.90712; 33 0.09288
MIX 33; 12 0.57098; 33 0.21656; 53 0.21246
MIX 53; 33 0.35027; 53 0.45270; 73 0.19703
MIX 73; 53 0.38368; 73 0.44579; 93 0.17053
MIX 93; 73 0.46286; 93 0.42143; 113 0.11571
MIX 113; 93 0.81000; 113 0.19000
MIX 13; 13 0.90712; 34 0.09288
MIX 34; 13 0.57098; 34 0.21656; 54 0.21246
MIX 54; 34 0.35027; 54 0.45270; 74 0.19703
MIX 74; 54 0.38368; 74 0.44579; 94 0.17053
MIX 94; 74 0.46286; 94 0.42143; 114 0.11571
MIX 114; 94 0.81000; 114 0.19000
MIX 14; 14 0.90712; 35 0.09288
MIX 35; 14 0.57098; 35 0.21656; 55 0.21246
MIX 55; 35 0.35027; 55 0.45270; 75 0.19703
MIX 75; 55 0.38368; 75 0.44579; 95 0.17053
MIX 95; 75 0.46286; 95 0.42143; 115 0.11571
MIX 115; 95 0.81000; 115 0.19000
MIX 15; 15 0.90712; 36 0.09288
MIX 36; 15 0.57098; 36 0.21656; 56 0.21246
MIX 56; 36 0.35027; 56 0.45270; 76 0.19703
MIX 76; 56 0.38368; 76 0.44579; 96 0.17053
MIX 96; 76 0.46286; 96 0.42143; 116 0.11571
MIX 116; 96 0.81000; 116 0.19000
MIX 16; 16 0.90712; 37 0.09288
MIX 37; 16 0.57098; 37 0.21656; 57 0.21246
MIX 57; 37 0.35027; 57 0.45270; 77 0.19703
MIX 77; 57 0.38368; 77 0.44579; 97 0.17053
MIX 97; 77 0.46286; 97 0.42143; 117 0.11571
MIX 117; 97 0.81000; 117 0.19000
MIX 17; 17 0.90712; 38 0.09288
MIX 38; 17 0.57098; 38 0.21656; 58 0.21246
MIX 58; 38 0.35027; 58 0.45270; 78 0.19703
MIX 78; 58 0.38368; 78 0.44579; 98 0.17053
MIX 98; 78 0.46286; 98 0.42143; 118 0.11571
MIX 118; 98 0.81000; 118 0.19000
MIX 18; 18 0.90712; 39 0.09288
MIX 39; 18 0.57098; 39 0.21656; 59 0.21246
MIX 59; 39 0.35027; 59 0.45270; 79 0.19703
MIX 79; 59 0.38368; 79 0.44579; 99 0.17053
MIX 99; 79 0.46286; 99 0.42143; 119 0.11571
MIX 119; 99 0.81000; 119 0.19000
MIX 19; 19 0.90712; 40 0.09288
MIX 40; 19 0.57098; 40 0.21656; 60 0.21246
MIX 60; 40 0.35027; 60 0.45270; 80 0.19703
MIX 80; 60 0.38368; 80 0.44579; 100 0.17053
MIX 100; 80 0.46286; 100 0.42143; 120 0.11571
MIX 120; 100 0.81000; 120 0.19000
MIX 20; 20 0.90712; 41 0.09288
MIX 41; 20 0.57098; 41 0.21656; 61 0.21246
MIX 61; 41 0.35027; 61 0.45270; 81 0.19703
MIX 81; 61 0.38368; 81 0.44579; 101 0.17053
MIX 101; 81 0.46286; 101 0.42143; 121 0.11571
MIX 121; 101 0.81000; 121 0.19000
TRANSPORT
-cells 20
-shifts 5
-flow_direction forward
-time_step 3600
-boundary_conditions flux flux
-diffusion_coefficient 0.0
-lengths 0.1
-dispersivities 0.015
-stagnant 5
END
SOLUTION 0 # Original solution reenters
units mmol/l
pH 7.0
pe 13.0 O2(g) -0.7
K 1.0
N(5) 1.0
END
TRANSPORT
-shifts 10
-punch_cells 1-20
-punch_frequency 10
END
What it shows¶
That tailing can come from physical heterogeneity rather than from chemistry, and that the choice of how to represent the immobile zone is a modelling decision to be checked rather than assumed. The cheap approximation is often right, and this is how you find out whether it is right for your case.
Source¶
Parkhurst, D. L. and Appelo, C. A. J. (2013). Description of input and examples for PHREEQC version 3. U.S. Geological Survey Techniques and Methods, book 6, chapter A43. This is Example 13 of that manual.
Appelo, C. A. J. and Postma, D. (2005). Geochemistry, Groundwater and Pollution, 2nd edition. Balkema, Leiden.