Adding a simple root water-uptake model
Description
Adding a simple Feddes based root water-uptake model to the Richards solver. It should be easy to use and highly customisable. This issue is the result of a discussion with @lriedel and is based on the requiroments of @hbauser.
Proposal
First add a simple Feddes-model, for one dimension. It should get it's own boundary conditions from a plant.yml file, that also supplies all other parametrisation. Inside FlowSource there should be a parsing, creating a plant_BC yaml-node (similar to the richards_bc.yml), that can be given to the BCManager. For this the BCManager needs an additional constructor, that takes a YAML-Node instead of a file path. With this plant-boundary-conditions can be considered for determining the maximum time-step.
The FlowSource class is based on my work in myfork storing a vector of plants and therefore enabling multiple plants for multidimensional simulations in the future.
How to test the implementation?
Unit tests of all implemented root-density distributions for different parametrisation. Testing for expected behaviour: Water uptake and decreasing matric head in the root-zone.
Related issues
TO DO:
-
Implement a plant class with simple 1d Feddes model -
think of parameters needed and write yaml file -
write unit tests testing all needed functiality -
read in upper boundary condition and set potential transpiration -
calculate root distribution and map it to the grid using MCMG mapper from Dune -
return sink value to flow source
-
-
Implement FlowSource class -
read in the plant parameters and create vector containing plants -
parse the plant boundary conditions creating a plant-bc yaml-node -
write unit tests, testing the bc-node -
writing the parser
-
-
-
Add Constructor takin YAML-Node to BCManager -
make all unit tests pass