Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Van genuchten WRF parameters #741

Open
mariuslam opened this issue May 7, 2021 · 6 comments
Open

Van genuchten WRF parameters #741

mariuslam opened this issue May 7, 2021 · 6 comments

Comments

@mariuslam
Copy link

The default parameters of Van Genuchten are completely off, as a result the soil water content is fine but the the soil water potential and all downstream variables are completely unrealistic and very different from Campbell. I get water potentials below -10000. It also seems like the linear interpolation on the extremes is not realistic. Has anyone been using the VG water functions in Fates?

Improvements were seen with : alpha_vg = 0.07 instead of 0.001and psd=0.5 instead of 2.7. But I don't know to which extent this is realistic. Especially since the functions were modified to allow for supersaturation.

@mariuslam
Copy link
Author

Something I noticed is that the matric potential yielded by VG is in cm, that might explain some of the issues. Vegetation requires high potentials in MPa to grow. So multiplying psi by 0.0000978 to convert to MPa is necessary.

@mariuslam
Copy link
Author

The default parameters seem OK when multiplying PSI by 0.0000978 here -->

if(th>this%th_max)then
psi = this%psi_linear_sat(th)
elseif(th<this%th_min)then
psi = this%psi_linear_res(th)
else
m = 1._r8/this%psd
satfrac = (th-this%th_res)/(this%th_sat-this%th_res)
psi = -(1._r8/this%alpha)*(satfrac**(1._r8/(m-1._r8)) - 1._r8 )**m

if(th>this%th_max)then

    psi = this%psi_linear_sat(th)*0.0000978
    
elseif(th<this%th_min)then
    
    psi = this%psi_linear_res(th)*0.0000978

else

    m   = 1._r8/this%psd
    satfrac = (th-this%th_res)/(this%th_sat-this%th_res)
    psi = -(1._r8/this%alpha)*((satfrac**(1._r8/(m-1._r8)) - 1._r8 )**m)*0.0000978

@rgknox
Copy link
Contributor

rgknox commented May 11, 2021

Thanks for the post @mariuslam
The VG functions in the code are somewhat experimental at this point. However, it seems like they are picking up traction, and maybe its the time to make these a more supported option with parameters in the FATES parameter file.

@JunyanDing has been doing work with VG and may have some insight into parameters: #737

The VG functions currently in the code are written to generate results in MPa, and alpha and m parameters chosen should reflect that. I suppose if the parameters found in literature are more intuitive in other units, we could consider using a conversion like you propose. I'm open to the idea.

The current set of hard-coded parameters are just some rough guesses for testing code:

https://github.com/NGEET/fates/blob/master/biogeophys/FatesPlantHydraulicsMod.F90#L211-L219

Also, you might benefit from playing with the unit-testing python code, here: https://github.com/NGEET/fates/tree/master/functional_unit_testing/hydro

The intent of these scripts are to generate the PV and fraction of conductance functions for different parameters using fortran code. Might be good for testing and debugging.

Context for others, the VG transfer functions are and option, but hard-coded off and somewhat experimental right now. The user can option them on for the plant tissues and/or the soil, and must provide hard-coded parameters in the FatesPlantHydraulicsMod where the functions are initialized.

@JunyanDing
Copy link
Contributor

I used VG for plant hydraulics in my modified version. I adjusted the parameters to fit the observed plant P-V and P-K curves, and the VG model works well in that way. But, I never tried it on soil. I agree that using linear interpolation on the extremes are not appropriate. I got problems when using linear interpolation when applied it on plant hydraulics. I think we can give an option in the code let user to choose whether to use linear interpolation or not.

By my understanding, alpha can have large variation, but psd should meet some assumption according to the original derivation of Van Genuchten's earliest paper (as I remember, psd should be larger than 1) If sets to 0.5, it might totally change the shape of the curve.

@mariuslam
Copy link
Author

mariuslam commented May 12, 2021

Thanks @rgknox and @JunyanDing for your valuable answers.

I am confused because the core equation of VG equation is different in the paper and in Fates. For example m=1/psd in Fates and m=1-1/psd in the paper etc. So I don't think the parameters still make theoretical sense right? By the way why is the PSI equation of fates different and how did you get to it?

Thanks @rgknox for the python tool, I had played with the parameters in excel: To get realistic potentials alpha must be increased by at least 2 orders of magnitude, making it unrealistic according to literature.

I also played with the boundaries: My guess when it comes to the linear interpolation is that dpsidth depends on the parameters and becomes problematic when alpha is changed by several orders of magnitude. --> So I think a conversion in the PSI equation (such as the one I did when converting to MPA) might be necessary, and even then the potentials are still one order of magnitude smaller than Campbell meaning that alpha has to be multiplied by 10 in order to fit. I also suggest a th_sat around 0.45 instead of 0.65.

I don't have much time to further test now, but If my assumption are correct, adding one parameter in the PSI equation is an option or modifying the linear interpolation?

@glemieux
Copy link
Contributor

This is partially resolved via #1263

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants