Adding a simple root water-uptake model
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.
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.
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