Water retention curve modeling via van Genuchten model and KSSL data.

## Arguments

- VG_params
`data.frame`

or`list`

object with the parameters of the van Genuchten model, see details- phi_min
lower limit for water potential in kPa

- phi_max
upper limit for water potential in kPa

- pts
number of points to include in estimated water retention curve

## Value

A list with the following components:

- VG_curve
estimated water retention curve: paired estimates of water potential (phi) and water content (theta)

- VG_function
spline function for converting water potential (phi, units of kPa) to estimated volumetric water content (theta, units of percent, range: {0, 1})

- VG_inverse_function
spline function for converting volumetric water content (theta, units of percent, range: {0, 1}) to estimated water potential (phi, units of kPa)

## Details

This function was developed to work with measured or estimated parameters of the van Genuchten model, as generated by the Rosetta model. As such, `VG_params`

should have the following format and conventions:

- theta_r
saturated water content, values should be in the range of {0, 1}

- theta_s
residual water content, values should be in the range of {0, 1}

- alpha
related to the inverse of the air entry suction, function expects log10-transformed values with units of 1/cm

- npar
index of pore size distribution, function expects log10-transformed values (dimensionless)

## Note

A practical example is given in the fetchSCAN tutorial.

## Examples

```
# basic example
d <- data.frame(
theta_r = 0.0337216,
theta_s = 0.4864061,
alpha = -1.581517,
npar = 0.1227247
)
vg <- KSSL_VG_model(d)
str(vg)
#> List of 3
#> $ VG_curve :'data.frame': 100 obs. of 2 variables:
#> ..$ phi : num [1:100] 1.00e-06 1.38e-06 1.92e-06 2.66e-06 3.68e-06 ...
#> ..$ theta: num [1:100] 0.486 0.486 0.486 0.486 0.486 ...
#> $ VG_function :function (x, deriv = 0L)
#> $ VG_inverse_function:function (x, deriv = 0L)
```