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 profiles from three dual-porosity formulations

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.