Evaluate whether or not the treaty will be made in a confined or unconfined aquifer

evaluate_treaty(params, aquifer_type = NULL)

Arguments

params

Parameter list (or data.frame with 1 row) containing necessary parameters to evaluate the agreement. See ?check_params for details.

aquifer_type

Aquifer type as "confined" or "unconfined". If not specified (default) check_params is run and used to determine the aquifer type.

Value

Returns a 1-row tibble containing pumping, utility ranges needed for the treaty, and whether or not there is a treaty (i.e., if zRange > 0).

If the aquifer in the game is confined (see ?check_params for how aquifer type is determined) the solution is exact. If the aquifer is unconfined, the solution is calculated numerically using multiroot from the rootSolve package, using default tolerance parameters. This means that there could be small errors in the results for zMinSwiss and zMaxFrench. For unconfined aquifers, zRange is rounded to the 6th decimal place to minimize the effect of numerical errors on the treaty outcome. If necessary, it can be recalculated as zRange = zMaxFrench - zMinSwiss.

Details

Evaluate the treaty given social, economic, and geophysical parameters.

Note that the cost of pumping is linear for confined aquifers, and nonlinear for unconfined aquifers, with the nonlinearity depending on the parameter l, with the key feature that the cost become infinite as h -> 0. For l = 0, the cost function is exponential and crosses 0 when h_i = dB_i. As l increases towards 1, the solution becomes more linear when the water table is near the surface. When l == 1, a linear solution is used and the cost remains linear even when the aquifer is fully depleted.

Examples

evaluate_treaty(example_params_confined)
#> # A tibble: 1 x 10 #> treaty zRange zMinSwiss zMaxFrench qshat qfhat qsstar qfstar qsdouble qfdouble #> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 Y 0.0443 -0.0222 0.0222 6.87 6.87 8.74 8.74 9.04 9.04
evaluate_treaty(example_params_unconfined)
#> # A tibble: 1 x 10 #> treaty zRange zMinSwiss zMaxFrench qshat qfhat qsstar qfstar qsdouble #> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 Y 0.00954 -0.0236 -0.0141 5.98 5.09 6.85 6.10 6.96 #> # … with 1 more variable: qfdouble <dbl>