I am trying to repeat HP1 SEASONCHAIN example in Hydrus 1D with HP1. Yet I need to account for stratified medium, say two layers. Each strata has its own initial conditions, sorption properties and first order decay reaction coefficients.
I think that first order decay reaction coefficients, variable per layer, can be accounted for by using two Kinetics blocks with appropriate reference to cells say Kinetics 1-10 and Kinetics 11-100. Each block calls RATEs with parameters appropriate for cells 1-10 and 11-100.
However, I am not sure how to define sorption. In SEASONCHAIN there is only surface with sites Sora, Sorb and Sorc. Should I define (accordingly to Kinetics) Surface 1-10 and Surface 11-100 and equilibrate them with appropriate initial solution?
If this is the case, can sites Sora, Sorb and Sorc be the same in each Surface 1-10 and Surface 11-100? Or each surface should have its “own” Sor(abc) sites?
HP1 SEASONCHAIN
Re: HP1 SEASONCHAIN
You can define different surfaces (for different materials) in exact the same way as different kinetics with different parameters for different materials and indeed equilibrate it with the corresponding solution.
From the description in the document Jacques and Simunek (2005), paragrapf 4.1.2 (section Modelling nonlinear Freundlich adsorsption with PHREEQC), the log K value of a given reaction (e.g., Sora + Conta = SoraConta) is calculated from Kd, bulk density and an assumed sorption capacity chosen to be very large (1E100). If you follow the same approach, a new surface should be defined for each layer (SorAA,SorAB, ...)
I have not tested it, but probably, one can define a fixed log K (say -100) and recalculate the corresponding (material-dependent) capacity. The example in Jacques and Simunek (2005) has Kd = 5 and bulk density 1.5 (kg/dm3), thus for a surface capacity of S = 1E100, log_k is -99.1249. Turning this around, we define a log_k of -100, and have then a material-dependent capacity of 7.5E100. Thus, in Box 4.1 in Jacques and Simunek (2005) (repeated below), K on line 12 is -100, and S on line 16 is 7.5E100. The latter can be different for the different materials (depending on Kd and bulk density).
Note that this only holds for linear sorption. In case of Freundlich sorption, with nF defined in the reaction equation (line 10), I guess you need to define a material-specific surface name.
Depending on the HP1/HPx version you have (just try it - if you have an older version of HP1, it will give errors), some aspects can be made more convenient:
1. To define a chemical entity related to a specific material, you can refer to material number with the identifier -material. Note than you need to define a chemical entity number greater than the number of nodes. So, if you change discretisation or the material distribution, you do not need to adapt the node numbers.
2. Calculate S inline with @<> (also global variables can be used)
From the description in the document Jacques and Simunek (2005), paragrapf 4.1.2 (section Modelling nonlinear Freundlich adsorsption with PHREEQC), the log K value of a given reaction (e.g., Sora + Conta = SoraConta) is calculated from Kd, bulk density and an assumed sorption capacity chosen to be very large (1E100). If you follow the same approach, a new surface should be defined for each layer (SorAA,SorAB, ...)
I have not tested it, but probably, one can define a fixed log K (say -100) and recalculate the corresponding (material-dependent) capacity. The example in Jacques and Simunek (2005) has Kd = 5 and bulk density 1.5 (kg/dm3), thus for a surface capacity of S = 1E100, log_k is -99.1249. Turning this around, we define a log_k of -100, and have then a material-dependent capacity of 7.5E100. Thus, in Box 4.1 in Jacques and Simunek (2005) (repeated below), K on line 12 is -100, and S on line 16 is 7.5E100. The latter can be different for the different materials (depending on Kd and bulk density).
Note that this only holds for linear sorption. In case of Freundlich sorption, with nF defined in the reaction equation (line 10), I guess you need to define a material-specific surface name.
Code: Select all
1 SOLUTION_MASTER_SPECIES
2 Cont Cont 0.0 Cont 1.0
3 SOLUTION_SPECIES
4 Cont = Cont; log_k 0.0
5 SURFACE_MASTER_SPECIES
6 Sor Sor
7 SURFACE_SPECIES
8 Sor = Sor
9 log_k 0
10 Sor + nF Cont = SorCont #nF Freundlich term
11 -no_check; -mole_balance SorCont
12 log_k K #K = LOG(KDW /S)
13 SURFACE 1
14 equilibrate 1
15 -no_edl true
16 Sor S 1 S #S Total amount of adsorption sites
1. To define a chemical entity related to a specific material, you can refer to material number with the identifier -material. Note than you need to define a chemical entity number greater than the number of nodes. So, if you change discretisation or the material distribution, you do not need to adapt the node numbers.
Code: Select all
SURFACE 1001 #maximum 1000 nodes in HP1, thus 1001 is always larger than the number of nodes
-material 1 #refer to the nodes with material number 1 in the HYDRUS GUI
equilibrate 1001
-no_edl true
Sor 7.5E100 1 7.5E100
Code: Select all
SURFACE 1001
-material 1
equilibrate 1001
-no_edl true
Sor @<5*1.5/1E100> 1 @<5*1.5/1E100>
Re: HP1 SEASONCHAIN
Dear Diederik
Thank you very much for clarification
Thank you very much for clarification
Re: HP1 SEASONCHAIN
I successfully implemented the previous explanation. Now I would like to add first-order rate constant for solid phase (SinkSolid1' according to Hydrus-1D application help). How should I define sorption reactions to be first order kinetic?
Re: HP1 SEASONCHAIN
What do you want to do:
-model kinetic sorption on the surface; or
-model kinetic degradation of species that are sorbed (in equilibrium) to the surface?
Diederik
-model kinetic sorption on the surface; or
-model kinetic degradation of species that are sorbed (in equilibrium) to the surface?
Diederik
Re: HP1 SEASONCHAIN
I am interested in the second option.
Re: HP1 SEASONCHAIN
I will think about it
I guess you will to use (fast) kinetic sorption together with degradation.
I guess you will to use (fast) kinetic sorption together with degradation.