Root uptake in HP1

The HP1 code incorporates modules simulating
(1) transient water flow in variably-saturated media,
(2) transport of multiple components, and
(3) mixed equilibrium/kinetic geochemical reactions.
Post Reply
cdw76jp
Posts: 5
Joined: Tue Oct 19, 2010 11:32 pm
Location: Japan

Root uptake in HP1

Post by cdw76jp » Thu Nov 11, 2010 1:39 pm

Dear sir,

I try to simulate nitrogen transport and transformation with root uptake process in HP1, but i find i cann't use the "critical stress index for water uptake" and "active solute uptake". Can i use HP1 to simulate nitrogen transport and transformation with root uptake process?

Best regards and many thanks.

Daiwen

Jirka
Posts: 4712
Joined: Sat Mar 16, 2002 3:47 pm
Location: USA
Location: Riverside, CA

Post by Jirka » Thu Nov 11, 2010 2:50 pm

Daiwen,

Reactions related to solute needs to be dealt with using the PHREEQC part of HP1. Thus solute uptake needs to be programmed using the BASIC code in the PHREEQC input (and not defined in the HYDRUS part).

Critical stress index for water uptake - this deals with the compensated root water uptake. I do not remember if we implemented that also in HP1 (I'm traveling this week and do not have the sources with me). If it is not yet part of HP1, it would be easy to add it there and I'm sure we will. Uncompensated root water uptake is certainly an option in HP1.

Jirka

cdw76jp
Posts: 5
Joined: Tue Oct 19, 2010 11:32 pm
Location: Japan

Post by cdw76jp » Fri Nov 12, 2010 12:41 am

Dear Jirka,

Thank you very much for your kindly answer.

If i check "Solute transport/HP1(PHREEQC)", "Critical stress index for water uptake" will be lost in Hydrus windows of " root water and solute uptake model",so i cann't deal with the compensated or uncompensated root water uptake by changing that index.

I know how to deal with the reaction by using the PHREEQC part of HP1, but i don't know how to define the solute uptake in the PHREEQC input. Do you mean i need to define the part of r(c,h) (CDE) using BASIC code like as "rates--kinetics" in the PHREEQC.in? There are some examples?

Best regards

Daiwen

Jirka
Posts: 4712
Joined: Sat Mar 16, 2002 3:47 pm
Location: USA
Location: Riverside, CA

Post by Jirka » Fri Nov 12, 2010 8:26 am

If "Critical stress index for water uptake" is not available, that does not mean that you can not have root water uptake. That means only that you can not use compensated root water uptake. Uncompensated root water uptake is there by default as in the older versions of H1D.

For the answer how to define active solute root water uptake, you will need to wait for Diederik's response. But basically, it should be defined as any other degradation reaction (i.e., removal of solute from the solution).

Jirka

cdw76jp
Posts: 5
Joined: Tue Oct 19, 2010 11:32 pm
Location: Japan

Post by cdw76jp » Fri Nov 12, 2010 9:46 am

Dear Jirka,

Thank you very much for your response. I understand now.

It would be very perfect to me if the compensated root water uptake can be also available in HP1.

And i hope Diederik can give me some advices about how to define active solute root water uptake in HP1 (PHREEQC input), it would be very helpful for me.

Best regards.

Daiwen

diederik
Posts: 51
Joined: Fri Mar 10, 2006 7:57 am
Location: Belgium

Post by diederik » Tue Nov 16, 2010 9:57 am

Daiwen:

I will try to make a small example by the end of the week (never tried an example with root uptake, but in theory it is possible)

diederik

cdw76jp
Posts: 5
Joined: Tue Oct 19, 2010 11:32 pm
Location: Japan

Post by cdw76jp » Wed Nov 17, 2010 12:33 pm

Dear Diederik

Thank you very much for your answer.￾@It will be very helpful for me if you can make a small example about the root uptake in HP1. Many thanks and best regards.

Daiwen

diederik
Posts: 51
Joined: Fri Mar 10, 2006 7:57 am
Location: Belgium

Post by diederik » Fri Nov 19, 2010 12:24 pm

hallo

I implemented a small example in HP1. I consider only active uptake (I think that in the current version of HP1 passive uptake is not really possible, unless you use the passive uptake from HYDRUS). I implemented equation 22 from Simunek and Hopmans (2009, Ecological Modelling, 220: 505-521). I have an example with a time variable potential active uptake and a variable (but uniform) rooting depth.


First you have to define the rate:


<font color="blue"><font face="Courier New">RATES
RootUptakeCa
#Active uptake of Ca
-start
#Implementation of Eq. 22 in Simunek and Hopmans (2009), Ecological Modelling, 220:505-521
#Note: No passive uptake considered so far i.e. cmax = 0 (Fig. 1 in Simunek and Hopmans)

10 REM Calculate Ap(t) - the potential uptake
20 if (cell_no = 1 ) then GOSUB 1000 # potential uptake is calculated for each time step, but also for the first node, the value is then saved

100 REM Calculate normalized root distribution
#There are 30 nodes with roots, each node is 1 cm, thus the normalized root distribution is 0.033333
#note that when kinetics are only attributed to the first 30 nodes, than this if then else statement is not needed and you can simple put b = 0.03333
#note: withe the procedure calculate normalized root distribution, you can also give in a variable root depth with time
110 GOSUB 2000

150 ap = get(1)*b

170 put(ap,2)
200 REM Calculate active nutrient uptake
#Kinetic parameters:
# parm(1) : cmin in mol/kgw
# parm(2) : K in mol/kgw

201 if (tot("Ca") > parm(1)) then goto 250
220 rate = 0
230 goto 900
250 conc = tot("Ca") - parm(1)
#rate is written here as a function of the total concentration of Ca
#It can also be written in terms of molality of e.g. Ca+2 or in terms of the activity of Ca+2
260 rate = (conc/(parm(2) + conc)) * ap


#the unit of the rate equation should be: mol / dm? soil
900 moles = - rate * time
910 moles = moles * tot("water")
980 save moles
990 END

1000 REM Calculate Ap(t) - the potential uptake - hypothetical variable Ap
1010 if (total_time > 90) then goto 1050
1020 Ap = 0
1030 goto 1900
1050 if (total_time > 150) then goto 1100
1060 rico = (0.001) / (60)
1070 Ap = rico * (total_time - 90)
1080 goto 1900
1100 if (total_time > 250) then goto 1150
1110 Ap = 0.001
1120 goto 1900
1150 if (total_time > 310) then goto 1200
1160 rico = - 0.001/60
1170 Ap = 0.001 + rico * (total_time - 250)
1180 goto 1900
1200 Ap = 0
1900 put(Ap,1) #for this time step, the potential uptake is the same for all nodes
1990 return

2000 REM calculate B(t,x) - normalized root distribution
#depth is in cm!!!
#note that it has to have the same units as in the HP1 project
2010 if(total_time > 90) then goto 2050
2020 b = 0
2030 goto 2900
2050 if(total_time > 150) then goto 2100
2060 rico = 74/60 #uniform root growth: between day 90 and 150 the root depht is goining uniformly up to 75 cm
2070 depth = -(1 + rico * (total_time - 90))
2080 if (dist > depth) then b = (- 1 / depth) else b=0
2090 goto 2900
2100 depth = -75
2110 if (dist > - 75.5) then b = 1 / 75 else b = 0
2900 put(depth,3)
2910 put(b,4)
2990 return
-end</font id="Courier New"></font id="blue">

Then you need to define a kinetic datablock (KINETICS) for each node (I have 101 nodes in a 1 m depht soil).

<font color="blue"><font face="Courier New">Kinetics 1-101
RootUptakeCa
-formula Ca 1 H -2
#Stoichiometric coefficients: The product of the stochiometric coefficients with the rate (mol/dm3 soil) gives the change of amount of the different components relative to the aqueous phase
#A negative product is thus removal from the aqueous phase, a positive product release in the aqueous phase
#For every mol Ca uptake, the root release two protons ; this is needed to keep the solution charged balanced. You can also release other cations.
-parameters 0 1E-3
#parameters used in the MM equation:
# first parameter: cmin
# second parameter: K
-m0 0
#initial amount of the kinetic reactant - if zero, the amount of the kinetic reactant will give you the cumulative uptake at a given node.</font id="Courier New"></font id="blue">

I have implemented this in a steady-state flow problem (no root water uptake) with the arbitrarely chosen parameters and values given above.

I made the example with Ca but you can do it for nitrate as wel.

Let me know if you have additional questions,

diederik

PS: in the next version of HP1, it will be easier to include the factors as rooting depth, Ap, etc. You will have also the possibility to include some state variables (water uptake, pressure head, ...) in the uptake equations.

cdw76jp
Posts: 5
Joined: Tue Oct 19, 2010 11:32 pm
Location: Japan

Post by cdw76jp » Mon Nov 22, 2010 1:56 am

Dear Diederik

Thank you very much for your example.
I can understand well now, and will try to do it for the nitrate by myself. If i have other questions, i will contact with you again.

Expect the next version of HP1.

Best regards and many thanks

Daiwen

Post Reply